On Thu, Feb 12, 2009 at 02:17:03AM +0300, Igor Katson wrote:
>>
>> PostgreSQL does not provide a transaction manager.
>>
>> When you are dealing with multiple databases, the transaction manager
>> needs to make decisions like "this transaction failed on one node,
>> therefore we need to roll all the other transactions back".
>>
>> I think you are basically trying to make plproxy into the transaction
>> manager. You might get some better suggestions from people who know
>> plproxy well.
>>
> Thanks, Jeff. Googling smth like "postgresql transaction manager" does
> not give any nice result. It seems, that the one just does not exist.
> Hope, plproxy developers will answer smth. considering this problem.
There are other transaction managers available (mainly Java-based,
AFAIK). Generally a transaction manager tries to be able to interface
with all kinds of different transaction-aware services (databases,
transactional messaging systems, etc.), because generally someone
wanting to coordinate transactions using 2PC wants to coordinate all
kinds of different services; a PostgreSQL-specific one would probably
be of extremely limited applicability, especially compared to the work
required to get the transaction manager's behavior provably correct.
Often a middleware application (such as an application server) will
provide a transaction manager; standalone ones exist as well. I've heard
good things of, but never used, Bitronix, for example.
- Josh / eggyknap