19992013 Ericsson AB. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. CosTransactions_Coordinator 1999-04-12 PA1
CosTransactions_Coordinator This module implements the OMG CosTransactions::Coordinator interface.

To get access to the record definitions for the structures use:

-include_lib("cosTransactions/include/CosTransactions.hrl").

create_subtransaction(Coordinator) -> Control Create a new subtransaction. 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 Return the name associated with the object. 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 Return the status of the parent transaction. 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 Return the status of the transaction associated with the target object Coordinator = #objref Status = atom()

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

get_top_level_status(Coordinator) -> Status Return the status of the top-level transaction associated with the target object Coordinator = #objref Status = atom()

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

hash_top_level_tran(Coordinator) -> Return Return a hash code for the top-level transaction associated with the target object 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 Return a hash code for the transaction associated with the target object. Coordinator = #objref Return = integer()

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

is_descendant_transaction(Coordinator, OtherCoordinator) -> Return Return a boolean which indicates whether the transaction associated with the target object is a descendant of the transaction associated with the parameter object Coordinator = #objref OtherCoordinator = #objref Return = Boolean

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

is_same_transaction(Coordinator, OtherCoordinator) -> Return Return true if the transaction associated with the target object is related to the transaction associated with the parameter object Coordinator = #objref OtherCoordinator = #objref Return = Boolean

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

is_top_level_transaction(Coordinator) -> Return Return true if the transaction associated with the target object is a top-level transaction Coordinator = #objref Return = Boolean

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

register_resource(Coordinator, Resource) -> RecoveryCoordinator Register the parameter Resourceobject as a participant in the transaction associated with the target object 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.

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 Register the parameter SubtransactionAwareResourceobject such that it will be notified when the transaction, associated wit the target object, has committed or rolled back 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.

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

rollback_only(Coordinator) -> Return Modify the transaction associated with the target object so the only possible outcome is to rollback the transaction Coordinator = #objref Return = ok

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