• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
  • Mikalai Zaikin

Websphere connecting with Oracle9i-Problem in setting transaction attributes of MDB

Posts: 14
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have an MDB that is listening JMS Messages.I set the transcation attribute of MDB onMessage() method in the deployment desriptor "Required".
It is giving me this error in the SystemOut.log file.
[12/10/03 14:12:48:392 CST] 66d20958 ExceptionUtil E CNTR0020E: Non-application exception occurred while processing method "onMessage" on bean "BeanId(QEL#qel-1.0.0.jar#EQLMDB, null)". Exception data: java.lang.reflect.InvocationTargetException: java.lang.NoSuchMethodError: oracle.jdbc.xa.OracleXAException: method getXAErrorMessage(I)Ljava/lang/String; not found
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.getXAExceptionContents(OracleDataStoreHelper.java:733)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.traceXAException(WSRdbXaResourceImpl.java:871)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:827)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1405)
at com.ibm.ejs.jts.jta.WSResourceImplBase.start(WSResourceImplBase.java:164)
at com.ibm.ejs.jts.jta.TransactionImpl.enlistResource(TransactionImpl.java:730)
at com.ibm.ejs.jts.jta.JTSXA.enlist(JTSXA.java:998)
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:740)
at com.ibm.ejs.j2c.ConnectionEventListener.interactionPending(ConnectionEventListener.java:743)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processInteractionPendingEvent(WSRdbManagedConnectionImpl.java:1299)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:328)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement(WSJdbcConnection.java:697)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement(WSJdbcConnection.java:673)
at com.sbc.eql.dao.EQLDAO.getErrorDetail(EQLDAO.java:39)
at com.sbc.eql.util.EQLParser.log(EQLParser.java:99)
at com.sbc.eql.ejb.EQLMDBBean.onMessage(EQLMDBBean.java:49)
at com.ibm.ejs.jms.listener.MDBWrapper$PriviledgedOnMessage.run(MDBWrapper.java:205)
at java.security.AccessController.doPrivileged(Native Method)
at com.ibm.ejs.jms.listener.MDBWrapper.callOnMessage(MDBWrapper.java:194)
at com.ibm.ejs.jms.listener.MDBWrapper.onMessage(MDBWrapper.java:172)
at com.ibm.mq.jms.MQSession.run(MQSession.java(Compiled Code))
at com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:922)
at com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSession.java:697)
at com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:482)
at com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:449)
at java.lang.reflect.Method.invoke(Native Method)
at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:37)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:91)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Ranch Hand
Posts: 1551
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well I'm just shooting in the dark, but sometimes the vendors have two sets of drivers. One for XA data sources and another for non XA data sources. Your application appears to be looking for an XA.
Are you doing distributed transactions?
Jimmy Kennedy
Posts: 14
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am not using distributed transactions.Well my problem is solved.
I am using local transactions .I set transaction attribute of onMessage() method as NotSupported and add foloowing entries in ibm-ejb-jar-ext.xmi
<structure xmi:id="BeanStructure_1" inheritenceRoot="false"/>
<localTransaction xmi:id="LocalTransaction_1" resolver="ContainerAtBoundary" unresolvedAction="Rollback"/>
as I read from the link above.
Posts: 3892
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There's a reason I didn't lead you down that path. When you use local transactions in this way the receipt of the Message by the MDB and the Oracle transaction are NOT tied together. Thus, if you experience an Oracle error and that transaction rolls back, the message is gone, kaput, not reprocessed. If you use XA transactions the two are automatically tied together.
    Bookmark Topic Watch Topic
  • New Topic