---
name: "CosTransactions_Resource"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:19.2.1+dfsg-2+deb9u3"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/CosTransactions_Resource"
---

# CosTransactions\_Resource(3erl)

This module implements the OMG CosTransactions::Resource interface.

## NAME

CosTransactions\_Resource - 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.
