Oracle XA data source
jeff Apr 26, 2002 7:59 PMI've configurated an oracle-xa-service.xml to use oracle.jdbc.xa.client.OracleXADataSource as the data source class, and launch JBOSS 3.0 RC1 without error. But when my CMP2.0 entity bean is deployed, JBOSS has problem creating the corresponding table on Oracle DB; the transaction is rolled back and the exception of "xaRes not enlisted" is raised.
Although there's no error at JBOSS start-up stage, I doubt if the Oracle XA connection setting is established properly. Is there any quick way to check the status and see detailed error msg for the JBOSS CMP managed JDBC connections? Also, does anybody have a working version of oracle-service.xml with XA data source?
Here's the excerpt of errors from my server.log, with the TRACE level msg turned on for package org.jboss.tm and org.jboss.ejb.plugins.cmp:
2002-04-26 15:53:39,284 TRACE [org.jboss.tm.TxManager] began tx: TransactionImpl:XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=]
2002-04-26 15:53:39,327 TRACE [org.jboss.tm.TxCapsule] enlistResource(): Entered, tx=XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=] status=STATUS_ACTIVE
2002-04-26 15:53:39,328 TRACE [org.jboss.tm.TxCapsule] startResource(OracleXid [FormatId=257, GlobalId=tiger//0, BranchQual=1]) entered: oracle.jdbc.xa.client.OracleXAResource@6ac7c8 flags=0
2002-04-26 15:53:39,517 TRACE [org.jboss.tm.TxCapsule] startResource(OracleXid [FormatId=257, GlobalId=tiger//0, BranchQual=1]) leaving: oracle.jdbc.xa.client.OracleXAResource@6ac7c8 flags=0
2002-04-26 15:53:39,522 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.Sequence] Executing SQL: CREATE TABLE MEXSEQUENCE (keyName VARCHAR2(255) NOT NULL, keyIndex NUMBER(10) NOT NULL, CONSTRAINT PK_MEXSEQUENCE PRIMARY KEY (keyName))
2002-04-26 15:53:39,568 TRACE [org.jboss.tm.TxCapsule] delistResource(): Entered, tx=XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=] status=STATUS_ACTIVE
2002-04-26 15:53:39,568 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.Sequence] Could not create table MEXSEQUENCE
2002-04-26 15:53:39,569 TRACE [org.jboss.tm.TxCapsule] rollback(): Entered, tx=XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=] status=STATUS_ACTIVE
2002-04-26 15:53:39,569 TRACE [org.jboss.tm.TxCapsule] endresources(0): state=1
2002-04-26 15:53:39,569 TRACE [org.jboss.tm.TxCapsule] endResource(OracleXid [FormatId=257, GlobalId=tiger//0, BranchQual=1]) entered: oracle.jdbc.xa.client.OracleXAResource@6ac7c8 flag=67108864
2002-04-26 15:53:39,578 TRACE [org.jboss.tm.TxCapsule] endResource(OracleXid [FormatId=257, GlobalId=tiger//0, BranchQual=1]) leaving: oracle.jdbc.xa.client.OracleXAResource@6ac7c8 flag=67108864
2002-04-26 15:53:39,587 TRACE [org.jboss.tm.TxManager] rolled back tx: TransactionImpl:XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=]
2002-04-26 15:53:39,587 TRACE [org.jboss.tm.TxManager] suspended tx: TransactionImpl:XidImpl [FormatId=257, GlobalId=tiger//0, BranchQual=]
2002-04-26 15:53:39,595 ERROR [org.jboss.ejb.EntityContainer] Exception in service lifecyle operation: start
org.jboss.deployment.DeploymentException: Error while creating table; - nested throwable is: java.lang.IllegalArgumentException: xaRes not enlisted
java.lang.IllegalArgumentException: xaRes not enlisted
at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:546)
at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:99)
at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284)
at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:329)
at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152)
at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:203)
at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:115)
at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:272)
at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:246)
at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2304)
at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1110)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCUtil.safeClose(JDBCUtil.java:58)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.createTable(JDBCStartCommand.java:174)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.execute(JDBCStartCommand.java:84)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java:384)
at org.jboss.ejb.plugins.CMPPersistenceManager.start(CMPPersistenceManager.java:198)
at org.jboss.ejb.EntityContainer.start(EntityContainer.java:376)
at org.jboss.ejb.Container.invoke(Container.java:794)
at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:492)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:867)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:341)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:492)
at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
at $Proxy15.start(Unknown Source)
at org.jboss.ejb.EjbModule.startService(EjbModule.java:429)
at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:162)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:492)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:867)
And Here is the JBOSS start-up messages related to my OracleXaDS setting in oracle-xa-service.xml:
2002-04-26 15:53:20,407 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss.jca:service=XaTxCM,name=OracleXaDS
2002-04-26 15:53:20,407 DEBUG [org.jboss.system.ServiceCreator] code: org.jboss.resource.connectionmanager.XATxConnectionManager
2002-04-26 15:53:20,411 DEBUG [org.jboss.system.ServiceCreator] Created bean: jboss.jca:service=XaTxCM,name=OracleXaDS
2002-04-26 15:53:20,411 DEBUG [org.jboss.system.ServiceController] recording that jboss.jca:service=XaTxCM,name=OracleXaDS depends on jboss.jca:service=RARDeployer
2002-04-26 15:53:20,411 DEBUG [org.jboss.system.ServiceConfigurator] considering with object name jboss.jca:service=RARDeployer
2002-04-26 15:53:20,417 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,417 DEBUG [org.jboss.system.ServiceCreator] code: org.jboss.resource.connectionmanager.RARDeployment
2002-04-26 15:53:20,422 DEBUG [org.jboss.system.ServiceCreator] Created bean: jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,423 DEBUG [org.jboss.system.ServiceController] recording that jboss.jca:service=XaTxDS,name=OracleXaDS depends on jboss.jca:service=RARDeployment,name=Minerva
JDBC XATransaction ResourceAdapter
2002-04-26 15:53:20,423 DEBUG [org.jboss.system.ServiceConfigurator] considering OldRarDeployment with object name jboss.jca:service=RARDeployment,name=Minerva JDBC XATransaction
ResourceAdapter
2002-04-26 15:53:20,424 DEBUG [org.jboss.system.ServiceConfigurator] ManagedConnectionFactoryProperties set to
<config-property>
<config-property-name>XADataSourceClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>oracle.jdbc.xa.client.OracleXADataSource</config-property-value>
</config-property>
<config-property>
<config-property-name>XADataSourceProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>URL=jdbc:oracle:thin:@localhost:1521:YOSEMITE;user=scott;pasword=tiger</config-property-value>
</config-property>
<config-property>
<config-property-name>TransactionIsolation</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>TRANSACTION_READ_COMMITTED</config-property-value>
</config-property>
in jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,545 DEBUG [org.jboss.system.ServiceConfigurator] JndiName set to OracleXaDS in jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,545 DEBUG [org.jboss.system.ServiceController] recording that jboss.jca:service=XaTxCM,name=OracleXaDS depends on jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,546 DEBUG [org.jboss.system.ServiceConfigurator] considering ManagedConnectionFactoryName with object name jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,546 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,546 DEBUG [org.jboss.system.ServiceCreator] code: org.jboss.resource.connectionmanager.JBossManagedConnectionPool
2002-04-26 15:53:20,549 DEBUG [org.jboss.system.ServiceCreator] Created bean: jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,550 DEBUG [org.jboss.system.ServiceConfigurator] MinSize set to 0 in jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,550 DEBUG [org.jboss.system.ServiceConfigurator] MaxSize set to 50 in jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,550 DEBUG [org.jboss.system.ServiceConfigurator] BlockingTimeoutMillis set to 5000 in jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,550 DEBUG [org.jboss.system.ServiceConfigurator] IdleTimeoutMinutes set to 15 in jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,666 DEBUG [org.jboss.system.ServiceConfigurator] Criteria set to ByContainer in jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,666 DEBUG [org.jboss.system.ServiceController] recording that jboss.jca:service=XaTxCM,name=OracleXaDS depends on jboss.jca:service=LocalTxPool,name=OracleXaDS2002-04-26 15:53:20,667 DEBUG [org.jboss.system.ServiceConfigurator] considering ManagedConnectionPool with object name jboss.jca:service=LocalTxPool,name=OracleXaDS
2002-04-26 15:53:20,667 DEBUG [org.jboss.system.ServiceController] recording that jboss.jca:service=XaTxCM,name=OracleXaDS depends on jboss.jca:service=CachedConnectionManager
2002-04-26 15:53:20,667 DEBUG [org.jboss.system.ServiceConfigurator] considering CachedConnectionManager with object name jboss.jca:service=CachedConnectionManager
2002-04-26 15:53:20,777 DEBUG [org.jboss.system.ServiceConfigurator] SecurityDomainJndiName set to java:/jaas/OracleXaDbRealm in jboss.jca:service=XaTxCM,name=OracleXaDS
2002-04-26 15:53:20,891 DEBUG [org.jboss.system.ServiceConfigurator] TransactionManager set to java:/TransactionManager in jboss.jca:service=XaTxCM,name=OracleXaDS
2002-04-26 15:53:20,892 DEBUG [org.jboss.system.ServiceController] waiting in create jboss.jca:service=XaTxCM,name=OracleXaDS waiting on jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,892 WARN [org.jboss.system.ServiceController] jboss.jca:service=XaTxDS,name=OracleXaDS does not implement any Service methods
2002-04-26 15:53:20,894 DEBUG [org.jboss.system.ServiceController] waiting in create jboss.jca:service=XaTxDS,name=OracleXaDS waiting on jboss.jca:service=RARDeployment,name=Minerva JDBC XATransaction ResourceAdapter
2002-04-26 15:53:20,894 INFO [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Creating
2002-04-26 15:53:20,895 INFO [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Created
2002-04-26 15:53:20,896 DEBUG [org.jboss.system.ServiceController] waiting in create jboss.jca:service=XaTxCM,name=OracleXaDS waiting on jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,896 DEBUG [org.jboss.deployment.MainDeployer] Done with create step of deploying oracle-xa-service.xml
2002-04-26 15:53:20,896 DEBUG [org.jboss.deployment.MainDeployer] start step for deployment file:/home/jchang/jboss/jboss-3.0.0RC1/server/default/deploy/oracle-xa-service.xml
2002-04-26 15:53:20,896 DEBUG [org.jboss.deployment.SARDeployer] Deploying SAR, start step: url file:/home/jchang/jboss/jboss-3.0.0RC1/server/default/deploy/oracle-xa-service.xml
2002-04-26 15:53:20,896 DEBUG [org.jboss.system.ServiceController] waiting in start jboss.jca:service=XaTxCM,name=OracleXaDS on jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,897 DEBUG [org.jboss.system.ServiceController] waiting in start jboss.jca:service=XaTxDS,name=OracleXaDS on jboss.jca:service=RARDeployment,name=Minerva JDBC XATransaction ResourceAdapter
2002-04-26 15:53:20,897 INFO [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Starting
2002-04-26 15:53:20,898 INFO [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Started
2002-04-26 15:53:20,899 DEBUG [org.jboss.system.ServiceController] waiting in start jboss.jca:service=XaTxCM,name=OracleXaDS on jboss.jca:service=XaTxDS,name=OracleXaDS
2002-04-26 15:53:20,899 DEBUG [org.jboss.deployment.MainDeployer] Final (start) deployment step successfully completed on package: oracle-xa-service.xml
2002-04-26 15:53:20,899 INFO [org.jboss.deployment.MainDeployer] Successfully completed deployment of package: file:/home/jchang/jboss/jboss-3.0.0RC1/server/default/deploy/oracle-xa-service.xml
2002-04-26 15:53:20,900 DEBUG [org.jboss.deployment.scanner.URLDeploymentScanner] Watch URL for: file:/home/jchang/jboss/jboss-3.0.0RC1/server/default/deploy/oracle-xa-service.xml -> file:/home/jchang/jboss/jboss-3.0.0RC1/server/default/deploy/oracle-xa-service.xml
The property configuration part of my oracle-xa-service.xml file is shown above in the log dump. I can supply the whole file content if needed. Right now I'm not sure why the CMP table cration operation fails (the CMP-generated SQL statements can be run w/o problem), and whether the XA connection is working or not. Any help is appreciated. Thanks,
--- Jeff