Hi Ole, thanks for your explanation.

Here is what happens when i set:
  #jboss.xa.xidclass=oracle.jdbc.xa.OracleXid

So I have the next error... i am using PRE 2.1 and oracle 8.1.7

I have no error if the line is uncommented.

HTH

JMi
===================

[Default] JBoss PRE-2.1 Started in 0m:14s
[IdSectorBean] XAException: tx=XidImpl [FormatId=257, GlobalId=p_jmi//0, 
BranchQual=] errorCode=XAER_NOTA
[IdSectorBean] oracle.jdbc.xa.OracleXAException
[IdSectorBean]  at 
oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
[IdSectorBean]  at 
oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:285)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1136)
[IdSectorBean]  at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:504)
[IdSectorBean]  at 
org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:101)
[IdSectorBean]  at 
org.jboss.minerva.factories.XAConnectionFactory$2.closeConnection(XAConnectionFactory.java:101)
[IdSectorBean]  at 
org.jboss.minerva.factories.XAConnectionFactory$2.connectionClosed(XAConnectionFactory.java:86)
[IdSectorBean]  at 
oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:241)
[IdSectorBean]  at 
oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:215)
[IdSectorBean]  at 
oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:1955)
[IdSectorBean]  at 
oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:904)
[IdSectorBean]  at 
com.id.pyrites.ejb.IdSectorBean.ejbFindByDencod(IdSectorBean.java:287)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at 
org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:458)
[IdSectorBean]  at 
org.jboss.ejb.plugins.BMPPersistenceManager.findEntities(BMPPersistenceManager.java:221)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer.find(EntityContainer.java:392)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:639)
[IdSectorBean]  at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:160)
[IdSectorBean]  at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:87)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:135)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[IdSectorBean]  at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:119)
[IdSectorBean]  at 
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:316)
[IdSectorBean]  at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:347)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[IdSectorBean]  at java.security.AccessController.doPrivileged(Native 
Method)
[IdSectorBean]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown 
Source)
[IdSectorBean]  at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[IdSectorBean]  at java.lang.Thread.run(Unknown Source)
[IdSectorBean] XAException: tx=XidImpl [FormatId=257, GlobalId=p_jmi//0, 
BranchQual=] errorCode=XAER_NOTA
[IdSectorBean] oracle.jdbc.xa.OracleXAException
[IdSectorBean]  at 
oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
[IdSectorBean]  at 
oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:285)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1136)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1194)
[IdSectorBean]  at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:378)
[IdSectorBean]  at 
org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:89)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:307)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[IdSectorBean]  at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:119)
[IdSectorBean]  at 
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:316)
[IdSectorBean]  at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:347)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[IdSectorBean]  at java.security.AccessController.doPrivileged(Native 
Method)
[IdSectorBean]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown 
Source)
[IdSectorBean]  at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[IdSectorBean]  at java.lang.Thread.run(Unknown Source)
[IdSectorBean] == ejbActivate ==
[IdSectorBean] == ejbLoad ==
[IdSectorBean] == Finally clause of ejbLoad ==
[IdSectorBean] XAException: tx=XidImpl [FormatId=257, GlobalId=p_jmi//1, 
BranchQual=] errorCode=XAER_NOTA
[IdSectorBean] oracle.jdbc.xa.OracleXAException
[IdSectorBean]  at 
oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
[IdSectorBean]  at 
oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:285)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1136)
[IdSectorBean]  at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:504)
[IdSectorBean]  at 
org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:101)
[IdSectorBean]  at 
org.jboss.minerva.factories.XAConnectionFactory$2.closeConnection(XAConnectionFactory.java:101)
[IdSectorBean]  at 
org.jboss.minerva.factories.XAConnectionFactory$2.connectionClosed(XAConnectionFactory.java:86)
[IdSectorBean]  at 
oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:241)
[IdSectorBean]  at 
oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:215)
[IdSectorBean]  at 
oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:1955)
[IdSectorBean]  at 
oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:904)
[IdSectorBean]  at 
com.id.pyrites.ejb.IdSectorBean.ejbLoad(IdSectorBean.java:380)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at 
org.jboss.ejb.plugins.BMPPersistenceManager.loadEntity(BMPPersistenceManager.java:299)
[IdSectorBean]  at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:192)
[IdSectorBean]  at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:186)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[IdSectorBean]  at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:137)
[IdSectorBean]  at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:323)
[IdSectorBean]  at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:367)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[IdSectorBean]  at java.security.AccessController.doPrivileged(Native 
Method)
[IdSectorBean]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown 
Source)
[IdSectorBean]  at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[IdSectorBean]  at java.lang.Thread.run(Unknown Source)
[IdSectorBean] XAException: tx=XidImpl [FormatId=257, GlobalId=p_jmi//1, 
BranchQual=] errorCode=XAER_NOTA
[IdSectorBean] oracle.jdbc.xa.OracleXAException
[IdSectorBean]  at 
oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
[IdSectorBean]  at 
oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:285)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1136)
[IdSectorBean]  at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1194)
[IdSectorBean]  at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:378)
[IdSectorBean]  at 
org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:89)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:307)
[IdSectorBean]  at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[IdSectorBean]  at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:137)
[IdSectorBean]  at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[IdSectorBean]  at 
org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:323)
[IdSectorBean]  at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:367)
[IdSectorBean]  at java.lang.reflect.Method.invoke(Native Method)
[IdSectorBean]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[IdSectorBean]  at java.security.AccessController.doPrivileged(Native 
Method)
[IdSectorBean]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[IdSectorBean]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown 
Source)
[IdSectorBean]  at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[IdSectorBean]  at java.lang.Thread.run(Unknown Source)
...



----Original Message Follows----
From: Ole Husgaard <[EMAIL PROTECTED]>
Hi,

Jean-Michel DELSAUX wrote:
 >
 > Hi all,
 >
 > Config:
 > -------
 > Win 2000
 > jboss 2.1 of 01-31-2001
 >
 > 1) jboss.jcml: <attribute
 > 
name="DataSourceClass">oracle.jdbc.xa.client.OracleXADataSource</attribute>
 >    jboss.properties: jboss.xa.xidclass=oracle.jdbc.xa.OracleXid
 >
 > 2) jboss.jcml: <attribute
 > name="DataSourceClass">org.jboss.minerva.xa.XADataSourceImpl</attribute>
 >    jboss.properties: #jboss.xa.xidclass=oracle.jdbc.xa.OracleXid
 >
 > Result:
 > -------
 > I try both and it runs both for BMP.
 >
 > So what config does i have to use????

I would recommend the first one.

If you are using 8.1.7, you do should not have
to uncomment the jboss.xa.xidclass property, as
it was a workaround for a 8.1.6 incompatibility,
and only slows down 8.1.7.
If there is some reason why you *must* have this
with 8.1.7, I would be *very* interested to know.


 > I red that it was better to use the first config with new Oracle DB (from
 > 8.1.6)
 >
 > What are the differences?

Differences are seen in case of some failures:
The Minerva hack only does one-phase commit in
the DB connection, so the following scenario is
possible:
Bean1 uses datasource DS1, and bean2 uses DS2.
During the same transaction bean1 changes the
database on DS1, and bean2 changes the database
on DS2. After this, but before the transaction
is committed, the database server for DS2 goes
down. Now the transaction is committed. First
Minerva does the one-phase commit on DS1, this
works fine, and all changes on DS1 are committed.
Second, Minerva should do the one-phase commit
on DS2, but this server is down, so the
transaction should be rolled back. Unfortunately
it is too late, as the changes on DS1 have
already been committed.

This is an example of how the atomicity property
of ACID transactions can be broken: Part of the
transaction was committed, and part of it was
rolled back.
Depending on the application, this may be really
bad. Think about the above example as a money
transfer from one bank to another: The money are
withdrawn from one bank, but never deposited into
the second bank.
The two-phase commit protocol of the XA interface
fixes this problem.

Please note that there is no problem with using
Minerva to pool JDBC Standard Extension
datasources. But using the Minerva hack to make
old non-XA datasources look like JDBC StdExt.
datasources may cause problems like the above.

Hope this clarifies.


Best Regards,

Ole Husgaard.


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]


_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to