i changed TransactionContext.getResourceManagerId to also append the
connections clientid
private String getResourceManagerId() throws JMSException {
return this.connection.getResourceManagerId() + "/" +
this.connection.getClientID();
}
therefor isSameRM() now only returns true for xa
the jta spec says:
3.4.6 Resource Sharing
When the same transactional resource is used to interleave multiple
transactions, it is
the responsibility of the application server to ensure that only one
transaction is enlisted
with the resource at any given time.
On Sat, Apr 6, 2013 at 9:41 PM,
glassfish code just does that:
it know the following resources states (one TransactionContext per
connection - same xid,same branch => imo ok because
TransactionContext.isSameRM returns true)
TransactionContext{transactionId=XID[4871251,globalId=4000ffcaff98ffceffe064676e622c73657
i forget to mention.
when we do not throw an exception after the jms-template send everything
works fine - transaction gets committed org.apache.activemq.
TransactionContext.end(xid,flags) is called twice as expected...
On Sat, Apr 6, 2013 at 8:46 PM, Daniel Guggi wrote:
> hi,
>
> we use spr
hi,
we use spring's DMLC using an xa-pooledconnectionfactory
when the DMLC receives a message the (test) message-lister just sends a
message to another queue using spring's jmstemplate. this jms-template also
uses a xa-pooledconnectionfactory (but another instance)
that meas that we have two act