Forums
| Foreign JMS re-connection |
|
|
|
| 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.> 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.
Only registered users can write comments!
!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved." |


