| From: | jesus(at)omniti(dot)com | 
|---|---|
| To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> | 
| Cc: | PostgreSQL-development Development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: question about implementing XA-ish functions | 
| Date: | 2009-12-18 19:24:07 | 
| Message-ID: | 38889E8E-126E-4FB2-8CF5-6379E8008FA1@omniti.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
This is perfect. It fires on both commit and rollback? And I can  
determine which?  The system I'm interfacing with has 2PC so it should  
be a pretty tight fit.  Thanks a ton Heikki!
--
Theo Schlossnagle (mobile)
http://omniti.com/is/theo-schlossnagle
On Dec 18, 2009, at 10:34 AM, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com 
 > wrote:
> Theo Schlossnagle wrote:
>> I'm trying to implement a function that has some XA like properties.
>>
>> Is it possible to write a postgres extension function that fires  
>> when called within a pg transaction... however, the actions it  
>> takes need to be later committed or rolled back based on the  
>> containing transactions commital or not.  Not having looked to  
>> deeply into this, I'm wondering if this is possible.  Naively, my  
>> first hookpoint would be something like:
>>
>> allocate something in the transactions memory context and register  
>> a cleanup.... do my work.
>>
>> when the transaction memory context is cleaned up, my cleanup  
>> handler fires, I detect whether the txn was committed or rolledback  
>> and rightly mark my work as committed or rolled back.
>
> See RegisterXactCallback(). And then there's the ResourceOwners, that
> you can use to register custom resources for cleanup.
>
> Of course, you'll never be able to make it atomic without 2PC. The
> callbacks are executed very soon after after the commit record has  
> been
> flushed to disk, so the window is small but it's there.
>
> -- 
>  Heikki Linnakangas
>  EnterpriseDB   http://www.enterprisedb.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2009-12-18 19:25:56 | Re: PATCH: Add hstore_to_json() | 
| Previous Message | Greg Smith | 2009-12-18 19:18:18 | Re: Closing out CommitFest 2009-11 |