I have two Remote Methods in an EJB (which is also a service endpoint). The first method (m1) is given the transaction attribute of Supports and the other (m2) RequiresNew.
m1() get a list of Items and for each calls using sessionContext.getEJBObject().m2(). [m1 is called using the web-service.]
The total timeout value is 180 sec and the max transaction timeout value is 240 sec.
What I find is that after overall 180 sec all calls to m2() start to time-out. Before the 180 sec mark, all m2() transactions are successfully committed.
Shouldn't every new transaction (m2) get full 180 sec to run? Or something else could be wrong here?
This is on WAS 6.1.
Joined: Feb 13, 2004
You should turn on the diagnostic trace option to check if your transaction attributes & timeouts are being picked up correctly.
If the call sequence is "WebService => ejb.M1() => (one or more times) => ejb.M2()" then I think 180 sec timeout is working correctly.
The way it's behaving it seems more like a call time-out rather than a transaction timeout, a "Requires New" initiates a new transaction every time... doesn't it.
If I set the total time-out value to 0, m2() calls would run successfully up to the max time-out value and then start failing.