We are currently using JBoss 3.2.5.
There is a MDB in our application that does not work in a transaction, and performs a call to another Bean method that has a specific transaction-timeout set in his jboss.xml
<session> <ejb-name>RsuBLGCalcolo</ejb-name> <method-attributes> <method> <method-name>emissioneFatture</method-name> <transaction-timeout>43200</transaction-timeout> </method> </method-attributes> </session>
The default JBoss transaction timeout is 300 secs.
In 3.2.5 it works well.
Now we are trying to test the same application on a 2 nodes cluster, built with 2 JBoss 4.2.2.GA running on 2 Linux boxes. With both nodes up, or even with one single node up the called method does not behave as expected and goes into timeout exactly after 300 secs (there is a lot of db activity into it, so the timeout is thrown precisely)
The error I get is
12:29:11,482 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id 7f000001:808e:4805d21b:123 invoked while multiple threads active within it. 12:29:11,482 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAction_2] - CheckedAction::check - atomic action 7f000001:808e:4805d21b:123 aborting with 1 threads active! 12:29:11,537 WARN [TreeCache] status is 9 (not ACTIVE or PREPARING); returning null) java.lang.Throwable at org.jboss.cache.TreeCache.getCurrentTransaction(TreeCache.java:5819) at org.jboss.cache.TreeCache.getCurrentTransaction(TreeCache.java:5789) at org.jboss.cache.TreeCache.put(TreeCache.java:3845) at org.jboss.cache.TreeCache.put(TreeCache.java:3788) at it.saga.library.authentication.AutBLGJNDIMan.getUserSession(AutBLGJNDIMan.java:223) at it.saga.library.authentication.AutBLGJNDIMan.getUserSession(AutBLGJNDIMan.java:193) at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at it.saga.library.authentication.AutBLGJNDIManClient.getUserSession(AutBLGJNDIManClient.java:86) at it.saga.library.authentication.AutCFGUserSession.getUserSessionJNDI(AutCFGUserSession.java:107) at it.saga.library.authentication.AutCFGUserSession.containsKey(AutCFGUserSession.java:291)
Note that only one node of the cluster is working when the timeout occurs, since the computation is kept on the node that processed the message bean. So i think that the cluster is not the cause, but who knows...
At a first glance, it looks like the <transaction-timeout> tag is no more recognized. Does it make sense? Where is my mistake?
Can someone give me an hint?
Thanks in advance... Umberto