Multithreading and sequence handling
Hi.
I need to know how the TestStand engine handles the different subsequence
in the same sequence file.
For example, i have a sequence file with a main sequence (with main, setup
and cleanup), a file load sequence, a file unload sequence, and several sub-sequences
that are sequentially called winthin the main sequence.
When i run the sequence file (using Test UUTs or Single pass), does the TS
engine create one thread for each sequence, or are all sequences within my
sequence file executed in the same thread ?
If several threads are created, does this apply to the setup and cleanup
part of a single sequence ?
Thanks.
Guillaume Iché, France.
Guillaume,
All the sequences in a single execution use the same thread. However, you
can start separate executions where each execution runs in a separate thread.
There is an application note on our web, http://www.ni.com/teststand/, that
discusses parallel executions.
Paul Mueller
NI
"Guillaume ICHE" wrote:
>>Hi.>>I need to know how the TestStand engine handles the different subsequence>in
the same sequence file.>For example, i have a sequence file with a main sequence
(with main, setup>and cleanup), a file load sequence, a file unload sequence,
and several sub-sequences>that are sequentially called winthin the main sequence.
>When i run the sequence file (using Test UUTs or Single pass), does the
TS>engine create one thread for each
sequence, or are all sequences within
my>sequence file executed in the same thread ?>If several threads are created,
does this apply to the setup and cleanup>part of a single sequence ?>>Thanks.>>Guillaume
Iché, France.
Similar Messages
-
Getting sequence filename and sequence name in process model error handler
We are using the sequential process model and would like to log sequence step error information to a file. We have an Error Handler callback in SequentialModel.seq and that is where we will write to the error file. In the Error Handler callback, I can get the error container info for the step where the error occurs and the name of the that step thru the Error Handler Step parameter. I would also like to record the sequence file and the sequence where the error occurred, but I have not been able to find those in the sequence context. I know they are available because the TestStand RunTime Error dialog box displays them. How can I access the name of the sequence file and the name of the sequence where the error occurred?
Thanks,
HansHey hans,
Use the API. Since you already have the Step object reference coming in as a parameter you can just use a few ActiveX steps to get the Sequence File and Sequence from which the error was thrown.
Step.Sequence
Sequence.Name (gets the name of the sequence)
Sequence.SequenceFile
SequenceFile.Path (gets the path of the sequence file)
So basically just 4 activex steps. I hope this helps.
Regards,
jigg
CTA, CLA
teststandhelp.com
~Will work for kudos and/or BBQ~ -
Possible deadlock: transactions, cursors, and sequences...
Hello,
After making recent changes to our database in response to a previous issue (bug found and patched in BDB; local code fixed by removing both DB_TXN_SNAPSHOT and DB_MULTIVERSION) we've come across a possible deadlock.
BACKGROUND:
This database has been running for over a year in production and I've never seen a hard deadlock. We use the default deadlock detection engine internal to BDB, transactions, and our code supports the processing of deadlocks and subsequent retries and final abandonment when necessary. The transactions in question involve cursors and sequences; we're using cursors to flip through entries in an existing database, and should no match be found for an update, we insert a new record. Before doing so, we grab the "next ID" (primary key) from a sequence we have (attached, as all sequences are, to its own different DB, done on advice from online docs: "For this reason, it is often preferable for sequence objects to be stored in their own database.") and finally insert the new record.
This is a 64-bit Linux machine. There were 4 operational threads at the time; all were waiting on pthread conditions. As I understand it, deadlocks should have been internally detected and returning DB_LOCK_DEADLOCK to us somewhere? Since we're using the default lock detection engine and firing it constantly, we should not require an Nth thread to monitor the lock tables and manually reject deadlocked transactions, etc?
I wasn't sure what to do when the deadlock occured, but I found some forum posts referencing a db_stat -Co and ran it, along with grabbing a core dump which I still have available. I've reverted the DB binary to older DB_MULTIVERSION code as I work on figuring this out, but if there's something else crucial I should have done, I can run the new code again and wait for another deadlock to happen to run additional diagnostics.
Any ideas or assistance is appreciated. Thank you.
DEADLOCK INFORMATION:
THREAD 2: Attempting to 'get' an asset.
(gdb) bt
#0 0x00002aec07e27496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002aec078ddeed in __db_pthread_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#2 0x00002aec078dda8b in __db_tas_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#3 0x00002aec0795b8f1 in __lock_get_internal () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#4 0x00002aec0795bc42 in __lock_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#5 0x00002aec07987d94 in __db_lget () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#6 0x00002aec07914625 in __ham_get_meta () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#7 0x00002aec07908d4b in __hamc_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#8 0x00002aec07979e8a in __dbc_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#9 0x00002aec0797aa0d in __dbc_pget () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#10 0x00002aec0798654b in __dbc_pget_pp () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#11 0x00002aec078d4dd7 in Dbc::get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
THREAD 5: Attempting to 'set' an asset.
(gdb) bt
#0 0x00002aec07e27496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002aec078ddeed in __db_pthread_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#2 0x00002aec078dda8b in __db_tas_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#3 0x00002aec079d0c45 in __seq_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#4 0x00002aec078dd02e in DbSequence::get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
THREAD 6: Attempting to 'set' an asset.
(gdb) bt
#0 0x00002aec07e27496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002aec078ddeed in __db_pthread_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#2 0x00002aec078dda8b in __db_tas_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#3 0x00002aec0795b8f1 in __lock_get_internal () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#4 0x00002aec0795bc42 in __lock_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#5 0x00002aec07987d94 in __db_lget () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#6 0x00002aec079893ee in __db_new () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#7 0x00002aec0798bb7e in __db_poff () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#8 0x00002aec07918eb3 in __ham_add_el () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#9 0x00002aec07907fe1 in __hamc_put () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#10 0x00002aec0797b6e5 in __dbc_put () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#11 0x00002aec0796ecde in __db_put () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#12 0x00002aec07985e6c in __db_put_pp () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#13 0x00002aec078d395c in Db::put () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
THREAD 7: Attempting to 'set' an asset.
(gdb) bt
#0 0x00002aec07e27496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002aec078ddeed in __db_pthread_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#2 0x00002aec078dda8b in __db_tas_mutex_lock () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#3 0x00002aec0795b8f1 in __lock_get_internal () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#4 0x00002aec0795bc42 in __lock_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#5 0x00002aec07987d94 in __db_lget () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#6 0x00002aec07915b6a in __ham_lock_bucket () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#7 0x00002aec07915dc7 in __ham_get_cpage () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#8 0x00002aec079075f9 in __ham_lookup () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#9 0x00002aec07908f9f in __hamc_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#10 0x00002aec07979e8a in __dbc_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#11 0x00002aec07984045 in __db_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#12 0x00002aec079d0374 in __seq_update () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#13 0x00002aec079d0c29 in __seq_get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
#14 0x00002aec078dd02e in DbSequence::get () from /usr/local/BerkeleyDB.4.7/lib/libdb_cxx-4.7.so
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Lock REGINFO information:
Lock Region type
5 Region ID
env/__db.005 Region name
0x2b8dbff65000 Original region address
0x2b8dbff65000 Region address
0x2b8dbff65138 Region primary address
0 Region maximum allocation
0 Region allocated
Region allocations: 225009 allocations, 0 failures, 0 frees, 1 longest
REGION_JOIN_OK Region flags
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Locks grouped by object:
Locker Mode Count Status ----------------- Object ---------------
808cfad0 READ 1 HELD db1 page 0
808cfad3 READ 2 HELD db1 page 0
808cfad5 READ 1 HELD db1 page 0
33 READ 1 HELD db1 handle 0
22 READ 1 HELD db2 handle 0
18 READ 1 HELD db3 handle 0
808cfad5 READ 1 HELD db1 page 3906
808cfad3 READ 1 HELD db1 page 6300
808cfad3 WRITE 1 HELD db1 page 6300
808cfad0 READ 1 HELD db1 page 8272
808cfabe WRITE 2 HELD db4 page 82387
808cfad3 WRITE 1 HELD db4 page 42879
808cfad3 WRITE 1 HELD db4 page 42878
808cfad3 WRITE 1 HELD db4 page 42877
808cfad3 WRITE 1 HELD db4 page 42874
808cfad3 WRITE 1 HELD db4 page 42873
808cfad3 WRITE 1 HELD db4 page 42872
808cfad3 WRITE 1 HELD db4 page 42901
808cfad3 WRITE 1 HELD db4 page 42897
808cfad3 WRITE 1 HELD db4 page 42882
808cfad3 WRITE 1 HELD db4 page 42881
808cfad3 WRITE 1 HELD db4 page 42880
808cfad3 WRITE 1 HELD db4 page 42894
808cfad3 WRITE 1 HELD db4 page 43797
1a READ 1 HELD db3sequence handle 0
1c READ 1 HELD db5 handle 0
20 READ 1 HELD db6 handle 0
24 READ 1 HELD db7 handle 0
808cfad3 READ 13 HELD db4 page 0
808cfabe READ 2 HELD db4 page 0
808cfabe WRITE 1 WAIT db4 page 0
808cfad5 READ 1 WAIT db4 page 0
26 READ 1 HELD db4 handle 0
808cfabe READ 2 HELD db4sequence page 0
808cfad0 READ 1 HELD db4sequence page 0
28 READ 1 HELD db4sequence handle 0
808cfabe READ 3 HELD db8 page 0
2a READ 1 HELD db8 handle 0
808cfabe READ 4 HELD db9 page 0
808cfad0 READ 1 HELD db9 page 0
808cfad3 READ 14 HELD db9 page 0
808cfad5 READ 1 HELD db9 page 0
808cfabe READ 1 HELD db4sequence page 2
808cfabe WRITE 1 HELD db4sequence page 2
808cfad0 READ 1 WAIT db4sequence page 2
2e READ 1 HELD db9 handle 0
808cfabe WRITE 2 HELD db9 page 1
808cfad3 READ 2 HELD db1sequence page 0
35 READ 1 HELD db1sequence handle 0
808cfad3 READ 1 HELD db1sequence page 2
808cfad3 WRITE 1 HELD db1sequence page 2
808cfad5 READ 1 HELD db9 page 2833
808cfad0 WRITE 1 HELD db9 page 7946
808cfad3 WRITE 14 HELD db9 page 8250
808cfabe WRITE 3 HELD db8 page 13301What else could be causing this in terms of the application having a resource locked? I can say that there are no other running threads doing anything related to BDB at all - they are all in similar "no work, sleep until we get some" calls, with the exception being the main thread which is sitting in sigwait(). What types of things could the application be doing that would prevent all 4 BDB threads from being able to obtain mutexes that are internal to them and not accessible to the application?
Other thoughts:
* On a fifth thread, from time to time, txn_checkpoint() is called. Could this have been left in an unclean state?
* If DB_RMW is used incorrectly, could lock order be compromised? We are not using CDS, so do we need to specify DB_WRITECURSOR to our db->cursor() calls? We do not; we only provide DB_RMW to pget() calls at present.
* Why is the thread attempting to call sequence->get also deadlocked? The sequence is in its own database - is it waiting on a more global "locker manager" mutex at a high level?
As I don't see how anything we do can directly control BDB's locking strategies, my only thought is that we're making a programming error to force BDB to lock things in an incorrect order in a way that prevents deadlock detection from occuring. Is this possible? Mainly the only thing changing here was our replacing DB_TXN_SNAPSHOT with the appropriate DB_RMW flags when needed, which is why I'm thinking we did something wrong here, but I'm not sure what.
I'll continue investigation, but any ideas you have in terms of appropriate directions would be helpful. I'll also work on reproducing this if I can by working backwards from the stack information. Thanks.
Later thought: Why is 808cfad3 not waiting on anything even though stack clearly shows it (thread 5, I'm guessing) in pthread_cond_wait? Can a transaction enter a wait state without showing up in db_stat output?
Thanks!
Edited by: user10542315 on Sep 11, 2009 1:21 PM
Edited by: user10542315 on Sep 11, 2009 2:52 PM -
Session pooling and statement handles
Hi there,
I have a large multi-threaded application (perhaps >100 threads). Each thread is continuously processing events (very high volumes) which involves some manipulation and some database operations (from a fixed set of possible operations).
I am using session pooling but what I want to know is, Should I:
(a) Prepare my fixed set of statement handles up front at program start-up when I'm creating the session pool and then reuse the statement handles in each event processing thread (also, is this thread safe ? even if it is, all threads would be contending on the same statement handles)
or
(b) Prepare the statement handle for each event which presumably will exploit the statement cache on the session pool. This would also mean not having statement handles shared between threads thus removing any thread contention issues.
I think (b) is the option for me, but does anyone have any thoughts ?With a), one would think it's OK, but I would hate to find out that it's not thread safe by accident.
But anyway, with b) the cost of allocating private statement handles in each thread seems very low. The memory required for the statement handle plus its bind and define handles could very well be below 8k per statement. If you've got say, 5 statements * 100 threads, you're only looking at around 4MB overall.
Finally, you might want to make sure that the session pool statement cache is working by checking the values for 'executions' and 'parse_calls' in V$SQL for your statements. -
For IDOC monitoring, analysis and error handling in ALE & idoc
Hello...experts..can u please tell me about idoc monitoring,analysis and error handling..and can u please tell as per interview point of view in this area..if availble can u send material about this...
thx
Message was edited by:
durga kottapalliHi,
Reprocessing IDocs with errors
Outbound (BD88)
Once the error has been determined and corrected it is not necessary to resend the IDoc again. You simply resend the IDocs that have already been generated.
Using the IDoc overview screen you need to take note of the following for each IDoc that was not processed:
Error number: 2, 4, 5, 25, 29
Error number: 30 (Execute Check IDoc dispatch to process)
IDoc number
Using the Error number, the IDoc number and the transaction BD88 , with the required message type you can resend the IDoc. Match the error number with this transaction and execute the function for the IDocs incorrectly processed.
Just check the below link, u will get all IDOC related Interview questions
http://www.allsaplinks.com/idoc_sample.html
http://www.allsaplinks.com/
http://www.sappoint.com/abap.html
http://www.sap-img.com/
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDISC/CAEDISCAP_STC.pdf
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFAALEQS/CABFAALEQS.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDI/CAEDI.pdf
http://www.sappoint.com/abap.html
http://sap.ittoolbox.com/documents/popular-q-and-a/extending-a-basic-idoc-type-2358
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296858_idx0_off50,00.html
http://www.sapgenie.com/sapedi/index.htm
http://www.allsaplinks.com/idoc_sample.html
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEIO/BCMIDALEIO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEPRO/BCMIDALEPRO.pdf
http://help.sap.com/saphelp_47x200/helpdata/en/dc/6b7eee43d711d1893e0000e8323c4f/frameset.htm
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sap-img.com/
http://www.allsaplinks.com/
Regards,
Suresh.
Message was edited by:
SureshKumar Ramamoorthy -
Maximum number of the "records" in: Aggregated bill and payment handling
HI,
currently we are dealing with proposal and design of processes/settings in area Aggregated bill and payment handling among distributor and suppliers.
Do you have experience and/or knowledge with maximum amount of records in related processes , like:
Supplier side:
- the maximum number of the individual postings aggregated in agregated posting on the supplier contract account?
- the maximum number of the of the aggregated postings included in aggregated bill (print document)?
- and consequently the maximum number of the individual print documents included and printed/sent in aggregated bill (print document)? Also in case, if the aggregated bill is send as IDOC with details ?
- the maximum number of the IDOCS sent in aggregated IDOC?
- the maximum number of the records in distribution lot created form aggregated billing?
Distributor side:
- the maximum number of the individual electronic bills posted in aggregated form on the supplier contract account during processing ?
- the maximum number of the individual payments included in PAN?
Thanks
Tomas.Hi,
I would not receive too many documents into an aggregated document (suppier and distributor side). Try to find an error in a distribution lot or payment advice note with more than 10000 items. You can use posting area R0070 and R0071 (TX FQC0) for limit the size of aggregated postings.
Best regards,
Alexander -
Mapping and Error handling in Seeburger Adapters ?
Hi,
1. In B2B integration part of PI.Whats the way of doing mapping in XI mapping editor and error handling in the mapping ?
2. Do you think SEEBURGER BIC mapping designer is must for developing maps ? cant we develop same maps in XI mapping editor?
Thanks and regards,
Ram.
Edited by: Ramakrishna kopparaju on Sep 30, 2008 12:27 PMWhats the way of doing mapping using seeburger adapters
The standard mappings are part of Seeburger Suite and if any additional mapping has to be accommodated, then custom mapping could be developed in Seeburger BIC Mapper tool. This has to deployed on adapter engine then. The other mapping is the normal XI mapping (message, java, xsl) which could be performed based on business logic.
error handling in the mapping ?
The easiest way is to raise Alert based on the errors in mapping.
Regards,
Prateek -
Sequence of tables in from clause and sequence of "where clause" conditions
Is Sequence of tables in "From Clause" and sequence of "where clause" conditions matters in 10g for performance?
Edited by: user6763079 on Jun 1, 2011 3:33 AMuser6763079 wrote:
Is Sequence of tables in "From Clause" and sequence of "where clause" conditions matters in 10g for performance?In general it does not matter.
It could matter if the Rule Based Optimizer (RBO) is used. However this RBO is only used if enforced by a hint or if no table statistics are collected. Starting from 10g the table statistics are automatically selected by a regular database job. So in general the CBO would be used.
The CBO will consider different access paths. If the number of tables is low enough, then all possible combinations are considered and the order does not make any difference.
Edited by: Sven W. on Jun 1, 2011 4:00 PM -
Error while using trigger and sequences
hi friends
i am leraning oracle now. i have confronted a difficulty while working with triggers and sequence . iF anybody knows this problem ,please help me
i created atable with the specifications given below
CREATE TABLE TESTSEQ
idno NUMERIC(10),
data1 VARCHAR2(50)
and i created a sequence named seqcol1
CREATE SEQUENCE seqcol1
MINVALUE 1
MAXVALUE 100
START WITH 1
INCREMENT BY 1
CACHE 20;
I created a trigger also named
CREATE OR REPLACE TRIGGER trigADD2
BEFORE
INSERT ON TESTSEQ
FOR EACH ROW
BEGIN
SELECT seqcol.NEXTVAL INTO idno;
END;
My plan is to add the idno automatically from sequence while inserting a value in data1 column
while doing insert operation ,
INSERT INTO TESTSEQ (data1) VALUES ('ram1')
some error is showing
the error is SCOTT.trigADD2 is invalid and failed re-validation
if anybody can help me please help me
thanks and regardsops$oskar@test9i$ create table t (n number, s varchar2(1));
Table created.
ops$oskar@test9i$ create sequence s;
Sequence created.
ops$oskar@test9i$ insert into t values (s.nextval,'X');
1 row created.
ops$oskar@test9i$ insert into t values (s.nextval,'Y');
1 row created.
ops$oskar@test9i$ insert into t values (s.nextval,'Z');
1 row created.
ops$oskar@test9i$ select * from t;
N S
1 X
2 Y
3 ZWhat do you need a trigger for? -
Physical inventory with and without handling unit managment
Hello all,
I would like to know what is the difference between physical inventory with and without handling unit management.
Pl. advise.
Thanks,
MaxxAssuming you are referring to WM inventory, it is very similar. Inventory is conducted at the SU level in WM if you are HU managed. One of the most widely known issues is the lack of ability to post differences of nested HUs at the WM level. If you are not using nested HUs, the process is the same as storage unit management without handling unit management.
-
Font and text handling in iWeb.
Hello, everyone.
How are fonts and text handled by iWeb ? I am now working on a website and have chosen to work with Gil Sans as one of my primary fonts.
Is this font included as default in a standard installation of Windows ? What about OS X ?
In case I create iWeb pages using this font what will happen when I publish these pages ? Will they be preserved as text ? In this case how will this font be handled by Windows and OS X ? Will the OS's replaced the absent font with another one ? What would the selection of a replacement be based on ?
Or will iWeb replace the text created in Gil Sans with an image of the text to ensure that the display of the web page follows my intended format ?
Thank you in advance,
JosephHere is a list of websafe fonts:
http://www.ampsoft.net/webdesign-l/WindowsMacFonts.html
You might want to google 'web safe fonts' and compare other lists to that one just to check.
1. I think you're talking about ALT tags. You could do this as a workaround but it would still be slow loading, and search engines would index it as images, so your text would appear in Google images for example. You might also want to consider whether anyone might need to copy and paste any of your text at some point, and whether you'd ever need to print pages (they will be more ink-intensive and lower quality).
2. You can embed fonts in your webpage; however this only works on PCs and Macs running Windows: http://www.sean.co.uk/a/webdesign/embeddingfonts_inwebpages.shtm
Another way around it is to offer an install of the font (check it's shareware and don't forget to offer both Mac and PC versions) and recommend to your visitors that they install it.
Also remember that whichever font you use, a visitor may have altered their browser settings to display your text differently anyway. -
Referencing a source datagrid from within a drag and drop handler
My application implements a drag and drop between two datagrids.
I would like to keep track of how many times a particular row in the source datagrid has been dragged to the target.
The drag and drop handler should increment a DataGridColumn in the source datagrid row each time this happens.
I can't figure out a way to refer back to the source datagrid and set a value in its dataprovider from within the drag and drop handler function.
The source datagrid is in a module and the target datagrid in in a popup called from the module. The function below is in the popped up custom component.
public function dragDropHandler(event:DragEvent):void
if (event.dragSource.hasFormat("items"))
var sComponentName:String;
var iPos:int;
//From which component was the drag initiated? This works sComponentName is set
sComponentName = String(event.dragInitiator);
//This does not work, compile error
iPos = event.dragInitiator.selectedIndex;
trace("Comp:MealPlanDetailCreate, function:dragDropHandler - event.dragInitiator: " + event.dragInitiator + " parent container: " + event.dragInitiator.parent)
trace( " sComponentName: " + sComponentName +" name pos: " + sComponentName.indexOf("dgMP"))Hi ZolanSilv...,
attached is an example of what i mean.
Hope it helps.
Mike
Message Edited by MikeS81 on 08-18-2008 12:35 PM
Attachments:
draganddrop_image_LV85.vi 19 KB -
How To... Execute Planning Functions and Sequences from MS Office Ribbon
Dear all,
I am working with a SAP how to paper, which is called:
How To... Execute Planning Functions and Sequences from MS Office Ribbon.
It is working absolutely fine and I am pretty satisfied, but as you probably know "Control the visibility of a button based on the visibility of a related crosstab: the button just disappears once the related crosstab is not located on the active sheet."
This means, when I insert different queries in different crosstabs, only one crosstab will have my own created ribbon. Is it also possible to set another specific ribbon with other buttons for another crosstab? Can I change the macro, included in the appendix of the how to paper, regarding this issue?
Thanks in advance!
Kind regards
Dominik DrebingerHey Martin,
thanks for your reply, but I solved the problem on my own. Unfortunately my colleague did not see that the crosstabs had to be defined differently.
Like this:
Label
Screentip
Msolmage name
Crosstab name
Copy Initial Aligned
Copy Initial Aligned
CacheListData
SAPCrosstab1
Copy Initial Aligned
Copy Initial Aligned
CacheListData
SAPCrosstab3
Copy Initial Aligned
Copy Initial Aligned
CacheListData
SAPCrosstab5
The macro, provided by the HowTo, is therefore working perfectly fine.
Thanks though
Dominik -
Odi 11g functions and sequence
hello
what is the use of fucntions and sequence.
How do i create them in odi11g .
where in odi 11g is expression editor window available??User Function Editor
Use to define your customized functions.
User functions enable to define customized functions that can be used in interfaces or procedures. These functions are implemented in one or more technologies. They are usable in the interfaces and procedures.
A function can be created as a global function or in a project. In the first case, it is common to all projects, and in the second, it is attached to the project in which it is defined.
goto
Home > Designer Navigator Editors > Package Editor > User Function Editor
Sequence Editor
Use to define sequences.
A sequence is a variable that increments itself each time it is used. Between two uses, the value can be stored in the repository or managed within an external RDBMS table.
Oracle Data Integrator supports three types of sequences:
Standard sequences: the last value is stored in the repository.
Specific sequences: the last value is stored in an RDBMS table cell. Oracle Data Integrator undertakes to read the value, to lock the row (for concurrent updates) and to update the row after the last increment.
Native sequences: this type of sequence to a sequence defined in and managed by a database engine.
goto
Home > Designer Navigator Editors > Package Editor > Sequence Editor
There is no expression editor component directly in any tree of the odi components.
You can find expression editor where you can write expressions.
For example writing filter expressions in a mapping, writing procedure commands etc
for more details please visit www.odiguru.com
Thanks Guru
Ram Kumar Lanke
www.odiguru.com -
Proxies - Queueing and Error handling features ???
My understanding is that you can have synchronous and asynchronous proxies. Do proxies have a queueing mechanism, and do they provide reprocessing and error handling features ???
Thanks in advance.Hi,
The error can happen due to application error, may be incorrect data or or wrong type of data.
Or system error, in case the call to SAP XI is not successful.
Youc an use fault message for the same.
If you want to catch these exceptions in SAP itself and send alert then you can either use standard FM for raising alert.
More here:
http://help.sap.com/saphelp_nw04/helpdata/en/25/a45c3cff8ca92be10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/a1/082589fc4246f09793039d5fb01a17/content.htm
First configure CCMS in XI System:-
/people/sap.user72/blog/2005/11/24/xi-configuring-ccms-monitoring-for-xi-part-i
For Monitoring in the CCMS:-
http://help.sap.com/saphelp_nw04/helpdata/en/4d/6272376d3bfa2be10000009b38f8cf/frameset.htm
Go thro' this link for configuration scenario:-
/people/aravindh.prasanna/blog/2005/12/23/configuring-scenario-specific-e-mail-alerts-in-xi-ccms-part--1
Inbound ABAP Proxy Trace and error handling
Handling Exceptions
ABAP Server Proxies - Fault Handling
Exception handling in integration processes
ABAP Proxy and fault messages
/people/bhanu.thirumala/blog/2006/02/07/abap-proxy--xml-to-abap-transformation
regards
Aashish Sinha
PS : reward points if helpful
Maybe you are looking for
-
Hi everyone! Is there anyone who can tell me where I can find some information about the usage of the FTP adapter included in BPEL PM 10.1.2. Thanks!
-
Can I transfer my songs from an old version of ipod that was on a microsoft PC to a new Mac mini
-
Use report to display html data
Hi I have multiple rows of text in a clob field that contains html tags. I want to display this data in html format in my htmldb application. Can I use an htmldb report to do this or am I better off using an item? Thanks
-
HP Pavilion g6 Notebook - Sudden shutdowns without warning when battery is low
My notebook is only ten months old. Within the last week, it started shutting down unexpectedly when the battery was low (but not at a critical level). If I try to restart it, there won't be a response until I plug in the adaptor cord. Usually there
-
Multiple Entries in EditBox with "," Separator
Hello, We have one Edit Box in Dashboard to enter Employee_Number, users wants to enter multiple Emp_Number with "," separated. Actually users wants to copy the employee_number from the flat files with "," seprator and paste into Editbox, the report