Jeff Steidl [
https://community.jboss.org/people/jsteidl] created the discussion
"Re: JCA Spec violation using resource-adapter in JBoss 7?"
To view the discussion, visit:
https://community.jboss.org/message/800173#800173
--------------------------------------------------------------
To quickly see the problem, search the log summary jleinawe provided (tempm.txt) for
"xaResourceWrapper2". The first three instances are:
in:managedConnectionImpl0.getXAResource() -> xaResourceWrapper2 #1
@1362075193107..1362075193110
[...]
in:xaResourceWrapper2.start(xid3,2097152) #6 @1362075193148..1362075193161
[...]
in:xaResourceWrapper2.start(xid5,2097152) threw #8 @1362075193570..1362075193577
As you can see, the app-server gets this XAResource from the RA, then calls
XAResource.start on it multiple times in a row without calling XAResource.end in between
(which is why the RA throws an exception the second time xaResourceWrapper2.start is
called). If you keep searching for "xaResourceWrapper2", you'll see several
more calls to XAResource.start, but no calls to XAResource.end.
If you then search from the top of the log summary for "xid3", you'll find
the following calls made to the RA ("in:" calls):
in:xaResourceWrapper0.start(xid3,0) #4 @1362075179562..1362075179570
[...]
in:xaResourceWrapper2.start(xid3,2097152) #6 @1362075193148..1362075193161
[...]
in:xaResourceWrapper0.end(xid3,67108864) #4 @1362075193388..1362075193396
[...]
in:xaResourceWrapper0.commit(xid3,true) #4 @1362075193397..1362075193438
You can see that while the app-server is ending the association for xaResourceWrapper0
before committing the transaction, it is failing to do so for xaResourceWrapper2.
This line shows that wlConnection0 is the connection handle being used for
managedConnectionImpl0:
in:managedConnectionImpl0.getConnection(null,connectionRequestInfoImpl0) ->
wlConnection0 #1 @1362075193164..1362075193199
And if you look at wlConnection0 being closed:
in:wlConnection0.close() #1 @1362075193351..1362075193382
out:Connection.stop() #1 @1362075193356..1362075193361
out:XAResource.end(xid3,67108864) #4 @1362075193364..1362075193368
out:ConnectionEventListener.connectionClosed(javax.resource.spi.ConnectionEvent[source=OracleJMSConnector.ManagedConnectionImpl.adc2100774.us.oracle.com.-2ebdb17:13d22011ace:-7ffb.20])
#1 @1362075193372..1362075193379
out:MessageEndpoint.afterDelivery() #4 @1362075193386..1362075193444
you'll see that the RA is calling ConnectionEventListener.connectionClosed, but the
app-server is failing to delist xaResourceWrapper2 in response (as the JCA spec
requires). [Note that the "out:XAResource.end" call above is for a secondary
JMS provider XAResource used internally by the RA, and is not the same as
xaResourceWrapper2.]
Since the above lines are grabbed as-is (except for indent) from tempm.txt, you can see
those calls in context by searching for them in that file.
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/800173#800173]
Start a new discussion in IronJacamar at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]