Re: msdtc with 32-bit app fails to resolve in-doubt or not-notifed transactions

From: Craig Ringer <craig(at)2ndquadrant(dot)com>
To: "Inoue, Hiroshi" <inoue(at)tpf(dot)co(dot)jp>
Cc: "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: msdtc with 32-bit app fails to resolve in-doubt or not-notifed transactions
Date: 2014-06-25 14:26:15
Message-ID: 53AADC07.3090206@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

On 06/24/2014 11:07 AM, Craig Ringer wrote:
> On 06/24/2014 05:23 AM, Inoue, Hiroshi wrote:
>>
>> XARMCreate() triggers xa_open() ( and xa_close()) probably so as to
>> check that the XADLL works. Currently xa_open() doesn't connect to
>> the database and simply saves the connection information for subsequent
>> xa_commit(), xa_rollback() or xa_recover() call. When original process
>> finished COMMIT/ROLLBACK PREPARED properly, No database access occurs
>> in msdtc process. We can change xa_open() so that it connects to the
>> database immediately and causes an error to XARMCreate() when the
>> connection fails.
>
> That's enlightening. Thankyou very much.
>
> I'll happily implement that and send in a patch. It may take a week or
> two as I have some other projects on the boil, but hopefully it won't
> take super long.

... and done.

Please merge branch fix-syswow64-msdtc from my repo at
https://github.com/ringerc/psqlODBC.git .

see: https://github.com/ringerc/psqlODBC/pull/2

Patch attached if you prefer that. See patch header and in-code comments
for details.

It may well be better to just rewrite pgxalib.dll to use libpq, but I
wanted to stay non-intrusive and simple if possible. For now at least.

I'm not sure the unicode vs ansi dance is necessary in the patch is
necessary - it's probably ok to just always use the unicode driver.
Again, though, deviating from what the driver already does as little as
possible seemed reasonable.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachment Content-Type Size
0001-Fix-driver-name-mismatch-between-32-bit-ODBC-app-and.patch text/x-patch 4.2 KB

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Craig Ringer 2014-06-25 16:13:44 Re: msdtc with 32-bit app fails to resolve in-doubt or not-notifed transactions
Previous Message Jan-Peter Seifert 2014-06-25 14:13:20 Re: Crash when using 'Use Declare/Fetch' and the result set does contain one row only