CosTransactions_Resource.3erl - Man Page

This module implements the OMG CosTransactions::Resource interface.

Description

To get access to the record definitions for the structures use:
-include_lib("cosTransactions/include/CosTransactions.hrl").

Exports

commit(Resource) -> Return

Types:

Resource = #objref
Return = ok | {'EXCEPTION', E}
E = #'CosTransactions_NotPrepared'{} | #'CosTransactions_HeuristicRollback'{} | #'CosTransactions_HeuristicMixed'{} | #'CosTransactions_HeuristicHazard'{}

This operation instructs the Resource to commit all changes made as a part of the transaction.

The Resource can raise:

  • Heuristic Exception - if a Heuristic decision is made which differ from the true outcome of the transaction. The Resource must remember the Heuristic outcome until the forget operation is performed.

commit_one_phase(Resource) -> Return

Types:

Resource = #objref
Return = ok | {'EXCEPTION', E}
E = #'CosTransactions_HeuristicHazard'{} | #'CosTransactions_TransactionRolledBack'{}

If possible, the Resource should commit all changes made as part of the transaction, else it should raise the TRANSACTION_ROLLEDBACK exception. This operation can only be used if the Resource is the only child of its parent.

forget(Resource) -> Return

Types:

Resource = #objref
Return = ok

This operation informs the Resource that it is safe to forget any Heuristic decisions and the knowledge of the transaction.

prepare(Resource) -> Return

Types:

Resource = #objref
Return = Vote | {'EXCEPTION', E}
Vote = 'VoteReadOnly' | 'VoteCommit' | 'VoteRollback'
E = #'CosTransactions_HeuristicMixed'{} | #'CosTransactions_HeuristicHazard'{}

This operation is invoked on the Resource to begin the two-phase commit protocol.

The Resource can reply:

  • 'VoteReadOnly' - if no persistent data has been modified by the transaction. The Resource can forget all knowledge of the transaction.
  • 'VoteCommit' - if the Resource has been prepared and is able to write all the data needed to commit the transaction to stable storage.
  • 'VoteRollback' - under any circumstances but must do so if none of the alternatives above are applicable.
  • Heuristic Exception - if a Heuristic decision is made which differ from the true outcome of the transaction. The Resource must remember the Heuristic outcome until the forget operation is performed.

rollback(Resource) -> Return

Types:

Resource = #objref
Return = ok | {'EXCEPTION', E}
E = #'CosTransactions_HeuristicCommit'{} | #'CosTransactions_HeuristicMixed'{} | #'CosTransactions_HeuristicHazard'{}

This operation instructs the Resource to rollback all changes made as a part of the transaction.

The Resource can raise:

  • Heuristic Exception - if a Heuristic decision is made which differ from the true outcome of the transaction. The Resource must remember the Heuristic outcome until the forget operation is performed.

Info

cosTransactions 5.1 Ericsson AB Erlang Module Definition