CosTransactions_Coordinator(3)

MODULE
CosTransactions_Coordinator - This module implements the OMG CosTransactions::Coordinator interface.

DESCRIPTION

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

EXPORTS

create_subtransaction(Coordinator) -> Control

    Types
        Coordinator = #objref
        Control = #objref

    A new subtransaction is created whose parent is the Coordinator argument.

    Raises exception:

        *   'SubtransactionsUnavailable' - if nested transactions are not supported.

        *   'Inactive' - if target transaction has already been prepared.

get_transaction_name(Coordinator) -> Name

    Types
        Coordinator = #objref
        Name = string() of type "oe_name@machine_type_timestamp"

    Returns a printable string, which describe the transaction. The main purpose is to support debugging.

get_parent_status(Coordinator) -> Status

    Types
        Coordinator = #objref
        Status = atom()

    Returns the status of the parent transaction associated with the target object. If the target object is a top-level transaction this operation is equivalent to get_status/1 operation.

    Possible Status replies:

        *   'StatusCommitted'

        *   'StatusCommitting'

        *   'StatusMarkedRollback'

        *   'StatusRollingBack'

        *   'StatusRolledBack'

        *   'StatusActive'

        *   'StatusPrepared'

        *   'StatusUnknown'

        *   'StatusNoTransaction'

        *   'StatusPreparing'

get_status(Coordinator) -> Status

    Types
        Coordinator = #objref
        Status = atom()

    Returns the status of the transaction associated with the target object.

get_top_level_status(Coordinator) -> Status

    Types
        Coordinator = #objref
        Status = atom()

    Returns the status of the top-level transaction associated with the target object.

hash_top_level_tran(Coordinator) -> Return

    Types
        Coordinator = #objref
        Return = integer()

    Returns a hash code for the top-level transaction associated with the target object. Equals the operation hash_transaction/1 if the target object is a top-level transaction.

hash_transaction(Coordinator) -> Return

    Types
        Coordinator = #objref
        Return = integer()

    Returns a hash code for the transaction associated with the target object.

is_descendant_transaction(Coordinator, OtherCoordinator) -> Return

    Types
        Coordinator = #objref
        OtherCoordinator = #objref
        Return = Boolean

    Returns true if the transction associated with the target object is a descendant of the transaction associated with the parameter object.

is_same_transaction(Coordinator, OtherCoordinator) -> Return

    Types
        Coordinator = #objref
        OtherCoordinator = #objref
        Return = Boolean

    Returns true if the transction associated with the target object is related to the transaction associated with the parameter object.

is_top_level_transaction(Coordinator) -> Return

    Types
        Coordinator = #objref
        Return = Boolean

    Returns true if the transction associated with the target object is a top-level transaction.

register_resource(Coordinator, Resource) -> RecoveryCoordinator

    Types
        Coordinator = #objref
        Resource = #objref
        RecoveryCoordinator = #objref

    This operation registers the parameter Resource object as a participant in the transaction associated with the target object. The RecoveryCoordinator returned by this operation can be used by this Resource during recovery.

  Note:

The Resources will be called in FIFO-order when preparing or committing. Hence, be sure to register the Resources in the correct order.

Raises exception:

    *   'Inactive' - if target transaction has already been prepared.

register_subtran_aware(Coordinator, SubtransactionAwareResource) -> Return

    Types
        Coordinator = #objref
        Return = ok

    This operation registers the parameter SubtransactionAwareResource object such that it will be notified when the transaction, associated wit the target object, has committed or rolled back.

  Note:

The Resources will be called in FIFO-order. Hence, be sure to register the Resources in the correct order.

rollback_only(Coordinator) -> Return

    Types
        Coordinator = #objref
        Return = ok

    The transaction associated with the target object is modified so the only possible outcome is to rollback the transaction.