jleinawe
2013-02-26 21:48:36 UTC
jleinawe [https://community.jboss.org/people/jleinawe] created the discussion
"JCA Spec violation using resource-adapter in JBoss 7?"
To view the discussion, visit: https://community.jboss.org/message/799730#799730
--------------------------------------------------------------
JBoss AS 7.1.1.Final-SNAPSHOT
JBoss IronJacamar 1.0.8.Final
Testing a JMS resource-adapter deployed to JBoss which will use WebLogic as the JMS provider. In a transacted MDB test, this error appears in the JBoss log (which is attached) when the MDB tries to send and outbound reply message
11:18:24,023 ERROR [stderr] (default-short-running-threads-threads - 1) javax.transaction.xa.XAException: J2EE GJRA-01501: cause = Attempt to start a transaction while in an active (global or local) transaction.; action = Complete current transaction before starting another
By analysis our RA's own tracing, this looks like a JCA spec violation. xaResourceWrapper2 (the XAResource for managedConnectionImpl0) is being enlisted with xid3. Then without delisting xaResourceWrapper2, jboss is doing a managedConnectionImpl0.cleanup() call (which is a JCA spec violation). Then later when it tries to enlist xaResourceWrapper2 with xid5, that fails because xaResourceWrapper2 is still enlisted with xid3. (That enlistment attempt is not even getting to WebLogic JMS because the RA is detecting the XA protocol violation.)
Excerpts from log:
  out:MessageEndpoint.beforeDelivery(public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message)) #4 @1361560688075..1361560688295
     in:xaResourceWrapper0.setTransactionTimeout(300) -> true #4 @1361560688102..1361560688173
        out:XAResource.setTransactionTimeout(300) -> true #4 @1361560688126..1361560688155
     in:xaResourceWrapper0.start(xid3,0) #4 @1361560688191..1361560688277 [TMNOFLAGS]
        out:XAResource.start(xid3,0) #4 @1361560688223..1361560688260    [TMNOFLAGS]
  [...]
  out:MessageListener.onMessage(genericStreamMessage0) #1 @1361560697008..1361560702586
     in:wlxaQueueConnectionFactory0.createConnection() -> wlConnection0 #1 @1361560698037..1361560700740
        out:ConnectionManager.allocateConnection(wlManagedXAQueueConnectionFactory0,connectionRequestInfoImpl0) -> wlConnection0 #1 @1361560698093..1361560700687
           [...]
           *in:managedConnectionImpl0.getXAResource() -> xaResourceWrapper2* #1 @1361560699619..1361560699675
           [...]
           *in:xaResourceWrapper2.start(xid3,2097152)* #6 @1361560700092..1361560700275 [TMJOIN]
              out:XAResource.start(xid3,2097152) #6 @1361560700157..1361560700226    [TMJOIN]
  [...]
  out:MessageEndpoint.afterDelivery() #4 @1361560702595..1361560702930
     in:xaResourceWrapper0.end(xid3,67108864) #4 @1361560702612..1361560702709 [TMSUCCESS]
        out:XAResource.end(xid3,67108864) #5 @1361560702649..1361560702688    [TMSUCCESS]
     in:xaResourceWrapper0.commit(xid3,true) #4 @1361560702729..1361560702851
        out:XAResource.commit(xid3,true) #4 @1361560702766..1361560702830
     i*n:managedConnectionImpl0.cleanup()* #1 @1361560702871..1361560702904 [JCA spec violation]
  out:MessageEndpoint.beforeDelivery(public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message)) #6 @1361560702938..1361560703159
     [...]
  out:MessageConsumer.receive(15000) -> TextMessage[ID:<384827.1361560696991.0>, null] #6 @1361560703168..1361560703201
  out:MessageListener.onMessage(genericTextMessage0) #2 @1361560703226..1361560704964
     in:wlxaQueueConnectionFactory0.createConnection() threw #2 @1361560703250..1361560704672
        out:ConnectionManager.allocateConnection(wlManagedXAQueueConnectionFactory0,connectionRequestInfoImpl0) threw #2 @1361560703307..1361560704447
           [...]
           i*n:xaResourceWrapper2.start(xid5,2097152) threw* #8 @1361560703786..1361560703871 [TMJOIN]
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/799730#799730]
Start a new discussion in IronJacamar at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2098]
"JCA Spec violation using resource-adapter in JBoss 7?"
To view the discussion, visit: https://community.jboss.org/message/799730#799730
--------------------------------------------------------------
JBoss AS 7.1.1.Final-SNAPSHOT
JBoss IronJacamar 1.0.8.Final
Testing a JMS resource-adapter deployed to JBoss which will use WebLogic as the JMS provider. In a transacted MDB test, this error appears in the JBoss log (which is attached) when the MDB tries to send and outbound reply message
11:18:24,023 ERROR [stderr] (default-short-running-threads-threads - 1) javax.transaction.xa.XAException: J2EE GJRA-01501: cause = Attempt to start a transaction while in an active (global or local) transaction.; action = Complete current transaction before starting another
By analysis our RA's own tracing, this looks like a JCA spec violation. xaResourceWrapper2 (the XAResource for managedConnectionImpl0) is being enlisted with xid3. Then without delisting xaResourceWrapper2, jboss is doing a managedConnectionImpl0.cleanup() call (which is a JCA spec violation). Then later when it tries to enlist xaResourceWrapper2 with xid5, that fails because xaResourceWrapper2 is still enlisted with xid3. (That enlistment attempt is not even getting to WebLogic JMS because the RA is detecting the XA protocol violation.)
Excerpts from log:
  out:MessageEndpoint.beforeDelivery(public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message)) #4 @1361560688075..1361560688295
     in:xaResourceWrapper0.setTransactionTimeout(300) -> true #4 @1361560688102..1361560688173
        out:XAResource.setTransactionTimeout(300) -> true #4 @1361560688126..1361560688155
     in:xaResourceWrapper0.start(xid3,0) #4 @1361560688191..1361560688277 [TMNOFLAGS]
        out:XAResource.start(xid3,0) #4 @1361560688223..1361560688260    [TMNOFLAGS]
  [...]
  out:MessageListener.onMessage(genericStreamMessage0) #1 @1361560697008..1361560702586
     in:wlxaQueueConnectionFactory0.createConnection() -> wlConnection0 #1 @1361560698037..1361560700740
        out:ConnectionManager.allocateConnection(wlManagedXAQueueConnectionFactory0,connectionRequestInfoImpl0) -> wlConnection0 #1 @1361560698093..1361560700687
           [...]
           *in:managedConnectionImpl0.getXAResource() -> xaResourceWrapper2* #1 @1361560699619..1361560699675
           [...]
           *in:xaResourceWrapper2.start(xid3,2097152)* #6 @1361560700092..1361560700275 [TMJOIN]
              out:XAResource.start(xid3,2097152) #6 @1361560700157..1361560700226    [TMJOIN]
  [...]
  out:MessageEndpoint.afterDelivery() #4 @1361560702595..1361560702930
     in:xaResourceWrapper0.end(xid3,67108864) #4 @1361560702612..1361560702709 [TMSUCCESS]
        out:XAResource.end(xid3,67108864) #5 @1361560702649..1361560702688    [TMSUCCESS]
     in:xaResourceWrapper0.commit(xid3,true) #4 @1361560702729..1361560702851
        out:XAResource.commit(xid3,true) #4 @1361560702766..1361560702830
     i*n:managedConnectionImpl0.cleanup()* #1 @1361560702871..1361560702904 [JCA spec violation]
  out:MessageEndpoint.beforeDelivery(public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message)) #6 @1361560702938..1361560703159
     [...]
  out:MessageConsumer.receive(15000) -> TextMessage[ID:<384827.1361560696991.0>, null] #6 @1361560703168..1361560703201
  out:MessageListener.onMessage(genericTextMessage0) #2 @1361560703226..1361560704964
     in:wlxaQueueConnectionFactory0.createConnection() threw #2 @1361560703250..1361560704672
        out:ConnectionManager.allocateConnection(wlManagedXAQueueConnectionFactory0,connectionRequestInfoImpl0) threw #2 @1361560703307..1361560704447
           [...]
           i*n:xaResourceWrapper2.start(xid5,2097152) threw* #8 @1361560703786..1361560703871 [TMJOIN]
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/799730#799730]
Start a new discussion in IronJacamar at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2098]