XA end then join fix for WebLogic

Lists: pgsql-jdbc
From: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Cc: jdevisser(at)digitalfairway(dot)com
Subject: XA end then join fix for WebLogic
Date: 2006-10-02 11:46:33
Message-ID: 4520FC19.8070205@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Jan de Visser ran into problems with our XA implementation earlier, and
traced the problem to the sequence of XADataSource method calls that
WebLogic performed. He fixed it with a simple patch that allows
start(.., TMJOIN) on a transaction that was ended earlier using the same
connection:

http://archives.postgresql.org/pgsql-jdbc/2005-12/msg00038.php

It puzzles me why WebLogic does that, but it seems valid and we should
support it, even though we can't support join in general.

Here's a more polished version of Jan's patch. I don't have WebLogic to
test this with, so I would appreciate if those that have access to
WebLogic could reproduce the original problem and confirm that this
patch fixes it.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

Attachment Content-Type Size
xa-endthenjoin.diff text/x-patch 3.8 KB

From: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-10-02 13:53:17
Message-ID: 200610020953.17735.jdevisser@digitalfairway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Monday 02 October 2006 07:46, Heikki Linnakangas wrote:
> Jan de Visser ran into problems with our XA implementation earlier, and
> traced the problem to the sequence of XADataSource method calls that
> WebLogic performed. He fixed it with a simple patch that allows
> start(.., TMJOIN) on a transaction that was ended earlier using the same
> connection:
>
> http://archives.postgresql.org/pgsql-jdbc/2005-12/msg00038.php
>
> It puzzles me why WebLogic does that, but it seems valid and we should
> support it, even though we can't support join in general.
>
> Here's a more polished version of Jan's patch. I don't have WebLogic to
> test this with, so I would appreciate if those that have access to
> WebLogic could reproduce the original problem and confirm that this
> patch fixes it.

I'll have a look "soon". Any deadlines?

jan

--
--------------------------------------------------------------
Jan de Visser                     jdevisser(at)digitalfairway(dot)com

                Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------


From: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
To: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-10-03 14:41:02
Message-ID: 4522767E.3060000@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Jan de Visser wrote:
> I'll have a look "soon". Any deadlines?

I believe there's going to be a stable JDBC driver release 8.2 when
PostgreSQL 8.2 is released. It would be nice to get the fix into that
release. Other than that, no.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Kris Jurka <books(at)ejurka(dot)com>
To: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
Cc: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-10-30 18:32:31
Message-ID: Pine.BSO.4.63.0610301332040.2855@leary2.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Mon, 2 Oct 2006, Jan de Visser wrote:

> On Monday 02 October 2006 07:46, Heikki Linnakangas wrote:
>> Jan de Visser ran into problems with our XA implementation earlier, and
>> traced the problem to the sequence of XADataSource method calls that
>> WebLogic performed. He fixed it with a simple patch that allows
>> start(.., TMJOIN) on a transaction that was ended earlier using the same
>> connection:
>>
>> http://archives.postgresql.org/pgsql-jdbc/2005-12/msg00038.php
>>
>> It puzzles me why WebLogic does that, but it seems valid and we should
>> support it, even though we can't support join in general.
>>
>> Here's a more polished version of Jan's patch. I don't have WebLogic to
>> test this with, so I would appreciate if those that have access to
>> WebLogic could reproduce the original problem and confirm that this
>> patch fixes it.
>
> I'll have a look "soon". Any deadlines?
>

Did you find the time to do any testing?

Kris Jurka


From: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-10-30 18:45:24
Message-ID: 200610301345.24933.jdevisser@digitalfairway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Monday 30 October 2006 1:32 pm, Kris Jurka wrote:
> On Mon, 2 Oct 2006, Jan de Visser wrote:
> > On Monday 02 October 2006 07:46, Heikki Linnakangas wrote:
> >> Jan de Visser ran into problems with our XA implementation earlier, and
> >> traced the problem to the sequence of XADataSource method calls that
> >> WebLogic performed. He fixed it with a simple patch that allows
> >> start(.., TMJOIN) on a transaction that was ended earlier using the same
> >> connection:
> >>
> >> http://archives.postgresql.org/pgsql-jdbc/2005-12/msg00038.php
> >>
> >> It puzzles me why WebLogic does that, but it seems valid and we should
> >> support it, even though we can't support join in general.
> >>
> >> Here's a more polished version of Jan's patch. I don't have WebLogic to
> >> test this with, so I would appreciate if those that have access to
> >> WebLogic could reproduce the original problem and confirm that this
> >> patch fixes it.
> >
> > I'll have a look "soon". Any deadlines?
>
> Did you find the time to do any testing?

No, not yet. Should be able to do it this week though. That OK?

>
> Kris Jurka

jan

--
--------------------------------------------------------------
Jan de Visser                     jdevisser(at)digitalfairway(dot)com

                Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------


From: Kris Jurka <books(at)ejurka(dot)com>
To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org, jdevisser(at)digitalfairway(dot)com
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 09:28:24
Message-ID: Pine.BSO.4.64.0612010425480.17199@leary2.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Mon, 2 Oct 2006, Heikki Linnakangas wrote:

> Jan de Visser ran into problems with our XA implementation earlier, and
> traced the problem to the sequence of XADataSource method calls that WebLogic
> performed. He fixed it with a simple patch that allows start(.., TMJOIN) on a
> transaction that was ended earlier using the same connection:
>
> http://archives.postgresql.org/pgsql-jdbc/2005-12/msg00038.php
>
> It puzzles me why WebLogic does that, but it seems valid and we should
> support it, even though we can't support join in general.
>
> Here's a more polished version of Jan's patch. I don't have WebLogic to test
> this with, so I would appreciate if those that have access to WebLogic could
> reproduce the original problem and confirm that this patch fixes it.
>

Doesn't this allow:

xaRes.start(xid, XAResource.TMNOFLAGS);
xaRes.end(xid, XAResource.TMFAIL);
xaRes.start(xid, XAResource.TMJOIN);
xaRes.end(xid, XAResource.TMSUCCESS);
xaRes.commit(xid, true);

Is that actually a problem or do we assume the TM is smart enough not to
do this.

Kris Jurka


From: "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
To: "Kris Jurka" <books(at)ejurka(dot)com>
Cc: <pgsql-jdbc(at)postgresql(dot)org>, <jdevisser(at)digitalfairway(dot)com>
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 11:28:47
Message-ID: 457011EF.2050001@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Kris Jurka wrote:
> Doesn't this allow:
>
> xaRes.start(xid, XAResource.TMNOFLAGS);
> xaRes.end(xid, XAResource.TMFAIL);
> xaRes.start(xid, XAResource.TMJOIN);
> xaRes.end(xid, XAResource.TMSUCCESS);
> xaRes.commit(xid, true);
>
> Is that actually a problem or do we assume the TM is smart enough not to
> do this.

Hmm, true, it does allow that.

The TM really shouldn't be doing that. It's very confused if it does.
However, given the sorry state of many TMs out there, it'd be nice if we
did check for that.

I'd say let's not bother checking that for now. In the future, we should
roll back the transaction on end(TMFAIL) immediately, and add checking
for that case as well. The way it works now is perfectly correct and
legal, we're just not taking advantage of the hint the TM is giving us.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Kris Jurka <books(at)ejurka(dot)com>
To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org, jdevisser(at)digitalfairway(dot)com
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 12:28:29
Message-ID: Pine.BSO.4.64.0612010728090.20488@leary2.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Fri, 1 Dec 2006, Heikki Linnakangas wrote:

> Kris Jurka wrote:
>> Doesn't this allow:
>>
>> xaRes.start(xid, XAResource.TMNOFLAGS);
>> xaRes.end(xid, XAResource.TMFAIL);
>> xaRes.start(xid, XAResource.TMJOIN);
>> xaRes.end(xid, XAResource.TMSUCCESS);
>> xaRes.commit(xid, true);
>>
>> Is that actually a problem or do we assume the TM is smart enough not to do
>> this.
>
> Hmm, true, it does allow that.
>
> The TM really shouldn't be doing that. It's very confused if it does.
> However, given the sorry state of many TMs out there, it'd be nice if we did
> check for that.
>
> I'd say let's not bother checking that for now. In the future, we should roll
> back the transaction on end(TMFAIL) immediately, and add checking for that
> case as well. The way it works now is perfectly correct and legal, we're just
> not taking advantage of the hint the TM is giving us.
>

OK. Applied.

Kris Jurka


From: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 13:46:14
Message-ID: 200612010846.14801.jdevisser@digitalfairway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Friday 01 December 2006 7:28 am, Kris Jurka wrote:
> OK.  Applied.
>
> Kris Jurka

You guys still interested in WebLogic testresults? I guess yes. ISTR that
there is also an open TODO to update the FAQ with config info for various
appservers. I can have a go at that for WL and JBoss.

jan

--
--------------------------------------------------------------
Jan de Visser                     jdevisser(at)digitalfairway(dot)com

                Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------


From: Kris Jurka <books(at)ejurka(dot)com>
To: Jan de Visser <jdevisser(at)digitalfairway(dot)com>
Cc: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 14:12:55
Message-ID: Pine.BSO.4.64.0612010910450.22186@leary2.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Fri, 1 Dec 2006, Jan de Visser wrote:

> On Friday 01 December 2006 7:28 am, Kris Jurka wrote:
>> OK.  Applied.
>>
>> Kris Jurka
>
> You guys still interested in WebLogic testresults? I guess yes. ISTR that
> there is also an open TODO to update the FAQ with config info for various
> appservers. I can have a go at that for WL and JBoss.
>

Yes, the patch looks good to me, but verifying that it actually solves the
problem would be good. Sample config files are too large for the FAQ and
should probably be put in the main documentation instead.

Kris Jurka


From: "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
To: "Jan de Visser" <jdevisser(at)digitalfairway(dot)com>
Cc: "Kris Jurka" <books(at)ejurka(dot)com>, <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: XA end then join fix for WebLogic
Date: 2006-12-01 14:14:37
Message-ID: 457038CD.3090803@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Jan de Visser wrote:
> On Friday 01 December 2006 7:28 am, Kris Jurka wrote:
>> OK. Applied.
>>
>> Kris Jurka
>
> You guys still interested in WebLogic testresults? I guess yes. ISTR that
> there is also an open TODO to update the FAQ with config info for various
> appservers. I can have a go at that for WL and JBoss.

Yes please.

We'll have to think about the format how we want to collect the configs,
but please send what you have so we can start thinking about that. I can
dig my JOnAS test installations for a config file as well. As Kris
mentioned, the documentation stuff isn't that urgent, since it's not
tied to the release of the driver.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com