XA Transactions and Foreign JMS Provider - Weblogic

This is a discussion on XA Transactions and Foreign JMS Provider - Weblogic ; Env Detail:- WL 8.1 SP2 Foreing JMS Provider :- Tibco E4JMS 3.1.2 MDB deployed on one part of the cluster - All it does is print the message id . It uses container managed transaction ( XA as it is ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: XA Transactions and Foreign JMS Provider

  1. XA Transactions and Foreign JMS Provider


    Env Detail:-

    WL 8.1 SP2

    Foreing JMS Provider :- Tibco E4JMS 3.1.2

    MDB deployed on one part of the cluster - All it does is print the message id
    . It uses container managed transaction ( XA as it is using a Foreign JMS provider's
    XA Topic connection factory) and durable subscription to the topic

    Problem:-

    When I deploy the MDB and publish data on the destination every thing is fine
    and MDB is receiving messages.

    The following situation seems to get the MDB into some kind of weird state :-

    Undeploy the MDB, publish about 20000 messages, deploy the MDB, after receiving
    around 2,0000 messages kill the foreign JMS server with a kill -9 and bring it
    back up . After this the MDB never seems to receive any messages - By looking
    at Foreign JMS Server logs, it looks WL is connecting/disconnecting.

    This is what is in the managed server's std out.

    The exception is : javax.jms.JMSException: [J2EE:160049]An error occurred while
    registering the JMS connection with JTA: javax.transaction.SystemException: start()
    failed on resource 'weblogic.ejb20.JMSConnectionPoller.TopicListener' : XAER_RMFAIL
    : Resource manager is unavailable
    javax.transaction.xa.XAException: Internal error: XAResource 'weblogic.ejb20.JMSConnectionPoller.TopicListener'
    is unavailable
    at weblogic.transaction.internal.XAResourceDescriptor .checkResource()V(XAResourceDescriptor.java:1021)
    at weblogic.transaction.internal.XAResourceDescriptor .startResourceUse(Lweblogic.transaction.internal.T ransactionImpl;Ljava.lang.StringLjavax.transaction.xa.XAResource;(XAResourceDescri ptor.java:574)
    at weblogic.transaction.internal.XAServerResourceInfo .start(Lweblogic.transaction.internal.ServerTransa ctionImpl;Ljavax.transaction.xa.Xid;I)V(XAServerRe sourceInfo.java:1074)
    at weblogic.transaction.internal.XAServerResourceInfo .xaStart(Lweblogic.transaction.internal.ServerTran sactionImpl;I)V(XAServerResourceInfo.java:1007)
    at weblogic.transaction.internal.XAServerResourceInfo .enlist(Lweblogic.transaction.internal.ServerTrans actionImplZ(XAServerResourceInfo.java:203)
    at weblogic.transaction.internal.ServerTransactionImp l.enlistResource(Ljavax.transaction.xa.XAResourceZ(ServerTransactionImpl.java:419)
    at weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInExistingTransaction(Lweblogic.transactio n.TransactionV(WrappedTransactionalSession.java:152)
    at weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInTransaction()V(WrappedTransactionalSessi on.java:190)
    at weblogic.deployment.jms.WrappedMessageConsumer.rec eive(J)Ljavax.jms.Message;(WrappedMessageConsumer. java:188)
    at weblogic.ejb20.internal.JMSMessagePoller.processOn eMessage(Z)Z(JMSMessagePoller.java:261)
    at weblogic.ejb20.internal.JMSMessagePoller.pollConti nuously()V(JMSMessagePoller.java:314)
    at weblogic.ejb20.internal.JMSMessagePoller.execute(L weblogic.kernel.ExecuteThreadV(JMSMessagePoller.java:439)
    at weblogic.kernel.ExecuteThread.execute(Lweblogic.ke rnel.ExecuteRequestV(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run()V(ExecuteThread .java:170)
    at java.lang.Thread.startThreadFromVM(Ljava.lang.Thre adV(Unknown Source)

    at weblogic.deployment.jms.JMSExceptions.getJMSExcept ion(Lweblogic.logging.Loggable;Ljava.lang.Exceptio nLjavax.jms.JMSException;(JMSExceptions.java:29)
    at weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInTransaction()V(WrappedTransactionalSessi on.java:203)
    at weblogic.deployment.jms.WrappedMessageConsumer.rec eive(J)Ljavax.jms.Message;(WrappedMessageConsumer. java:188)
    at weblogic.ejb20.internal.JMSMessagePoller.processOn eMessage(Z)Z(JMSMessagePoller.java:261)
    at weblogic.ejb20.internal.JMSMessagePoller.pollConti nuously()V(JMSMessagePoller.java:314)
    at weblogic.ejb20.internal.JMSMessagePoller.execute(L weblogic.kernel.ExecuteThreadV(JMSMessagePoller.java:439)
    at weblogic.kernel.ExecuteThread.execute(Lweblogic.ke rnel.ExecuteRequestV(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run()V(ExecuteThread .java:170)
    at java.lang.Thread.startThreadFromVM(Ljava.lang.Thre adV(Unknown Source)

    Any idea what is going on?

  2. Re: XA Transactions and Foreign JMS Provider

    Yes, WLS is reconnecting to Tibco, but it's getting an XA error from Tibco.
    You should contact BEA support about this. They have been working on similar
    situations with MQ, and they may have some patches that could help.

    greg

    "L Muralidharan" wrote in message
    news:4033b159$1@newsgroups.bea.com...
    >
    > Env Detail:-
    >
    > WL 8.1 SP2
    >
    > Foreing JMS Provider :- Tibco E4JMS 3.1.2
    >
    > MDB deployed on one part of the cluster - All it does is print the message

    id
    > It uses container managed transaction ( XA as it is using a Foreign JMS

    provider's
    > XA Topic connection factory) and durable subscription to the topic
    >
    > Problem:-
    >
    > When I deploy the MDB and publish data on the destination every thing is

    fine
    > and MDB is receiving messages.
    >
    > The following situation seems to get the MDB into some kind of weird state

    :-
    >
    > Undeploy the MDB, publish about 20000 messages, deploy the MDB, after

    receiving
    > around 2,0000 messages kill the foreign JMS server with a kill -9 and

    bring it
    > back up . After this the MDB never seems to receive any messages - By

    looking
    > at Foreign JMS Server logs, it looks WL is connecting/disconnecting.
    >
    > This is what is in the managed server's std out.
    >
    > The exception is : javax.jms.JMSException: [J2EE:160049]An error occurred

    while
    > registering the JMS connection with JTA:

    javax.transaction.SystemException: start()
    > failed on resource 'weblogic.ejb20.JMSConnectionPoller.TopicListener' :

    XAER_RMFAIL
    > : Resource manager is unavailable
    > javax.transaction.xa.XAException: Internal error: XAResource

    'weblogic.ejb20.JMSConnectionPoller.TopicListener'
    > is unavailable
    > at

    weblogic.transaction.internal.XAResourceDescriptor .checkResource()V(XAResour
    ceDescriptor.java:1021)
    > at

    weblogic.transaction.internal.XAResourceDescriptor .startResourceUse(Lweblogi
    c.transaction.internal.TransactionImpl;Ljava.lang. StringLjavax.transaction
    ..xa.XAResource;(XAResourceDescriptor.java:574)
    > at

    weblogic.transaction.internal.XAServerResourceInfo .start(Lweblogic.transacti
    on.internal.ServerTransactionImpl;Ljavax.transacti on.xa.Xid;I)V(XAServerReso
    urceInfo.java:1074)
    > at

    weblogic.transaction.internal.XAServerResourceInfo .xaStart(Lweblogic.transac
    tion.internal.ServerTransactionImpl;I)V(XAServerRe sourceInfo.java:1007)
    > at

    weblogic.transaction.internal.XAServerResourceInfo .enlist(Lweblogic.transact
    ion.internal.ServerTransactionImplZ(XAServerResourceInfo.java:203)
    > at

    weblogic.transaction.internal.ServerTransactionImp l.enlistResource(Ljavax.tr
    ansaction.xa.XAResourceZ(ServerTransactionImpl.java:419)
    > at

    weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInExistingTransact
    ion(Lweblogic.transaction.TransactionV(WrappedTransactionalSession.java:15
    2)
    > at

    weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInTransaction()V(W
    rappedTransactionalSession.java:190)
    > at

    weblogic.deployment.jms.WrappedMessageConsumer.rec eive(J)Ljavax.jms.Message;
    (WrappedMessageConsumer.java:188)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.processOn eMessage(Z)Z(JMSMessagePol
    ler.java:261)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.pollConti nuously()V(JMSMessagePolle
    r.java:314)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.execute(L weblogic.kernel.ExecuteThr
    eadV(JMSMessagePoller.java:439)
    > at

    weblogic.kernel.ExecuteThread.execute(Lweblogic.ke rnel.ExecuteRequestV(Exe
    cuteThread.java:197)
    > at weblogic.kernel.ExecuteThread.run()V(ExecuteThread .java:170)
    > at java.lang.Thread.startThreadFromVM(Ljava.lang.Thre adV(Unknown Source)
    >
    > at

    weblogic.deployment.jms.JMSExceptions.getJMSExcept ion(Lweblogic.logging.Logg
    able;Ljava.lang.ExceptionLjavax.jms.JMSException;(JMSExceptions.java:29)
    > at

    weblogic.deployment.jms.WrappedTransactionalSessio n.enlistInTransaction()V(W
    rappedTransactionalSession.java:203)
    > at

    weblogic.deployment.jms.WrappedMessageConsumer.rec eive(J)Ljavax.jms.Message;
    (WrappedMessageConsumer.java:188)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.processOn eMessage(Z)Z(JMSMessagePol
    ler.java:261)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.pollConti nuously()V(JMSMessagePolle
    r.java:314)
    > at

    weblogic.ejb20.internal.JMSMessagePoller.execute(L weblogic.kernel.ExecuteThr
    eadV(JMSMessagePoller.java:439)
    > at

    weblogic.kernel.ExecuteThread.execute(Lweblogic.ke rnel.ExecuteRequestV(Exe
    cuteThread.java:197)
    > at weblogic.kernel.ExecuteThread.run()V(ExecuteThread .java:170)
    > at java.lang.Thread.startThreadFromVM(Ljava.lang.Thre adV(Unknown Source)
    >
    > Any idea what is going on?




+ Reply to Thread