Can you point me to the db2 documentation you are looking at? Does your "manual" xa code use more than one branch XID for the same global XID for the same db2 resource? The geronimo tm should be using the same branch xid for all access to the same db2 resource within a single global xid, so there shouldn't be any question of lock conflicts.
Are you using more than one datasource connected to the same db2 server? Can you show your datasource plan?
On Sep 16, 2011, at 11:38 AM, Shika Maru00 wrote:
I have primarily made use of non standard flags in the case of DB2 - which provides a TMLCS flag to enable sharing of locks (to prevent lock timeouts). In other words, one must manually enable tight coupling. The wording on the IBM site is a little odd, but that's been my experience when testing with manual XA code.
On Fri, Sep 16, 2011 at 1:47 PM, David Jencks <email@example.com>
WAS CE and Geronimo don't support distributed transactions (where more than one transaction manager is used in a single xa transaction, all but one as "branches" of the primary transaction). (Note that WAS CE and Geronimo do support XA transactions with an arbitrary number of XA resources enrolled. However, all the XAResources have to be actual resource managers such as a database, jms broker, etc, they can't be other remote tx manager instances. This is only because we haven't written any tx-aware transports for e.g. remote ejb calls).
The only use I'm aware of for loosely coupled transactions is for distributed transactions where more than one tm and process are making changes in the same tx using different branches. Within a single process and tm, all the work on one resource manager should be done within the same tx branch, making the loose coupling irrelevant.
Anyway, right now we don't support this (non-xa-standard AFAIK) flag. I'd be interested to see more information on why you think it would be helpful.
On Sep 16, 2011, at 10:22 AM, Shika Maru00 wrote:
> Is it possible to add flags to the geronima transaction manager when it starts up a resource? (using enlistResource internally).
> I need to add a flag to enable loose coupling on ORACLE and DB2 (oratransloose and tmlcs). But this must be done when someone calls the XAResource start() , which includes the flag parameter. As I don't have direct control of XAResource (as the client I only use the UserTransaction object) I'm not sure how to do this.
> Some TMs, like webspheres, do this internally and provide some other method for the user to specify it. I am using Websphere Application Server Comunity Edition, which makes use of geronimo. What can I do?