-
1. Re: Could not find new XAResource to use for recovering non-
chtimi2 Mar 30, 2009 7:18 AM (in response to chtimi2)No ideas?
-
2. Re: Could not find new XAResource to use for recovering non-
gaohoward Mar 30, 2009 11:13 PM (in response to chtimi2)hi, i'm sorry can you put here the link you are refering the warning to? Thanks.
-
3. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 1, 2009 3:36 AM (in response to chtimi2)Here is the complete warning:
WARN [loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-serializable XAResource < 131075, 28, 26, 1-7f000101:df6e:496776d2:5977f000101:df6e:496776d2:5a4 >
-
4. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 1, 2009 8:28 AM (in response to chtimi2)On second thought I'm not sure that was what you were asking..
-
5. Re: Could not find new XAResource to use for recovering non-
gaohoward Apr 1, 2009 9:39 AM (in response to chtimi2)Hi, actually I'm asking for the link to your original post so I can take a look of the history of this topic. Anyway, don't mind it much, as I can search it myself. Thanks
-
6. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 1, 2009 11:28 AM (in response to chtimi2)Ah that was what you meant. It wasn't my thread, but browsing the wiki and forum it seemed to be a recurring theme.
Anyway this links has an explanation that seems convincing to me, but it didn't work (even with one node):
http://www.jboss.org/community/docs/DOC-13171#comment-1301 -
7. Re: Could not find new XAResource to use for recovering non-
clebert.suconic Apr 1, 2009 4:45 PM (in response to chtimi2)Maybe you missed some property there?
I was looking on how this is configured on EAP, and this is what we have there:<properties depends="arjuna" name="jta">^M <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1"^M value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> <!-- Support subtransactions in the JTA layer? Default is NO. --> <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/> <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple --> <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple --> </properties>
Also.. make sure you have DefaultJMSProvider at your jms-ds.xml. -
8. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 2, 2009 4:18 AM (in response to chtimi2)I already have these parameters, here is my jbossjta-properties.xml:
<?xml version="1.0" encoding="UTF-8"?> <transaction-service> <properties depends="common" name="arjuna"> <!-- Transaction Reaper Timeout (default is 120000 ms). --> <property name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="120000"/> <!-- Transaction Reaper Mode, can be: NORMAL or DYNAMIC (default is NORMAL). --> <property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/> <!-- (default is NO) --> <property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/> <!-- (default is NO) --> <property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/> <!-- (default is YES) --> <property name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/> <!-- (default is defaultStore) --> <property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/> <!-- default is under user.home - must be writeable!) --> <property name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/> <!-- (default is ON) --> <property name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/> <!-- (default is ShadowNoFileLockStore) --> <property name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/> <!-- (default is 255) --> <property name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/> <!-- (default is ON) --> <property name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/> <!-- (Must be unique across all Arjuna instances.) --> <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/> <!-- property name="com.arjuna.ats.arjuna.coordinator.actionStore" value="HashedActionStore" value="JDBCActionStore" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess" value="JDBCAccess" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore" value="JDBCStore" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess" value="JDBCAccess" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial" value="1" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum" value="1" --> <!-- property name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections" value="false" --> <!-- property name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size" value="" --> <!-- property name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period" value="" --> <!-- The location for creating temporary files, e.g., Uids. Default is under user.home. IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix may not be! --> <!-- <property name="com.arjuna.ats.arjuna.common.varDir" value="var"/> --> </properties> <properties name="common"> <!-- CLF 2.0 properties --> <property name="com.arjuna.common.util.logging.DebugLevel" type="System" value="0x00000000"/> <property name="com.arjuna.common.util.logging.FacilityLevel" type="System" value="0xffffffff"/> <property name="com.arjuna.common.util.logging.VisibilityLevel" type="System" value="0xffffffff"/> <property name="com.arjuna.common.util.logger" type="System" value="log4j"/> </properties> <properties depends="arjuna" name="txoj"> <!-- (default is LockStore of installation - must be writeable!) --> <!-- <property name="com.arjuna.ats.txoj.lockstore.lockStoreDir" value="LockStore"/> --> <!-- (default is BasicLockStore) --> <property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/> <!-- (default is NO) --> <property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/> <!-- (default is YES) --> <property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/> <!-- (default is YES) --> <property name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/> </properties> <properties depends="arjuna" name="jta"> <!-- Support subtransactions in the JTA layer? Default is NO. --> <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/> <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple --> <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple --> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> </properties> <properties depends="arjuna,txoj,jta" name="recoverymanager"> <!-- Properties used only by the RecoveryManager. --> <!-- Periodic recovery settings. Time values in this section are in seconds. --> <!-- Interval in seconds between initiating the periodic recovery modules. Default is 120 seconds. --> <property name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="120"/> <!-- Interval in seconds between first and second pass of periodic recovery. Default is 10 seconds. --> <property name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="10"/> <!-- Periodic recovery modules to use. Invoked in sort-order of names. --> <property name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/> <property name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/> <property name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/> <!-- Expired entry removal --> <!-- Expiry scanners to use (order of invocation is random). Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner" --> <property name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/> <!-- Interval, in hours, between running the expiry scanners. This can be quite long. The absolute value determines the interval - if the value is negative, the scan will NOT be run until after one interval has elapsed. If positive the first scan will be immediately after startup. Zero will prevent any scanning. Default = 12 = run immediately, then every 12 hours. --> <property name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/> <!-- Age, in hours, for removal of transaction status manager item. This should be longer than any ts-using process will remain running. Zero = Never removed. Default is 12. --> <property name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/> <!-- Use this to fix the port on which the TransactionStatusManager listens, The default behaviour is to use any free port. --> <property name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/> </properties> <properties depends="jta" name="jdbc"> <!-- property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/> --> </properties> </transaction-service>
And my hajndi-jms-ds.xml does define DefaultJMSProvider:<?xml version="1.0" encoding="UTF-8"?> <connection-factories> <!-- ==================================================================== --> <!-- JMS Stuff --> <!-- ==================================================================== --> <!-- The JMS provider loader --> <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="jboss.messaging:service=JMSProviderLoader,name=HAJNDIJMSProvider"> <attribute name="ProviderName">DefaultJMSProvider</attribute> <attribute name="ProviderAdapterClass"> org.jboss.jms.jndi.JNDIProviderAdapter </attribute> <!-- The combined connection factory --> <attribute name="FactoryRef">XAConnectionFactory</attribute> <!-- The queue connection factory --> <attribute name="QueueFactoryRef">XAConnectionFactory</attribute> <!-- The topic factory --> <attribute name="TopicFactoryRef">XAConnectionFactory</attribute> <!-- Access JMS via HAJNDI --> <attribute name="Properties"> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=${jboss.bind.address:127.0.0.1}:1100 jnp.disableDiscovery=false jnp.partitionName=${jboss.partition.name:DefaultPartition} jnp.discoveryGroup=${jboss.partition.udpGroup:230.0.0.4} jnp.discoveryPort=1102 jnp.discoveryTTL=16 jnp.discoveryTimeout=5000 jnp.maxRetries=1 </attribute> </mbean> <!-- The server session pool for Message Driven Beans --> <mbean code="org.jboss.jms.asf.ServerSessionPoolLoader" name="jboss.messaging:service=ServerSessionPoolMBean,name=StdJMSPool"> <depends optional-attribute-name="XidFactory">jboss:service=XidFactory</depends> <attribute name="PoolName">StdJMSPool</attribute> <attribute name="PoolFactoryClass"> org.jboss.jms.asf.StdServerSessionPoolFactory </attribute> </mbean> <!-- JMS XA Resource adapter, use this to get transacted JMS in beans --> <tx-connection-factory> <jndi-name>JmsXA</jndi-name> <xa-transaction/> <rar-name>jms-ra.rar</rar-name> <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition> <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property> <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property> <max-pool-size>20</max-pool-size> <security-domain-and-application>JmsXARealm</security-domain-and-application> <!-- <use-java-context>false</use-java-context>--> </tx-connection-factory> </connection-factories>
-
9. Re: Could not find new XAResource to use for recovering non-
clebert.suconic Apr 3, 2009 10:41 AM (in response to chtimi2)I'm really not sure if this should matter, but the only difference from your file and the one on EAP (found this using kompare) is the order on where you described JBM. On the EAP it is the first item on the properties.
*Maybe* Arjuna is recovering the XIDs from the file-storage before JBM had a chance to recover them?... <properties depends="arjuna" name="jta"> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> <!-- Support subtransactions in the JTA layer? Default is NO. --> <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/> <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple --> <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/> <!-- com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple --> </properties> ...
If that's not the issue, you will need to look for other errors on the log and see if there is any other warnings. -
10. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 7, 2009 5:35 AM (in response to chtimi2)I have tried changing the order, it doesn't change anything.
I have no errors in the log files, and the only other warning is2009-04-07 11:16:13,480 WARN [com.arjuna.ats.jbossatx.jta.TransactionManagerService] XAExceptionFormatters are not supported by the JBossTS Transaction Service - this warning can safely be ignored
I have absolutely no clue what to do about it but it doesn't sound healthy. -
11. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 7, 2009 5:38 AM (in response to chtimi2)In case my last sentece was confusing I meant what sounds unhealthy isn't the " XAExceptionFor
matters are not supported by the JBossTS Transaction Service - this warning can safely be ignored" but the fact that some unknown stuff failed to be serialized. -
12. Re: Could not find new XAResource to use for recovering non-
clebert.suconic Apr 7, 2009 6:03 PM (in response to chtimi2)Did you try removing your temp-directories and data-directories after changing the configs?
Let me know and I will do some testing after your input. -
13. Re: Could not find new XAResource to use for recovering non-
chtimi2 Apr 8, 2009 5:16 AM (in response to chtimi2)I have tried removing the following directories of my all server:
temp,work,data.
It worked! I no longer have the periodic warning.
Maybe the data directory contained old transaction data that couldn't be recovered because the list and definitions of destinations has changed. Thanks for your help. -
14. Re: Could not find new XAResource to use for recovering non-
clebert.suconic Apr 8, 2009 11:09 AM (in response to chtimi2)Maybe the order wouldn't have affected you.
But I would leave that alone just in case :-)