Subject | Re: [Firebird-Java] Re: problem with XAResource.TMJOIN |
---|---|
Author | Roman Rokytskyy |
Post date | 2005-10-28T21:31:28Z |
> Looking again at the Jaybird code, I cannot figure out how resourcesWell... the issue is that we cannot join the same transaction. Firebird
> could be joined since there is one xidMap per MC, the only way to fill
> it with xids is by calling findIscTrHandle() with TMNOFLAGS but in
> case of resources join findIscTrHandle() should only be called with
> TMJOIN.
transaction is bound to the connection, which is in turn bound to the
managed connection. So, you cannot have managed connection to start Firebird
transaction when TMNOFLAGS are specified and then try to join the same
transaction in other managed connection using TMJOIN.
The only possibility would be to let managed connection use the same
physical connection with the other managed connection. But this is not
supported, and I'm not sure it will be supported in the future.
> This seems to explain my "You are trying to resume a transaction thatYup.
> has is new" error message.
> Am I right or should I look for bugs somewhere else in my code ?I would say that we have bug in isSameRM method, it should really compare
the managed connection instances, not the managed connection factories. In
your case it should return "false" and then you would need to start new
branch. Then it should work ok.
Roman