Monitoring and Managing Two-Phase Commit
202 iPlanet Integration Server Process System Guide August 200 1
The iIS two-phase commit protocol is implemented by placing an engine session in
two-phase commit mode. iIS engine transactions for this session are automatically
placed in a PREPARE phase. A session with two-phase commit enabled can only
support one iIS transaction at a time.
The iIS process engine uses a unique transaction ID to monitor transactions during a
two-phase transaction. The client application can specify a unique transaction ID;
otherwise the engine generates a transaction ID (based on a time stamp, session
name, and the session operation sequence number).
Managing Two-Phase Commit Operations
If a session should be suspended for any of a number of reasons, any iIS transaction
in a PREPARE phase is retained on the session, awaiting resolution (commit or
rollback). The client application is normally responsible for resolving these
transactions; however, in the case of failure, these transactions may be left
permanently in the PREPARE phase. Because of this, it is up to a system manager
to check for and resolve any transactions left in a PREPARE phase.
For example, a client application may perform an activity, but fail before it can
notify the engine to commit the CompleteActivity operation. Similarly, the engine
could fail before receiving the commit. Both these situations result in inconsistency
of state information between the client application and engine.
To properly resolve iIS transactions in a PREPARE phase, however, you must
investigate whether related application transactions were committed or aborted.
How you do this depends on the details of the application and how it keeps track
of transaction IDs.
You can use Conductor Script commands to identify and resolve transactions in a
PREPARE phase, as described in Monitoring and Managing Two-Phase Commit
Transactions on page258.