We're doing similar stuff but we're acquiring a reference to the connection using the connection factory each time a bean method is called. With that we see calls to start, end, etc. each time.
It would be interesting to see (extracts of) your session beans source code to compare the handling.
For my understanding end(TMRESUME) is called when a connection is closed (in other conditions as well?); end(TMSUCCESS) is called when the transaction is ended by the container.
See my post http://www.jboss.org/modules/bb/index.html?module=bb&op=viewtopic&t= on XA-Handling as well.
This is expected behaviour.
Read the spec.
activate and passivate are invoked in an unspecified
JBoss has an attribute in transaction-service.xml where
you can get spec defined behaviour for connection
The spec behaviour confuses most developers
(and leads to connection pool leaks), so the default behaviour
in jboss is to warn people about unclosed connections and
The TMSUSPEND is the close(), the TMSUCCESS is the
commit() see the other thread.