Erlang -- CosTransactions_Resource

User's Guide
Reference Manual
Release Notes
PDF
Top

cosTransactions
Reference Manual
Version 1.2.10

Expand All
Contract All

Table of Contents

- cosTransactions
  - Top of manual page
  - start/0
  - stop/0
  - start_factory/0
  - start_factory/1
  - stop_factory/1
- CosTransactions_Control
  - Top of manual page
  - get_coordinator/1
  - get_terminator/1
- CosTransactions_Coordinator
  - Top of manual page
  - create_subtransaction/1
  - get_transaction_name/1
  - get_parent_status/1
  - get_status/1
  - get_top_level_status/1
  - hash_top_level_tran/1
  - hash_transaction/1
  - is_descendant_transaction/2
  - is_same_transaction/2
  - is_top_level_transaction/1
  - register_resource/2
  - register_subtran_aware/2
  - rollback_only/1
- CosTransactions_RecoveryCoordinator
  - Top of manual page
  - replay_completion/3
- CosTransactions_Resource
  - Top of manual page
  - commit/1
  - commit_one_phase/1
  - forget/1
  - prepare/1
  - rollback/1
- CosTransactions_SubtransactionAwareResource
  - Top of manual page
  - commit_subtransaction/2
  - rollback_subtransaction/1
- CosTransactions_Terminator
  - Top of manual page
  - commit/2
  - rollback/1
- CosTransactions_TransactionFactory
  - Top of manual page
  - create/2

# CosTransactions_Resource

### MODULE

CosTransactions_Resource

### MODULE SUMMARY

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.