What exactly is a multi-phase commit?
What exactly is a multi-phase commit? We have a requirement that we use a
RDBMS that supports multi-phase commits. Can ORACLE 8i do that?
A multi-phase commit is not simply a database concept. In any case where more than one server connection -- literally a socket connection -- and more than one commit step bounds the transaction scope a multi-phase commit occurs. The challenge is implement rollback mechanics when any part of the chain fails. Transaction Process Monitors (TPM's) are used to monitor transaction steps and indicate status at the buisness process, i.e., the multi-phase level. However, backing out a failed transaction generally means writing logic for compensating transactions, which are used to back out individual transaction steps in a multi-phase rollback. I do not believe that Oracle has any multi-phase capability, because this is not an aspect of either the SQL language or its low level OCI library. However, I would check with Oracle tech support for a definitive answer.
This was first published in March 2002