Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JMS TimedOutException: Transaction timed out after 31 seconds

281 views
Skip to first unread message

Franz Garsombke

unread,
Jan 5, 2002, 3:56:53 PM1/5/02
to

In performing some JMS load tests (1000 messages) we sometimes get transaction
TimedOutExceptions. We have increased our Connection Factory Transaction Timeout
value=600,000 (10 minutes). I already know about the documentation stating seconds,
but it is really milliseconds. Just wondering what could be causing this?
Running WebLogic 6.1sp1 on Windows NT and the messages are being persisted.

Thanks in advance.

Franz

java.rmi.RemoteException: Message was not sent because transaction is not active.
Xid=14362:71b81bea2126a078(2587030),Status=Rolling Back. [Reason=weblogic.transaction.internal.TimedOutException:
Transaction timed out after 31 seconds

Xid=14362:71b81bea2126a078(2587030),Status=Active,numRepliesOwedMe=1,numRepliesOwedOthers=1,seconds
since begin=31,seconds left=30,ServerResourceInfo[JMS_GhxJmsStore]=(state=suspended,assigned=none),SCInfo[GhxDomain+GhxServer]=(state=active),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=GhxServer+10.1.4.216:7001+GhxDomain+,
Resources={JMS_GhxJmsServer_NotDurable, JMS_GhxJmsStore})],CoordinatorURL=GhxServer+10.1.4.216:7001+GhxDomain+)],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=85,seconds left=46,activeThread=Thread[ExecuteThread: '53' for queue:
'default',5,Thread Group for Queue: 'default'],ServerResourceInfo[JMS_GhxJmsStore]=(state=suspended,assigned=GhxServer),SCInfo[GhxDomain+GhxServer]=(state=active),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=GhxServer+10.1.4.216:7001+GhxDomain+,
Resources={JMS_GhxJmsServer_NotDurable, JMS_GhxJmsStore})],CoordinatorURL=GhxServer+10.1.4.216:7001+GhxDomain+)

at weblogic.transaction.internal.TransactionManagerImpl.sendRequest(TransactionManagerImpl.java:1155)

at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:82)

at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:255)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:222)

at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy183.create(Unknown Source)
at com.ghx.bea.sessionbeans.messagecontroller.MessageControllerWrapper.create(Unknown
Source)
at com.ghx.bea.sessionbeans.messagecontroller.MessageControllerWrapper.createBean(Unknown
Source)
at com.ghx.bea.msgbeans.ghxmlweblogicmdb.GHXmlWeblogicMDBBean.onMessage(Unknown
Source)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:248)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:198)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1806)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:1765)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


Zach

unread,
Jan 5, 2002, 6:23:59 PM1/5/02
to
When using an MDB, the JMS connection factory settings for tranasction
timeout are not used. Those settings are used for transacted sessions.
The sessions created by the EJB container are not transacted, furthermore
they are XA which means the transacted setting is ignored. It is the EJB
container that starts the transaction and the EJB container that defines the
transaction timeout.

I don't know the incantation for the EJB descriptor to set the transaction
timeout. You should post in the EJB newsgroup (or maybe someone who does
know will post here).

_sjz.


"Franz Garsombke" <fgars...@ghx.com> wrote in message
news:3c376895$1...@newsgroups.bea.com...

Rob Woollen

unread,
Jan 5, 2002, 7:41:52 PM1/5/02
to
In your weblogic-ejb-jar.xml, add:

<transaction-descriptor>
<trans-timeout-seconds>600</trans-timeout-seconds>
</transaction-descriptor>

in the weblogic-enterprise-bean for your MDB.

-- Rob

Tom Barnes

unread,
Jan 7, 2002, 2:28:54 PM1/7/02
to Rob Woollen
For MDBs this value is ignored - unless its been fixed in the latest service pack

The final alternative is to change the server's default transaction timeout via
the console.

Adarsh Dattani

unread,
Jan 7, 2002, 8:27:15 PM1/7/02
to
Don't know if this is a long shot, but wouldn't this work as well in the
code ?
UserTransaction ut=TxHelper.getUserTransaction();
ut.setTransactionTimeout(n);
Adarsh


"Tom Barnes" <dev....@not.my.address.com> wrote in message
news:3C39F6F6...@not.my.address.com...

Adarsh Dattani

unread,
Jan 7, 2002, 8:28:58 PM1/7/02
to
Ofcourse, with the ut.begin() and ut.commit() / ut.rollback() following.

"Adarsh Dattani" <Adarsh_...@apl.com> wrote in message
news:3c3a4a8b$1...@newsgroups.bea.com...

Tom Barnes

unread,
Jan 8, 2002, 11:06:25 AM1/8/02
to Adarsh Dattani
Doesn't work in this case - the transaction is started by the container, not
the application, so the set would occur after the begin.

Adarsh Dattani

unread,
Jan 8, 2002, 12:21:50 PM1/8/02
to
oops ! Missed that part completely !!

"Tom Barnes" <dev....@not.my.address.com> wrote in message

news:3C3B1901...@not.my.address.com...

0 new messages