I am using WebSphere 3.5.4 and need to implement two phase commit over MQ Series and Oracle DB. I am using MQ Series 5.2 Server and Oracle 9i.
The Database and MQ Series reside on seperate boxes. WebSphere and MQ Series reside on same box. I am using Oracle provided thin Type 4
JDBC Driver (9.0.1 shipped with Oracle 9i) with JTA Enabled parameter as True. I am using latest version of MA88 Support Pac for JMS/JTA.
I have an
EJB which makes a JMS call and writes a message on Queue using (WebSphere Queue Connection Factory)
and another EJB to insert a record in DB. (Auto Commit false)
Bean Transaction Attributes for both EJBs (TX_REQUIRED) ,
Using Declarative Transaction. The DB EJB invokes the JMS EJB in a transaction.
I am able to commit and rollback from both MQ and Oracle in a Transactional mode but, whenever I start up the Application Server I get an error
JTSXA W Can not create XAResource object
[02.10.15 15:00:15:039 GMT+05:30] cf8c2691 OraJTAXAResou W Encountered an error while creating XA connection and XA resource java.sql.SQLException: No suitable driver
at java.sql.SQLException.<init>(SQLException.java:66)
at java.sql.DriverManager.getConnection(DriverManager.java:479)
at java.sql.DriverManager.getConnection(DriverManager.java:139)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:116)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:107)
at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:211)
at com.ibm.ejs.jts.jta.factory.OraJTAXAResourceFactory.getXAResource(OraJTAXAResourceFactory.java:71)
at com.ibm.ejs.jts.jta.JTSXA.recover(JTSXA.java(Compiled Code))
at com.ibm.ejs.jts.jta.recovery.XARecoveryManager.xaRestartRecovery(XARecoveryManager.java:225)
at com.ibm.ejs.jts.jta.recovery.XARecoveryManager.duringRestart(XARecoveryManager.java:210)
at com.ibm.ejs.jts.tran.Tran.ready(Tran.java:193)
at com.ibm.ejs.jts.jts.CurrentSet.ready(CurrentSet.java:159)
at com.ibm.ejs.jts.jts.Jts.ready(Jts.java:132)
at com.ibm.ejs.sm.server.ManagedServer.initializeTran(ManagedServer.java:937)
at com.ibm.ejs.sm.server.ManagedServer.initializeRuntime(ManagedServer.java:574)
at com.ibm.ejs.sm.server.ManagedServer.main(ManagedServer.java:140)
I am not able to determine
1) Why do I get the above error? Is WebSphere using a different JDBC2.0/JTA Specification due to which it finds the Oracle Driver incompatible.
2) Is WebSphere in above scenario supporing the XA Transactions with JTA enabled Oracle Thin Driver?
I would really appreciate if someone could help me out.