Re: jdbc xa support - Mailing list pgsql-jdbc

From Michael Allman
Subject Re: jdbc xa support
Date
Msg-id 20050721211415.N75792@yvyyl
Whole thread Raw
In response to Re: jdbc xa support  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-jdbc
I've posted a newer revision here:

http://www.allman.ms/pgjdbcxa/pgjdbcxa-20050721.jar

I modified the implementation of recover to put the recovered xid's in the
transaction state map so that they'll be there when the tm tries to commit
or roll them back.

I renamed some variable and class names to take them a little closer to
their actual meaning.

I added small amount of code documentation.  Much more to come.

I think I made some other minor adjustments which I've forgotten.

Michael

On Thu, 21 Jul 2005, Heikki Linnakangas wrote:

> Thanks.
>
> So far so good. You still have all the same tough issues ahead as I do,
> though.
>
> I realize it's work in progress, but here's some comments in no particular
> order:
>
> 1. To answer the question in the source code: PostgreSQL doesn't support
> transaction timeouts
>
> 2. Using prepared statements like "PREPARE TRANSACTION ?" won't work. You can
> only use prepared statements for normal SELECT/UPDATE/DELETE commands.
>
> 3. How are you planning to handle transaction interleaving discussed in the
> thread Dave mentioned?
>
> 4. recover is broken because it ignores the flags argument. That's going to
> cause an endless loop in the transaction manager when it tries to recover.
> See this discussion:
> http://forum.java.sun.com/thread.jspa?threadID=475468&messageID=2232566
>
> 5. commit and rollback check that the transaction is found in
> XID_TO_TRANSACTION_STATE_MAP. However, after a crash/recover cycle, the map
> will be empty.
>
> 6. isSameRM considers two connections to the same database as different RMs.
> I'm not sure what the implications of this are, but I feel that's not right.
> I have the same issue in my implementation as well...
>
> Also take a look at a list of comments on my code by Mike Bonnet. Some of
> them probably apply to your code as well. Those comments are about the
> version that's on my pg webpage:
>
> http://users.tkk.fi/~hlinnaka/pgsql/
>
> The XA and JTA specifications are quite complicated. I'd like to see a good
> set of test cases that exercise all possible scenarious and also error
> conditions. We're also going to need testers with access to the popular
> application servers so that we know our implementation works with them.
> AFAIK, the only open source application server that does recovery properly is
> the CVS head version of JOnAS.
>
> Also, if we violate some parts of the specs (like the transaction
> interleaving part), it's important to know exactly what the limitations are
> and why. I started to write down the exact preconditions for each method in
> the javadoc comments, and also  separate which preconditions come from the
> specs and which are just implementation-specific limitations.
>
> On Wed, 20 Jul 2005, Michael Allman wrote:
>
>> Here's my first cut:
>>
>> http://www.allman.ms/pgjdbcxa/pgjdbcxa-20050720.jar
>>
>> At this point I know the documentation is sparse.  I'll try to improve that
>> situation soon.  Until then, I wanted to give everyone the opportunity to
>> take a first look at the code and the approach.
>>
>> I also have some questions, some of which are embedded in the .java files
>> as comments.  If anyone has answers, please pass them along.
>>
>> I'll let you chew on this and check back tomorrow.
>>
>> Cheers,
>>
>> Michael
>>
>> On Wed, 20 Jul 2005, Heikki Linnakangas wrote:
>>
>>> I'm working on it. Glad to hear your interested. I don't have much time to
>>> work on it though, so I would be very happy if you took over.
>>>
>>> I'll send you a copy of my workbench off-list so you can take a look. It's
>>> work in progress, but I hope it helps..
>>>
>>> I believe this is the discussion Dave mentioned:
>>>
>>> http://archives.postgresql.org/pgsql-jdbc/2005-06/msg00165.php
>>>
>>> - Heikki
>>>
>>> On Tue, 19 Jul 2005, Dave Cramer wrote:
>>>
>>>> Not sure, but look at the archives, there was some discussion about
>>>> various mechanism.
>>>>
>>>> Dave
>>>> On 19-Jul-05, at 7:34 PM, Michael Allman wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm implementing XA support in the postgres JDBC driver to complement
>>>>> the backend two phase commit support in CVS.  Is anyone else working on
>>>>> this?
>>>>>
>>>>> Michael
>>>
>>> ---------------------------(end of broadcast)---------------------------
>>> TIP 4: Have you searched our list archives?
>>>
>>>              http://archives.postgresql.org
>>>
>>
>
> - Heikki
>

pgsql-jdbc by date:

Previous
From: Michael Allman
Date:
Subject: Re: jdbc xa support
Next
From: Oliver Jowett
Date:
Subject: Re: Timestamp Conversion Woes Redux