RE: DBSessions and Single-threading

Thanks Linh. Always good to here from you.
thanks
ka
Kamran Amin
Forte Technical Leader, Core Systems
(203)-459-7362 or 8-204-7362 - Trumbull
[email protected]
From: Linh Pham[SMTP:[email protected]]
Sent: Friday, November 13, 1998 2:51 PM
To: Ajith Kallambella M; [email protected]; ForteUsers;
[email protected]
Subject: RE: DBSessions and Single-threading
all,
This information (technote draft # 11716) is to clear up the confusion
regarding
database access.
Note, Forte reserves the right to change this implementation in the
future.
Currently, there are two flavors of database access available with forte
(as of version 30j1):
1. single-threading access to all databases on all UNIX & VMS platforms
2. multithreading access to all supported database except Sybase on
intel/alpha-NT,
and to a certain extent, limited support with SQLServer (see more
details below)
1. single-threading access:
with this type of access, when the following code is executed
(SQL select ... on MyDBSession;), forte locks the partition and
all EXTERNAL requests will be queued. However, task switching inside
the partition continues until the called task enters the DBVendor's
API (as with any 3GL call). Prior to this moment, you can still have
multiple tasks running inside the partition. As the called task
enters the 3GL, it truly blocks a partition, ie. it's OUT there
talking to the database and not communicating with the
the forte's environment. If the query is long, the partition might not
be
able to acknowledge the environment manager's ping, and thus, will be
deemed NOT reachable, and a new partition will be started (see technote
11147). Another problem arises when you have multiple INTERNAL tasks
trying to perform database access concurrently on the same DBSession.
Since the behavior is unpredictable, we RECOMMEND that you only
have ONE task at any time accessing the DBSession inside a partition.
Please see also technote 7104 for more information regarding DBSession
sharing & blocking.
2. multi-threading access:
on NT, we have added code to allow multithreading access to most
supported
database. What does this mean?
a. when a task access the database, the partition will NOT be blocked.
b. you can have multiple DBSessions inside a partition and allow
concurrent access; however, we still RECOMMEND that you
only have ONE task accessing a DBSession at any one time.
Please consult a Forte consultant or a TSR in reference to technote
11151 (only available internally). Please do NOT call Forte Technical
Support for this technote.
As to SQLServer, the ODBC driver that you use to access the database
will
determine if it's is reentrant or not. There is also a known problem
with
the Microsoft ODBC driver which causes the cursor state to become
invalid when
multiple tasks accessing the same session. Due to these problems, forte
recommends that you single-threading access to SQLServer; otherwise
use at YOUR OWN RISK.
Hope this helps. IF you have questions regarding multithreading access
support
in the future, please contact a Forte Sales Rep or TSR.
linh ...
-----Original Message-----
From: [email protected]
[<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
Sent: Friday, November 13, 1998 9:08 AM
To: [email protected]; ForteUsers; [email protected]
Subject: RE: DBSessions and Single-threading
Though, the DBSession partitions can reside on a
thread-safe
OS ( like NT ), the DBSession is still single threaded
and your
partition gets blocked for the duration of the DB
access. Same
is true, even if you have multi-threaded databases.
Forte has not changed DBSession to make it
multi-threaded.
Infact, given the current implementation, the only way
to simulate
concurrent database access is to replicate the
partition which
has DBSession object. The famous DBEntityManagerPattern
does essentially the same.
I think we should all feel happy with this now, and
hope for
something better in 4.0.
Ajith Kallambella. M
Forte Systems Engineer,
International Business Corporation
-----Original Message-----
From: Eric Pereira [<a href=
"mailto:[email protected]">mailto:[email protected]</a>]
Sent: Friday, November 13, 1998 9:54 AM
To: [email protected]
Cc: [email protected]
Subject: RE: DBSessions and Single-threading
Kamran,
That's not entirely correct. Partitions which access
multi-threaded
databases (like MS SQL Server on NT) do not block.
There was some
discussion about this over the User Group a while back
- with no real
conclusion, so perhaps Forte might want to step in and
clarify.
What I'm curious about is the outcome in a situation
where one DB
Session accesses SQL Server and another one talks to a
non
multi-threaded database within the same partition.
Thanks.
Eric Pereira
Forte Consultant
----Original Message Follows----
From: "Amin, Kamran" <[email protected]>
To: [email protected], Peter Kelly
<[email protected]>
Subject: RE: DBSessions and Single-threading
Date: Fri, 13 Nov 1998 07:52:09 -0500
Reply-To: "Amin, Kamran" <[email protected]>
Peter,
If one of the service object is being used the that
partition gets
blocked until it has finished the request to the
dbsession. It will not
mater if the service objects are connected to different
database. Using
a
dbsession makes the partition single threaded and
that's why we use load
balancing. Please look at tech. note 10647 for more
info.
ka
Kamran Amin
Forte Technical Leader, Core Systems
(203)-459-7362 or 8-204-7362 - Trumbull
[email protected]
From: Peter Kelly[SMTP:[email protected]]
Sent: Friday, November 13, 1998 6:27 AM
To: [email protected]
Subject: DBSessions and Single-threading
Does a DBSession executing in a partition cause thatpartition to
become
single-threaded?
Suppose a partition has 2 Service Objects.
Each Service Object has its own unique DBSession.
While a method in one Service Object is using itsDBSession,
do all other threads in that partition halt and thenresume
when the work with the first DBSession is complete.
What if the two DBSessions are connected to differentdatabases,
does this change anything?
I heard rumours that Oracle on NT supportedmulti-tasking and blocking
would not occur. If blocking does occur, is it aForte or Oracle
limitation?
Any input/comments appreciated.
thanks,
Peter
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive
<URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>>
Get Your Private, Free Email at <a href=
"http://www.hotmail.com">http://www.hotmail.com</a>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive
<URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

Thanks Linh. Always good to here from you.
thanks
ka
Kamran Amin
Forte Technical Leader, Core Systems
(203)-459-7362 or 8-204-7362 - Trumbull
[email protected]
From: Linh Pham[SMTP:[email protected]]
Sent: Friday, November 13, 1998 2:51 PM
To: Ajith Kallambella M; [email protected]; ForteUsers;
[email protected]
Subject: RE: DBSessions and Single-threading
all,
This information (technote draft # 11716) is to clear up the confusion
regarding
database access.
Note, Forte reserves the right to change this implementation in the
future.
Currently, there are two flavors of database access available with forte
(as of version 30j1):
1. single-threading access to all databases on all UNIX & VMS platforms
2. multithreading access to all supported database except Sybase on
intel/alpha-NT,
and to a certain extent, limited support with SQLServer (see more
details below)
1. single-threading access:
with this type of access, when the following code is executed
(SQL select ... on MyDBSession;), forte locks the partition and
all EXTERNAL requests will be queued. However, task switching inside
the partition continues until the called task enters the DBVendor's
API (as with any 3GL call). Prior to this moment, you can still have
multiple tasks running inside the partition. As the called task
enters the 3GL, it truly blocks a partition, ie. it's OUT there
talking to the database and not communicating with the
the forte's environment. If the query is long, the partition might not
be
able to acknowledge the environment manager's ping, and thus, will be
deemed NOT reachable, and a new partition will be started (see technote
11147). Another problem arises when you have multiple INTERNAL tasks
trying to perform database access concurrently on the same DBSession.
Since the behavior is unpredictable, we RECOMMEND that you only
have ONE task at any time accessing the DBSession inside a partition.
Please see also technote 7104 for more information regarding DBSession
sharing & blocking.
2. multi-threading access:
on NT, we have added code to allow multithreading access to most
supported
database. What does this mean?
a. when a task access the database, the partition will NOT be blocked.
b. you can have multiple DBSessions inside a partition and allow
concurrent access; however, we still RECOMMEND that you
only have ONE task accessing a DBSession at any one time.
Please consult a Forte consultant or a TSR in reference to technote
11151 (only available internally). Please do NOT call Forte Technical
Support for this technote.
As to SQLServer, the ODBC driver that you use to access the database
will
determine if it's is reentrant or not. There is also a known problem
with
the Microsoft ODBC driver which causes the cursor state to become
invalid when
multiple tasks accessing the same session. Due to these problems, forte
recommends that you single-threading access to SQLServer; otherwise
use at YOUR OWN RISK.
Hope this helps. IF you have questions regarding multithreading access
support
in the future, please contact a Forte Sales Rep or TSR.
linh ...
-----Original Message-----
From: [email protected]
[<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
Sent: Friday, November 13, 1998 9:08 AM
To: [email protected]; ForteUsers; [email protected]
Subject: RE: DBSessions and Single-threading
Though, the DBSession partitions can reside on a
thread-safe
OS ( like NT ), the DBSession is still single threaded
and your
partition gets blocked for the duration of the DB
access. Same
is true, even if you have multi-threaded databases.
Forte has not changed DBSession to make it
multi-threaded.
Infact, given the current implementation, the only way
to simulate
concurrent database access is to replicate the
partition which
has DBSession object. The famous DBEntityManagerPattern
does essentially the same.
I think we should all feel happy with this now, and
hope for
something better in 4.0.
Ajith Kallambella. M
Forte Systems Engineer,
International Business Corporation
-----Original Message-----
From: Eric Pereira [<a href=
"mailto:[email protected]">mailto:[email protected]</a>]
Sent: Friday, November 13, 1998 9:54 AM
To: [email protected]
Cc: [email protected]
Subject: RE: DBSessions and Single-threading
Kamran,
That's not entirely correct. Partitions which access
multi-threaded
databases (like MS SQL Server on NT) do not block.
There was some
discussion about this over the User Group a while back
- with no real
conclusion, so perhaps Forte might want to step in and
clarify.
What I'm curious about is the outcome in a situation
where one DB
Session accesses SQL Server and another one talks to a
non
multi-threaded database within the same partition.
Thanks.
Eric Pereira
Forte Consultant
----Original Message Follows----
From: "Amin, Kamran" <[email protected]>
To: [email protected], Peter Kelly
<[email protected]>
Subject: RE: DBSessions and Single-threading
Date: Fri, 13 Nov 1998 07:52:09 -0500
Reply-To: "Amin, Kamran" <[email protected]>
Peter,
If one of the service object is being used the that
partition gets
blocked until it has finished the request to the
dbsession. It will not
mater if the service objects are connected to different
database. Using
a
dbsession makes the partition single threaded and
that's why we use load
balancing. Please look at tech. note 10647 for more
info.
ka
Kamran Amin
Forte Technical Leader, Core Systems
(203)-459-7362 or 8-204-7362 - Trumbull
[email protected]
From: Peter Kelly[SMTP:[email protected]]
Sent: Friday, November 13, 1998 6:27 AM
To: [email protected]
Subject: DBSessions and Single-threading
Does a DBSession executing in a partition cause thatpartition to
become
single-threaded?
Suppose a partition has 2 Service Objects.
Each Service Object has its own unique DBSession.
While a method in one Service Object is using itsDBSession,
do all other threads in that partition halt and thenresume
when the work with the first DBSession is complete.
What if the two DBSessions are connected to differentdatabases,
does this change anything?
I heard rumours that Oracle on NT supportedmulti-tasking and blocking
would not occur. If blocking does occur, is it aForte or Oracle
limitation?
Any input/comments appreciated.
thanks,
Peter
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive
<URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>>
Get Your Private, Free Email at <a href=
"http://www.hotmail.com">http://www.hotmail.com</a>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive
<URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

Similar Messages

  • Step result in SIngle Threaded Apartment?

    Hi:
    I'm making a subsequence call using a New Thread and Single Threaded Apartment options. This is required so that some Active X functionality will work in the DLL calls of the subsequence. However, if any step fails in the Single Threaded Apartment, I don't see the step result in the Teststand report. I can see the failed sequence (based on the Wait step which collects the result), but not the step. If I uncheck the Single Threaded Apartment option, I can see the failing step in the report.
    Can anyone tell me how to fix this so I can get failing steps from a STA in the report?
    Thanks,
    Dave

    This behavior should be dependent on whether you launch a new thread, not whether the thread is STA. Assuming that this is the case, insert a Wait step right after your sequence call step, select Wait for Thread, and select your sequence call step.
    The Wait step will wait for the thread you spawned and it will retrieve its results. In the report, it will look like the Wait step called the subsequence.

  • Waiting for a mouse click in a single thread

    Here's my problem:
    I'm working on a program I didn't initially create, and I picked it up from the rough midpoint of its evolution. It is a single thread AWT program, with a mouseListener interface already implemented.
    Here's my problem. In a game setting, we have two players. It is no problem when both are computer controlled. When player one is controlled by a human, I need to wait for a mouse event before returning, because upon returning player two moves (regardless of its player configuration).
    I can't do any kind of busy waiting because it is a single thread. I'm looking for some kind of option besides making the program multithreaded. This also makes it difficult to use some sort of boolean variable, though I don't think it's impossible.
    Thanks in advance for any help.
    Eric

    #9 - You are correct in your assumptions. I agree it's
    not the best model, but it worked for the original
    purpose, which was to have one player always
    controlled by the computer, and the option of
    selecting a second player as being either human or
    computer. Since each move is made manually - that is,
    for a move to be made, it requires user input - there
    was no harm in returning from a function, because it
    had no immediate computation. The requirements have
    just changed, and now I must allow both players to be
    selectable. This presents a problem in that I have to
    wait for the move actions to finish before
    proceeding.Understood.
    >
    My only question is, how can I access the AWT thread?You mentioned in an earlier post that you have action listeners. As triggered by user events, these are always called on the AWT thread. For example:
    import javax.swing.*;
    import javax.awt.event.*;
    JButton button = new JButton( new AbstractAction {
            public void actionPerformed(ActionEvent e) {
                synchronized (myMonitor) {
                    myMonitor.notifyAll();
        });This button can be added to some swing UI. If clicked on, then actionPerformed will be called on the AWT thread, and any threads waiting on myMonitor will be notified.
    I see what you are saying - it's almost exactly what
    my coworkers told me - but I don't have the knowledge
    to implement it, which is why I'm here. Creating a
    monitor object isn't a problem (makeMove() would need
    to be synchronized, otherwise you wouldn't be able to
    call wait()),I recommend using a separate object for the monitor, especially if you are already using synchronized, so that you know exactly how each object's lock is being used. If you're sure it is safe, then there is nothing wrong with using the object itself as the monitor, as you suggest, however.
    but I'm not sure what you mean by the
    action handling method should be called on the AWT
    thread.Just that any action listener method is always called on the AWT thread in response to user action.
    Dave

  • I have a doubt about The Single-Thread Rule

    The [url http://java.sun.com/docs/books/tutorial/uiswing/overview/threads.html#rule]Single Thread Rule states:
    Rule: Once a Swing component has been realized, all code that might affect or depend on the state of that component should be executed in the event-dispatching thread.
    I began to wonder about this because so much code seems to work just fine when it isn't executed in the event dispatching thread. Why are there exceptions? I went looking for some code which acted differently when executed on the event thread than when it was not. I found this
    http://forum.java.sun.com/thread.jsp?forum=57&thread=410423&message=1803725#1803725
    Now I started wondering why this was the case. What I found was that DefaultCaret adds a document listener to the document of the JTextComponent. In this listener, the insertUpdate() method specifically tests if it is running on the event dispatch thread and if it is, it updates the caret position.public void insertUpdate(DocumentEvent e) {
        if (async || SwingUtilities.isEventDispatchThread()) {
            // ... update the caret position ...
    }I then copied the code from DefaultCaret and made a MyCaret. I needed to tweek the code a little bit, but it ran. I removed the event thread test. It worked outside the event thread. There was a small difference in the results though. The textarea did not scroll all the way to the bottom. Almost, but not quite. I didn't test enough to make sure this was the only problem, but there was at least one problem.
    Now I started think about why this would be. The thought crossed my mind that the order of the events which were posted to the event queue were probably important. Sun found bugs when components were updated out of the event thread, so they essentially ignored events which weren't on the event thread and created the The Single-Thread Rule.
    A few days pass. I'm starting to wonder if Sun could have done a better job making Swing components thread safe. I also don't know that this specific case I found was the rule or the exception to the rule. But without insight into the design philosopy of Swing, I would have to examine all their components and see how they have written them and see if I can come up with a better design. That sound like a lot of work. Especially without getting paid for it.
    But wait a second, all you have to do is call the append() method of JTextArea on the event thread. If that is the case, why didn't they write the freakin component that way? Well, I'll try itclass MyTextArea extends JTextArea {
      public MyTextArea(int rows, int columns) { super(rows,columns); }
      public void append(final String text) {
        if (SwingUtilities.isEventDispatchThread()) super.append(text);
        else {
          SwingUtilities.invokeLater(new Runnable() {
            public void run() { myAppend(text); }
      private void myAppend(String text) { super.append(text); }
    }I change [url http://forum.java.sun.com/thread.jsp?forum=57&thread=410423&message=1803725#1803725]camickr's code to use a MyTextArea and it works fine without calling from the event thread. I've essentially moved The Single-Thread Rule to the component itself rather than relying on each and every one of the [url http://www.aboutlegacycoding.com/default.htm?AURL=%2FSurveys%2FSurvey6intro%2Easp]2.5 million Java programmers worldwide to use SwingUtilities.invaokeLater().
    Now for my question...
    Why didn't Sun do this?

    Swing is slow enough as it is. Lets not make it slower
    just
    because dense "programmers" don't know what they are
    doing.I agree with you in defending the current model, but aren't you a bit harsh there?!? ;-)
    Well, there are a number of not-so-dense programmers that expect such high-level components to be thread-safe. The question is worth asking whether Sun intentionally favor the explicit thread management for performance reasons, or whether this was an oversight.
    I'd go for the former (intentional) : indeed any GUI toolkit is inherently thread-based; there is always a distinction between the graphical thread(s) and the application threads - and the programmer always has to manage explicit thread creation to handle long-running event handlers without blocking the event dispatching thread. Extending thread concerns to the updating of components is therefore not a big move.
    So it seems fair that a core GUI toolkit does not hide thread issues (though to the best of my knowledge there is no such limitation in updating AWT components), or at least that's what Sun deemed.
    An ease-of-use-focused toolkit wrapping the core toolkit for thread-safety can be provided as a third-party product. Though I agree that wrapping the dozens of existing widgets and hundreds of methods is cumbersome - and the lack of such products probably shows it would have a low added value to trained developpers.
    Because your way is an extra method call and if
    statement, neither of which is necessary if you already know you
    are in the correct thread. Now count the number of methods
    which will need to be changed (and add up the extra cost).Indeed it's quite common to update several properties of several widgets in one bulk (when user clicks "OK", add a row to the table, change the title of the window, update status bar, re-enable all buttons, change some color,...).
    In this case explicit thread management doesn't spare one if but a dozen of redundant ifs!
    Note that there could have been if-less ways to cope for thread safety, such as creating a copy of the component's model when a change is made to a component, and switching the model only before paint() is called in the event-dispatching - of course coalescing all changes into the same "updated" model until paint() is called.
    But this would trade ease of use for redundant memory consumption, especially for some components with potentially huge models (JTree, JTable, JTextArea,...). And Swing appears to be already quite memory-greedy!

  • Thread: Could not generate the XML in single thread mode

    Hi all,
    I have created a report using PLSQL Procedure method after submitting the request I am getting the following Error.Couldn't sort out why I am getting the error while running the report.
    Error in "Multi threaded or single threaded execution block" of XXRX_REPORT_OUTPUT_PKG.insert_into_nested_table procedure
    ERROR :ORA-20005: Could not generate the XML in single thread mode
    XXRXERROR: XXRX_REPORT_OUTPUT_PKG.run_report SQLERROR: ORA-20005: ORA-20005: Could not generate the XML in single thread mode
    Can someone help me out finding the issue
    Thanks in Advance

    Hi,
    Please read SQL and PL/SQL FAQ
    We cannot guess what is the error if you don't post any part of your code.
    Additionally when you put some code or output please enclose it between two lines starting with {noformat}{noformat}
    i.e.:
    {noformat}{noformat}
    SELECT ...
    {noformat}{noformat}
    Regards.
    Al                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • BDB read performance problem: lock contention between GC and VM threads

    Problem: BDB read performance is really bad when the size of the BDB crosses 20GB. Once the database crosses 20GB or near there, it takes more than one hour to read/delete/add 200K keys.
    After a point, of these 200K keys there are about 15-30K keys that are new and this number eventually should come down and there should not be any new keys after a point.
    Application:
    Transactional Data Store application. Single threaded process, that's trying to read one key's data, delete the data and add new data. The keys are really small (20 bytes) and the data is large (grows from 1KB to 100KB)
    On on machine, I have a total of 3 processes running with each process accessing its own BDB on a separate RAID1+0 drive. So, according to me there should really be no disk i/o wait that's slowing down the reads.
    After a point (past 20GB), There are about 4-5 million keys in my BDB and the data associated with each key could be anywhere between 1KB to 100KB. Eventually every key will have 100KB data associated with it.
    Hardware:
    16 core Intel Xeon, 96GB of RAM, 8 drive, running 2.6.18-194.26.1.0.1.el5 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
    BDB config: BTREE
    bdb version: 4.8.30
    bdb cache size: 4GB
    bdb page size: experimented with 8KB, 64KB.
    3 processes, each process accesses its own BDB on a separate RAIDed(1+0) drive.
    envConfig.setAllowCreate(true);
    envConfig.setTxnNoSync(ourConfig.asynchronous);
    envConfig.setThreaded(true);
    envConfig.setInitializeLocking(true);
    envConfig.setLockDetectMode(LockDetectMode.DEFAULT);
    When writing to BDB: (Asynchrounous transactions)
    TransactionConfig tc = new TransactionConfig();
    tc.setNoSync(true);
    When reading from BDB (Allow reading from Uncommitted pages):
    CursorConfig cc = new CursorConfig();
    cc.setReadUncommitted(true);
    BDB stats: BDB size 49GB
    $ db_stat -m
    3GB 928MB Total cache size
    1 Number of caches
    1 Maximum number of caches
    3GB 928MB Pool individual cache size
    0 Maximum memory-mapped file size
    0 Maximum open file descriptors
    0 Maximum sequential buffer writes
    0 Sleep after writing maximum sequential buffers
    0 Requested pages mapped into the process' address space
    2127M Requested pages found in the cache (97%)
    57M Requested pages not found in the cache (57565917)
    6371509 Pages created in the cache
    57M Pages read into the cache (57565917)
    75M Pages written from the cache to the backing file (75763673)
    60M Clean pages forced from the cache (60775446)
    2661382 Dirty pages forced from the cache
    0 Dirty pages written by trickle-sync thread
    500593 Current total page count
    500593 Current clean page count
    0 Current dirty page count
    524287 Number of hash buckets used for page location
    4096 Assumed page size used
    2248M Total number of times hash chains searched for a page (2248788999)
    9 The longest hash chain searched for a page
    2669M Total number of hash chain entries checked for page (2669310818)
    0 The number of hash bucket locks that required waiting (0%)
    0 The maximum number of times any hash bucket lock was waited for (0%)
    0 The number of region locks that required waiting (0%)
    0 The number of buffers frozen
    0 The number of buffers thawed
    0 The number of frozen buffers freed
    63M The number of page allocations (63937431)
    181M The number of hash buckets examined during allocations (181211477)
    16 The maximum number of hash buckets examined for an allocation
    63M The number of pages examined during allocations (63436828)
    1 The max number of pages examined for an allocation
    0 Threads waited on page I/O
    0 The number of times a sync is interrupted
    Pool File: lastPoints
    8192 Page size
    0 Requested pages mapped into the process' address space
    2127M Requested pages found in the cache (97%)
    57M Requested pages not found in the cache (57565917)
    6371509 Pages created in the cache
    57M Pages read into the cache (57565917)
    75M Pages written from the cache to the backing file (75763673)
    $ db_stat -l
    0x40988 Log magic number
    16 Log version number
    31KB 256B Log record cache size
    0 Log file mode
    10Mb Current log file size
    856M Records entered into the log (856697337)
    941GB 371MB 67KB 112B Log bytes written
    2GB 262MB 998KB 478B Log bytes written since last checkpoint
    31M Total log file I/O writes (31624157)
    31M Total log file I/O writes due to overflow (31527047)
    97136 Total log file flushes
    686 Total log file I/O reads
    96414 Current log file number
    4482953 Current log file offset
    96414 On-disk log file number
    4482862 On-disk log file offset
    1 Maximum commits in a log flush
    1 Minimum commits in a log flush
    160KB Log region size
    195 The number of region locks that required waiting (0%)
    $ db_stat -c
    7 Last allocated locker ID
    0x7fffffff Current maximum unused locker ID
    9 Number of lock modes
    2000 Maximum number of locks possible
    2000 Maximum number of lockers possible
    2000 Maximum number of lock objects possible
    160 Number of lock object partitions
    0 Number of current locks
    1218 Maximum number of locks at any one time
    5 Maximum number of locks in any one bucket
    0 Maximum number of locks stolen by for an empty partition
    0 Maximum number of locks stolen for any one partition
    0 Number of current lockers
    8 Maximum number of lockers at any one time
    0 Number of current lock objects
    1218 Maximum number of lock objects at any one time
    5 Maximum number of lock objects in any one bucket
    0 Maximum number of objects stolen by for an empty partition
    0 Maximum number of objects stolen for any one partition
    400M Total number of locks requested (400062331)
    400M Total number of locks released (400062331)
    0 Total number of locks upgraded
    1 Total number of locks downgraded
    0 Lock requests not available due to conflicts, for which we waited
    0 Lock requests not available due to conflicts, for which we did not wait
    0 Number of deadlocks
    0 Lock timeout value
    0 Number of locks that have timed out
    0 Transaction timeout value
    0 Number of transactions that have timed out
    1MB 544KB The size of the lock region
    0 The number of partition locks that required waiting (0%)
    0 The maximum number of times any partition lock was waited for (0%)
    0 The number of object queue operations that required waiting (0%)
    0 The number of locker allocations that required waiting (0%)
    0 The number of region locks that required waiting (0%)
    5 Maximum hash bucket length
    $ db_stat -CA
    Default locking region information:
    7 Last allocated locker ID
    0x7fffffff Current maximum unused locker ID
    9 Number of lock modes
    2000 Maximum number of locks possible
    2000 Maximum number of lockers possible
    2000 Maximum number of lock objects possible
    160 Number of lock object partitions
    0 Number of current locks
    1218 Maximum number of locks at any one time
    5 Maximum number of locks in any one bucket
    0 Maximum number of locks stolen by for an empty partition
    0 Maximum number of locks stolen for any one partition
    0 Number of current lockers
    8 Maximum number of lockers at any one time
    0 Number of current lock objects
    1218 Maximum number of lock objects at any one time
    5 Maximum number of lock objects in any one bucket
    0 Maximum number of objects stolen by for an empty partition
    0 Maximum number of objects stolen for any one partition
    400M Total number of locks requested (400062331)
    400M Total number of locks released (400062331)
    0 Total number of locks upgraded
    1 Total number of locks downgraded
    0 Lock requests not available due to conflicts, for which we waited
    0 Lock requests not available due to conflicts, for which we did not wait
    0 Number of deadlocks
    0 Lock timeout value
    0 Number of locks that have timed out
    0 Transaction timeout value
    0 Number of transactions that have timed out
    1MB 544KB The size of the lock region
    0 The number of partition locks that required waiting (0%)
    0 The maximum number of times any partition lock was waited for (0%)
    0 The number of object queue operations that required waiting (0%)
    0 The number of locker allocations that required waiting (0%)
    0 The number of region locks that required waiting (0%)
    5 Maximum hash bucket length
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Lock REGINFO information:
    Lock Region type
    5 Region ID
    __db.005 Region name
    0x2accda678000 Region address
    0x2accda678138 Region primary address
    0 Region maximum allocation
    0 Region allocated
    Region allocations: 6006 allocations, 0 failures, 0 frees, 1 longest
    Allocations by power-of-two sizes:
    1KB 6002
    2KB 0
    4KB 0
    8KB 0
    16KB 1
    32KB 0
    64KB 2
    128KB 0
    256KB 1
    512KB 0
    1024KB 0
    REGION_JOIN_OK Region flags
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Lock region parameters:
    524317 Lock region region mutex [0/9 0% 5091/47054587432128]
    2053 locker table size
    2053 object table size
    944 obj_off
    226120 locker_off
    0 need_dd
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Lock conflict matrix:
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Locks grouped by lockers:
    Locker Mode Count Status ----------------- Object ---------------
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Locks grouped by object:
    Locker Mode Count Status ----------------- Object ---------------
    Diagnosis:
    I'm seeing way to much lock contention on the Java Garbage Collector threads and also the VM thread when I strace my java process and I don't understand the behavior.
    We are spending more than 95% of the time trying to acquire locks and I don't know what these locks are. Any info here would help.
    Earlier I thought the overflow pages were the problem as 100KB data size was exceeding all overflow page limits. So, I implemented duplicate keys concept by chunking of my data to fit to overflow page limits.
    Now I don't see any overflow pages in my system but I still see bad bdb read performance.
    $ strace -c -f -p 5642 --->(607 times the lock timed out, errors)
    Process 5642 attached with 45 threads - interrupt to quit
    % time     seconds  usecs/call     calls    errors syscall
    98.19    7.670403        2257      3398       607 futex
     0.84    0.065886           8      8423           pread
     0.69    0.053980        4498        12           fdatasync
     0.22    0.017094           5      3778           pwrite
     0.05    0.004107           5       808           sched_yield
     0.00    0.000120          10        12           read
     0.00    0.000110           9        12           open
     0.00    0.000089           7        12           close
     0.00    0.000025           0      1431           clock_gettime
     0.00    0.000000           0        46           write
     0.00    0.000000           0         1         1 stat
     0.00    0.000000           0        12           lseek
     0.00    0.000000           0        26           mmap
     0.00    0.000000           0        88           mprotect
     0.00    0.000000           0        24           fcntl
    100.00    7.811814                 18083       608 total
    The above stats show that there is too much time spent locking (futex calls) and I don't understand that because
    the application is really single-threaded. I have turned on asynchronous transactions so the writes might be
    flushed asynchronously in the background but spending that much time locking and timing out seems wrong.
    So, there is possibly something I'm not setting or something weird with the way JVM is behaving on my box.
    I grep-ed for futex calls in one of my strace log snippet and I see that there is a VM thread that grabbed the mutex
    maximum number(223) of times and followed by Garbage Collector threads: the following is the lock counts and thread-pids
    within the process:
    These are the 10 GC threads (each thread has grabbed lock on an avg 85 times):
      86 [8538]
      85 [8539]
      91 [8540]
      91 [8541]
      92 [8542]
      87 [8543]
      90 [8544]
      96 [8545]
      87 [8546]
      97 [8547]
      96 [8548]
      91 [8549]
      91 [8550]
      80 [8552]
    VM Periodic Task Thread" prio=10 tid=0x00002aaaf4065000 nid=0x2180 waiting on condition (Main problem??)
     223 [8576] ==> grabbing a lock 223 times -- not sure why this is happening…
    "pool-2-thread-1" prio=10 tid=0x00002aaaf44b7000 nid=0x21c8 runnable [0x0000000042aa8000] -- main worker thread
       34 [8648] (main thread grabs futex only 34 times when compared to all the other threads)
    The load average seems ok; though my system thinks it has very less memory left and that
    I think is because its using up a lot of memory for the file system cache?
    top - 23:52:00 up 6 days, 8:41, 1 user, load average: 3.28, 3.40, 3.44
    Tasks: 229 total, 1 running, 228 sleeping, 0 stopped, 0 zombie
    Cpu(s): 3.2%us, 0.9%sy, 0.0%ni, 87.5%id, 8.3%wa, 0.0%hi, 0.1%si, 0.0%st
    Mem: 98999820k total, 98745988k used, 253832k free, 530372k buffers
    Swap: 18481144k total, 1304k used, 18479840k free, 89854800k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    8424 rchitta 16 0 7053m 6.2g 4.4g S 18.3 6.5 401:01.88 java
    8422 rchitta 15 0 7011m 6.1g 4.4g S 14.6 6.5 528:06.92 java
    8423 rchitta 15 0 6989m 6.1g 4.4g S 5.7 6.5 615:28.21 java
    $ java -version
    java version "1.6.0_21"
    Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
    Maybe I should make my application a Concurrent Data Store app as there is really only one thread doing the writes and reads. But I would like
    to understand why my process is spending so much time in locking.
    Can I try any other options? How do I prevent such heavy locking from happening? Has anyone seen this kind of behavior? Maybe this is
    all normal. I'm pretty new to using BDB.
    If there is a way to disable locking that would also work as there is only one thread that's really doing all the job.
    Should I disable the file system cache? One thing is that my application does not utilize cache very well as once I visit a key, I don't visit that
    key again for a very long time so its very possible that the key has to be read again from the disk.
    It is possible that I'm thinking this completely wrong and focussing too much on locking behavior and the problem is else where.
    Any thoughts/suggestions etc are welcome. Your help on this is much appreciated.
    Thanks,
    Rama

    Hi,
    Looks like you're using BDB, not BDB JE, and this is the BDB JE forum. Could you please repost here?:
    Berkeley DB
    Thanks,
    mark

  • Help! My application uses a Single Thread !

    Hi all !
    I have a web application which performs some long running tasks. This can be easily simulated with:
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              System.out.println("Started Long Running Task!");
              try {
                   Thread.sleep(20000);
              } catch (InterruptedException e) {
                   e.printStackTrace();
              System.out.println("Done");
    In order to deal with Long Running Tasks, I have created a WorkManager with MinThreads 10 and MaxThreads 100
    Then I have assigned the Work Manager to the Web application usign weblogic.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
    <wl-dispatch-policy>WorkManager-0</wl-dispatch-policy>
    </weblogic-web-app>
    However it seems that the Web application uses a SINGLE Thread to reply to the Servlet. In other words issuing n parallel requests the output is:
    Started Long Running Task!
    [20 Seconds Pause]
    Started Long Running Task!
    [20 Seconds Pause]
    Started Long Running Task!
    [20 Seconds Pause]
    Started Long Running Task!
    [20 Seconds Pause]
    My settings are the default Weblogic 12c Server settings, I've just added Weblogic NIO performance libs to the Java's path.
    Is there any setting which allow just 1 Socket for my application ? Maybe it's because I'm using the "unlicensed" (free download) server version ?
    Thanks a lot
    Frank

    You need to create separate Windows user accounts if you want to seperate the behaviour of iTunes for each user. That also means separate iTunes libraries for each user.
    Windows is a multi-user operating system but you are not using it properly. iTunes is not a multi-user application. No application is. You can't expect it to treat different users differently when they are all using the same computer user account.
    Do you understand what I mean?

  • Is that possible to set up a multiple y-axis and single x-axis in one waveformchart (in LabVIEW 8.0)?

    Hello!
    Is that possible to set up a multiple y-axis and single x-axis in one waveform chart using LabVIEW 8.0?
    Because I need to display several channels in the same chart, if one channel has a very big data range and the others not, the channels with smaller data range will not be displayed very clear.
    Thanks!

    See similar thread at http://forums.ni.com/ni/board/message?board.id=170&message.id=154428&requireLogin=False

  • DBMS_PARALLEL_EXECUTE multiple threads taking more time than single thread

    I am trying to insert 10 million records from source table to target table.
    Number of chunks = 100
    There are two scenarios:
    dbms_parallel_execute(..... parallel_level => 1) -- for single thread
    dbms_parallel_execute(..... parallel_level => 10) -- for 10 threads
    I observe that the average time taken by 10 threads to process each chunk is 10 times the average time taken in case of single thread.
    Ideally it should be same which would reduce the time taken by a factor of 10 (due to 10 threads).
    Due to the above mentioned behavior, the time taken is the same in both cases.
    It would be great if anybody can explain me the reason behind such behavior.
    Thanks in advance

    Source Table = TEST_SOURCE
    Target Table = TEST_TARGET
    Both tables have 100 columns
    Below is the code:
    DECLARE
    l_task VARCHAR2(30) := 'test_task_F';
    l_sql_stmt VARCHAR2(32767);
    l_try NUMBER;
    l_stmt VARCHAR2(32767);
    l_status NUMBER;
    BEGIN
    l_stmt := 'select dbms_rowid.rowid_create( 1, data_object_id, lo_fno, lo_block, 0 ) min_rid,
                                       dbms_rowid.rowid_create( 1, data_object_id, hi_fno, hi_block, 10000 ) max_rid
                                       from (
                                       select distinct grp,
                                  first_value(relative_fno)
                                  over (partition by grp order by relative_fno, block_id
                                  rows between unbounded preceding and unbounded following) lo_fno,
                                  first_value(block_id )
                                  over (partition by grp order by relative_fno, block_id
                                  rows between unbounded preceding and unbounded following) lo_block,
                                  last_value(relative_fno)
                                  over (partition by grp order by relative_fno, block_id
                                  rows between unbounded preceding and unbounded following) hi_fno,
                                  last_value(block_id+blocks-1)
                                  over (partition by grp order by relative_fno, block_id
                                  rows between unbounded preceding and unbounded following) hi_block,
                                  sum(blocks) over (partition by grp) sum_blocks
                                  from (
                                  select relative_fno,
                                  block_id,
                                  blocks,
                                  trunc( (sum(blocks) over (order by relative_fno, block_id)-0.01) / (sum(blocks) over ()/100) ) grp
                                  from dba_extents
                                  where segment_name = upper(''TEST_REGION_SOURCE'')
                                  and owner = ''FUSION'' order by block_id
                             (select data_object_id from user_objects where object_name = upper(''TEST_REGION_SOURCE'') )';
    DBMS_PARALLEL_EXECUTE.create_task (task_name => l_task);
    DBMS_PARALLEL_EXECUTE.create_chunks_by_sql(task_name => l_task,
    sql_stmt => l_stmt,
    by_rowid => true);
    l_sql_stmt := 'insert into FUSION.TEST_REGION_TARGET(REGION_ID,REGION1,REGION2,REGION3,REGION4,
                             ...., REGION99
                             SELECT REGION_ID,REGION1,REGION2,REGION3,REGION4,
                             .....,REGION99
                             from FUSION.TEST_REGION_SOURCE WHERE (1=1) AND rowid BETWEEN :start_id AND :end_id ';
    DBMS_PARALLEL_EXECUTE.run_task(task_name => l_task,
    sql_stmt => l_sql_stmt,
    language_flag => DBMS_SQL.NATIVE,
    parallel_level => 10);
    -- If there is error, RESUME it for at most 2 times.
    l_try := 0;
    l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
    WHILE(l_try < 2 and l_status != DBMS_PARALLEL_EXECUTE.FINISHED)
    Loop
    l_try := l_try + 1;
    DBMS_PARALLEL_EXECUTE.resume_task(l_task);
    l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
    END LOOP;
    DBMS_PARALLEL_EXECUTE.drop_task(l_task);
    END;
    Edited by: 943978 on Jul 2, 2012 9:22 AM

  • The Coded Ui Test Method is runnung in Single Thread Apartment(STA) Mode of COM

    Hi,
    when running tests with CUIT,and after a timeout in the previous tests we noticed the following error:
    lass Initialization method TestSuite2.MyClassInitialize threw exception. Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException: Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException: The Coded UI Test is running in Single Thread Apartment (STA) mode of COM. In this mode, all the playback calls should happen from the TestMethod thread only and UITestControl should not be shared across TestMethods..
    Stack Trace:
    at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.ThrowExceptionIfCrossThreadAccess(IScreenElement uiElement)
    at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.InitPlayback()
    at Microsoft.VisualStudio.TestTools.UITesting.Playback.Initialize()
    at RapArtTest.Tests.Generic.GenericTestsTemplate.ClassInit(TestContext context)
    at TestSuite2.MyClassInitialize(TestContext context)Please note that we get this error if we have 10 tests failing with a timeout issue previously, after that all our tests suite fail with the same STA error.is there a way to workaround this ?

    Hi kaki2000,
    >>Please note that we get this error if we have 10 tests failing with a timeout issue previously.
    Which VS IDE did you use, VS2010 or high version?
    Do you run your coded UI tests in VS IDE or you add them to a load test? If you run your coded UI tests one by one in VS IDE, how about the result?
    >>The Coded UI Test is running in Single Thread Apartment (STA) mode of COM.  In this mode, all the playback calls should happen from the TestMethod thread only and UITestControl should not be shared across TestMethods..
    After a test method is finished, please call the clean playback. Then the later test method can reload UIMap and find exactly one on testing.
    Reference:
    http://blog.csdn.net/marryshi/article/details/8815025
    https://social.msdn.microsoft.com/Forums/en-US/ea5a2bd0-dbae-4256-b8c3-25d6eb45257a/codedui-single-thread-apartment-sta-mode-of-com-issue?forum=vsautotest
    In addition, do not call UI actions from the ClassCleanup method.
    Reference:
    http://stackoverflow.com/questions/16667350/coded-ui-test-single-thread-apartment-sta-error-occurred-while-executing-clas
    Note: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you.
    Microsoft does not control these sites and has not tested any software or information found on these sites;
    Therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there.
    There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.
    Best Regards,
    Jack
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to improve spreadsheet speed when single-threaded VBA is the bottleneck.

    My brother works with massive Excel spreadsheets and needs to speed them up. Gigabytes in size and often with a million rows and many sheets within the workbook. He's already refined the sheets to take advantage of Excel's multi-thread recalculation and
    seen significant improvements, but he's hit a stumbling block. He uses extensive VBA code to aid clarity, but the VB engine is single-threaded, and these relatively simple functions can be called millions of times. Some functions are trivial (e.g. conversion
    functions) and just for clarity and easily unwound (at the expense of clarity), some could be unwound but that would make the spreadsheets much more complex, and others could not be unwound. 
    He's aware of http://www.analystcave.com/excel-vba-multithreading-tool/ and similar tools but they don't help as the granularity is insufficiently fine. 
    So what can he do? A search shows requests for multi-threaded VBA going back over a decade.
    qts

    Hi,
    >> The VB engine is single-threaded, and these relatively simple functions can be called millions of times.
    The Office Object Model is
    Single-Threaded Apartments, if the performance bottleneck is the Excel Object Model operation, the multiple-thread will not improve the performance significantly.
    >> How to improve spreadsheet speed when single-threaded VBA is the bottleneck.
    The performance optimization should be based on the business. Since I’m not familiar with your business, so I can only give you some general suggestions from the technical perspective. According to your description, the size of the spreadsheet had reached
    Gigabytes and data volume is about 1 million rows. If so, I will suggest you storing the data to SQL Server and then use the analysis tools (e.g. Power Pivot).
    Create a memory-efficient Data Model using Excel 2013
    and the Power Pivot add-in
    As
    ryguy72 suggested, you can also leverage some other third party data processing tool
    according to your business requirement.
    Regards,
    Jeffrey
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Difference between emergency state and single user mode ?

    Hi,
    I want to know the difference between emergency state which we normally use in suspect mode database and single user mode.
    Navakanth

    Emergency/suspect mode is tells you the state of the database and database is not available for user action but where as single user mode tells the user action preference. Database is active and available for the user action.
    You can refer 
    http://msdn.microsoft.com/en-us/library/bb522682.aspx
    EMERGENCY
    The database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role. EMERGENCY is primarily used for troubleshooting purposes. For example, a database marked as suspect due to a corrupted log file can be
    set to the EMERGENCY state. This could enable the system administrator read-only access to the database. Only members of the sysadmin fixed server role can set a database to the EMERGENCY state.
    SINGLE_USER
    Specifies that only one user at a time can access the database. If SINGLE_USER is specified and there are other users connected to the database the ALTER DATABASE statement will be blocked until all users disconnect from the specified database. To override
    this behavior, see the WITH <termination> clause.
    The database remains in SINGLE_USER mode even if the user that set the option logs off. At that point, a different user, but only one, can connect to the database.
    Before you set the database to SINGLE_USER, verify the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. When set to ON, the background thread used to update statistics takes a connection against the database, and you will be unable to access the database
    in single-user mode. To view the status of this option, query the is_auto_update_stats_async_on column in the sys.databases catalog view.
    If the option is set to ON, perform the following tasks:
    Set AUTO_UPDATE_STATISTICS_ASYNC to OFF.
    Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.
    If there are active jobs, either allow the jobs to complete or manually terminate them by using KILL STATS JOB.
    --Prashanth

  • Regarding single threaded servlet

    why pool of instances for single threaded servlet?

    why pool of instances for single threaded servlet
    the container instantiates the servlet when it starts up or when the first request for that servlet comes, instantiation takes place only once.
    when the request comes for a servlet, the container create a thread and gives it response and request object , when another request comes in it creates a thread and gives it request and response object, this process goeson..

  • EOIO vs single thread

    I have a scenario,
    R3>IDoc(EOIO Queue)-->BMP(...do something there after), we set up the EOIO queue by Idoc serialization(add a line to idxquque table),  the problem is:
    we send multiple idocs at the exactly the same time(same second), the order they finish at the BPM is not the same as the sequence they're is sent out.
    My question is, how can the sequence mixed up? is EOIO single thread? and how do I keep the Idoc process exactly the same sequence?

    Hi, Moorthy,
    Glad to see you here again.
    I just saw the note 833740. According to the note
    "The BPE acts as an application system within the Integration Server and, on the arrival side, supports the service grade EOIO. On the output side, however, it must be assumed that the BPE will communicate with several business systems, for which the service grade EOIO can only be adhered to for specific applications."
    My problem is at the time when the idocs go through EOIO queue and arrive at the BPM, the order has already changed. And according to the note, BPE should support EOIO at arrival side. Any more thought?
    Thanks

  • Several handles to the same database in a single thread

    I have a single-threaded program where several db handles are created with db_create() and they're all opened to the same database in the same file. The handles will be used serially, in quite random order for reads and writes, and each of them will be closed at the end of the program.
    Do I need to take any steps to ensure the integrity of the database? I currently create the handles and open the databases with the default settings, if applicable.

    Guys, I am still racking my brain. I have taken some screenshots to show you how I have my database tables set up. I was able to get the tables over to the InnoDB type so I can make foreign keys. Here is how I currently have them setup, can someone check this out and see if it's correct?
    Table 1 (carinfo)
    Table 2 (images)
    Thanks

Maybe you are looking for

  • Re-Using XML file from decode barcode + extract xml process

    I was hoping someone could put me in the right direction here. I am decodeing the information stored in a 2D Bar code and sending this information to an XML file, then I am trying to combine that xml file with a blank PDF template but the process is

  • Infotype operation (Delete,Insert,Change) Log

    Hello Folks, I want to get the log of operation happend on a infotype in my Z Report. I know that log can be seen using prog RPUAUD00. Iam using the FM's HR_INFOTYPE_LOG_GET_LIST & HR_INFOTYPE_LOG_GET_DETAIL but this is not fetching the Operation or

  • CCMS Queue Monitoring

    Hello all, Can we monitor the queue length in XI and send alerts using CCMS?  Sometimes, My queues are active, but messages are piling up.  Is there a way to monitor the no. of messages in the queue and send an alert message when it reaches some limi

  • Most common JRE version today?

    I'm trying to develop an applet and I have trouble deciding on which version of the JRE to base it on. I know of some machines still running JRE 1.4.2, perhaps due to enterprise IT policy. I was told the most common JRE I can assume to be the most wi

  • How to solve this? java.lang.IllegalArgumentException problem

    The midlet compliled successfully.. Once run, I enter 3 different records... then after when I 'VIEW' for example I enter recordID: 1.. by right, all the details about recordId : 1 would be listed out...somehow, this error pops up. java.lang.IllegalA