Home Oracle Weblogic Foreign JMS re-connection
Foreign JMS re-connection PDF Print E-mail
Written by Schelstraete Bart   
Tuesday, 12 January 2010 20:55

If you do see the following error

05-May-2004 11:53:16 o'clock BST> <Warning> <JTA> <BEA-110204> <XA resource http://weblogic.ejb20.JMSConnectionPoller.TopicListener returns XAER_RMFAIL and is unavailable.>
<05-May-2004 11:55:16 o'clock BST> <Error> <EJB> <BEA-010026> <Exception occurred during commit of transaction Name=JMSMessagePoller.TopicListener,Xid
=BEA1-0076600E042B7F28EDB9(26675601),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=120,seconds left=0,XAServerResour
ceInfohttp://weblogic.ejb20.JMSConnectionPoller.TopicListener=(ServerResourceInfohttp://weblogic.ejb20.JMSConnectionPoller.TopicListener=(state=ended,assigned=m
yserver),xar=weblogic.deployment.jms.WrappedXAResource_com_tibco_tibjms_TibjmsXAResource@f53870),SCInfomydomain+myserver=(state=pre-prepared),proper
ties=({weblogic.transaction.name=JMSMessagePoller.TopicListener}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserve
r+10.0.4.115:7001+mydomain+t3+, XAResources={JMS_FileStore, weblogic.ejb20.JMSConnectionPoller.TopicListener},NonXAResources={})],CoordinatorURL=myser
ver+10.0.4.115:7001+mydomain+t3+): javax.transaction.SystemException: Timeout during commit processing
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:278)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.JMSMessagePoller.processOneMessage(JMSMessagePoller.java:277)
at weblogic.ejb20.internal.JMSMessagePoller.pollContinuously(JMSMessagePoller.java:314)
at weblogic.ejb20.internal.JMSMessagePoller.execute(JMSMessagePoller.java:439)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

Then you might want to do the following fix:

 


Q. I get the following XAER_RMFAIL XAException when accessing an XAResource: "Internal error: XAResource '<name>' is unavailable". What does that mean? How should I handle it?

A. JTA has its own resource health monitoring that works as follows:

A resource is considered active either if there are no pending requests or if we get a result from any of the XAResource pending requests that is not an XAER_RMFAIL. If an XAResource is not active within the two minutes, it is declared dead. Any further requests to the XAResource are shunned, and an XAER_RMFAIL XAException as above is thrown. The intent is to prevent further loss of threads if the RM is dead.

A resource is declared active again, if you re-register the XAResource with the WebLogic Server Transaction Manager by calling weblogic.transaction.TransactionManager.unregisterResource followed by registerStaticResource or registerDynamicResource, or after a timeout period of 30 minutes. If you are using WLS JDBC connection pools, you only need to enable the JDBC connection pool refresh feature (by specifying the "RefreshMinutes" property of the connection pool), and, upon a successful connection pool refresh, the corresponding XAResource will be re-registered automatically. If you are registering your own XAResource, either via weblogic.transaction.TransactionManager.registerStaticResource or registerDynamicResource APIs, you will need to re-register the XAResource by calling weblogic.transaction.TransactionManager.unregisterResource followed by registerStaticResource or registerDynamicResource.

 


This 30 minute duration is determined by the value of MaxResourceUnavailableMillis, which is configurable via the config.xml file.

Changing the <JTA> stanza within my config.xml to be like this:

<JTA MaxResourceUnavailableMillis="180000" Name="mydomain" /> it now takes no longer than 3 minutes (plus at most 10 seconds because the check runs every 10 seconds) to reconnect to Tibco again.

Hope this helps.

Comments
Search
Only registered users can write comments!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

 

Login