On Thu, 7 Oct 2004, Zeugswetter Andreas DAZ SD wrote:

Note that this is only really necessary because of Heikki's choice to
make the API work in terms of a user-assigned GID.

This was not an arbitrary choice, but is required by most/all TX managers :-( I agree that it would be cleaner for the tx manager to keep such a map. Maybe the idea was for the gid's to be human readable since human intervention is rarely but still required with 2PC, especially in the case where the tx manager is unavailable/unrecoverable.

Actually, I think the reason is the following scenario:

1. TM tells DB to prepare for commit
2. DB connection dies after sending the message, but before the TM gets a reply.
3. The TM now has no way to know if the transaction got prepared or not.


With a TM assigned transaction id, it works like this:

1. TM tells DB to prepare for commit with transaction id 1234
2. DB connection dies after sending the message, but before the TM gets a reply.
3. TM reconnects, and asks the DB if the transaction 1234 is prepared or not.


- Heikki

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to