[teiid-issues] [JBoss JIRA] (TEIID-1919) Teiid exception when XA procedure uses two sources (defined in separate *-ds.xml files) that use different oracle accounts and point at the same oracle instance

Johnathon Lee (JIRA) jira-events at lists.jboss.org
Thu Feb 2 11:18:48 EST 2012


    [ https://issues.jboss.org/browse/TEIID-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12663790#comment-12663790 ] 

Johnathon Lee commented on TEIID-1919:
--------------------------------------

I'm feeling very thick headed here (not meaning to be).

1)  I've looked at TEIID-1921.  If the purpose of looking is to see that I don't get anything working without the fix,  then I understand and you can disregard the rest of this post while I back pedal to apply.  If not...

2)  My understanding is that by deploying the application in a different container,  I force the inability of the container hosting the xatest.vdb to not be able to use the calling thread.
    - On the JBoss install I've deployed xatest.vdb,  which utilizes xatest1-ds.xml[1] and xatest2-ds.xml[2]
    - On the JBoss2 install which hosts the xasimple.jsp,  I've defined the following xatestvdb-ds.xml[3].  The xatest.vdb is not deployed in the JBoss2 instance nor are xatest1-ds.xml or xatest2-ds.xml defined there.

    - When I run xasimple.jsp on JBoss2, I receive [4] on the .jsp and [5] snippet in the JBoss server.log

[1]
<datasources>
  <xa-datasource>
    <jndi-name>xatest1</jndi-name>
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    <xa-datasource-property name="URL">jdbc:oracle:thin:@<host>:<port>:ds08</xa-datasource-property>
    <xa-datasource-property name="User">xxxx</xa-datasource-property>
    <xa-datasource-property name="Password">xxxx</xa-datasource-property>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    
    <no-tx-separate-pools></no-tx-separate-pools>
    <track-connection-by-tx></track-connection-by-tx>
    <isSameRM-override-value>false</isSameRM-override-value>

    <metadata>
         <type-mapping>Oracle9i</type-mapping>
      </metadata>
  </xa-datasource>

</datasources>

[2]
<datasources>
  <xa-datasource>
    <jndi-name>xatest2</jndi-name>
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    <xa-datasource-property name="URL">jdbc:oracle:thin:@<host>:<port>:ds08</xa-datasource-property>
    <xa-datasource-property name="User">differentxxxx</xa-datasource-property>
    <xa-datasource-property name="Password">differentxxxx</xa-datasource-property>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <no-tx-separate-pools></no-tx-separate-pools>
    <track-connection-by-tx></track-connection-by-tx>
    <isSameRM-override-value>false</isSameRM-override-value>
    <metadata>
         <type-mapping>Oracle9i</type-mapping>
      </metadata>
  </xa-datasource>

</datasources>


[3]
<datasources>
   <xa-datasource>
      <jndi-name>xatestvdb</jndi-name>
      <xa-datasource-class>org.teiid.jdbc.TeiidDataSource</xa-datasource-class>
      <xa-datasource-property name="DatabaseName">xatest</xa-datasource-property>
      
      <xa-datasource-property name="serverName">localhost</xa-datasource-property> 
      <xa-datasource-property name="portNumber">31000</xa-datasource-property> 
      
      <xa-datasource-property name="user">xxxx</xa-datasource-property> 
      <xa-datasource-property name="password">xxxx</xa-datasource-property> 
      <xa-datasource-property name="AdditionalProperties">useCallingThread=false</xa-datasource-property>
      
      <no-tx-separate-pools></no-tx-separate-pools>
      <track-connection-by-tx></track-connection-by-tx>
      <isSameRM-override-value>false</isSameRM-override-value>
      <!-- pool and other JBoss datasource properties -->
      <min-pool-size>5</min-pool-size>
      <max-pool-size>10</max-pool-size>

      <metadata>
      	<type-mapping>jdbc</type-mapping>
      </metadata>
     
      <!-- pool and other JBoss datasource properties -->
      <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
 
  </xa-datasource>        
</datasources>

[4]
org.teiid.jdbc.TeiidSQLException: xatest2: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < jca-subordinate, BasicAction: 7f000001:b1fa:4f29af8a:9b63 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < jca-subordinate, BasicAction: 7f000001:b1fa:4f29af8a:9b63 status: ActionStatus.ABORT_ONLY >))

[5]
2012-02-02 10:13:38,578 INFO  [STDOUT] (Worker9_QueryProcessorQueue28) 
DRVR OPER OracleCallableStatement.sendBatch()
2012-02-02 10:13:38,707 WARN  [org.jboss.resource.connectionmanager.TxConnectionManager] (Worker9_QueryProcessorQueue28) Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener at 115fe475[state=NORMAL mc=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection at 611fa505 handles=0 lastUse=1328199218181 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool at 27f6cda0 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool at 3c35d7df xaResource=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection at 611fa505 txSync=null]
oracle.jdbc.xa.OracleXAException
	at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1223)
	at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:318)
	at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:213)
	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:799)
	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:510)
	at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.enlist(TxConnectionManager.java:985)
                
> Teiid exception when XA procedure uses two sources (defined in separate *-ds.xml files) that use different oracle accounts and point at the same oracle instance
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-1919
>                 URL: https://issues.jboss.org/browse/TEIID-1919
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 7.7
>         Environment: Using Oracle XA Datasources
>            Reporter: Johnathon Lee
>            Assignee: Steven Hawkins
>         Attachments: serverExample.log, xasimple.jsp, xatest.jsp
>
>
> Teiid exception when XA procedure uses two sources (defined in separate *-ds.xml files) that use different oracle accounts and point at the same oracle instance.
> See attached serverExample.log.  Error manifests @ 8243.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the teiid-issues mailing list