Re: question about implementing XA-ish functions
От | Heikki Linnakangas |
---|---|
Тема | Re: question about implementing XA-ish functions |
Дата | |
Msg-id | 4B2BCB2C.5070006@enterprisedb.com обсуждение исходный текст |
Ответ на | question about implementing XA-ish functions (Theo Schlossnagle <jesus@omniti.com>) |
Ответы |
Re: question about implementing XA-ish functions
|
Список | pgsql-hackers |
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 actionsit takes need to be later committed or rolled back based on the containing transactions commital or not. Not havinglooked 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 orrolledback 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
В списке pgsql-hackers по дате отправления: