Webmethods calling OW bsfn resulting in rollback

hobert

Member
Hi Forum,

We have a webmethods integration flow calling a OW bsfn to insert records. Depending on the number of records we have in one transaction, the records is being rolled back. We tried a trasanction with 100 records and it gets committed. Using the same integration but for a 300 record transaction and it gets rolled back. Any idea why the rollback is happening?

Thanks for your replies.

Hobert
DB2/400
OneWorld Xe
XPI Enterprise One Adapter 8.92
Integration Server 6.1
 
Hobert,

What mode is your XPI adapter running in -- Local Transaction mode or Automatic? Local Transaction mode allows WebMethods to control the transaction boundary instead of E1. In order to protect against a single business function from holding a call object kernel for too long there is a "Manual Transaction Timeout". This value seems to be undocumented but through experimentation I have figured it to be 1/2 of the JDENET timeout value in the enterprise server's JDE.INI.

What does this mean to you? If your JDENET timeout value is 60 seconds and you are using Local Transactions (which in turn are translated to "Manual Transactions" by the JDE middleware), you will have only 30 seconds for the call to complete. If it does not complete in that time you will be rolled back in the call object kernel. It get's worse - all users attached to that call object kernel with the same User ID will also be rolled back. So for instance if you have multiple adapter connections they will all typically share a user id, perhaps "XBPUSER". If one XBPUSER transaction is rolled back on a particular call object kernel any other XBPUSER connections to that *same* kernel will also be rolled back!

When reviewing the enterprise server's Call Object logs the following keywords point to manual transaction problems:
“Cancelling Transaction” and “JDB_RollbackUser ”. If a RollbackUser is initiated within the Callobject the
adapter will return a fatal exception to WebMethods.

Please come back to me if you would like to discuss further. I have been working with this issue at a number of XPI sites over the last year and so far I have not been able to get a real response from Oracle regarding the problem. To me it seems to be a basic architectural flaw. I have not tested the behavior under 8.11 SP1 with multi-threaded kernels but at least until 8.94K1 foundation I can say this is the way the system behaves.

Regards,
 
Justin,

Thanks for the reply. I share the same sentiment about oracle support on this one.

Looks like we are using manual transaction. Do you know which setting we need to change to try the "automatic transaction"?

Thanks a lot!
 
Back
Top