19992016 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_Resource 1999-04-12 PA1
CosTransactions_Resource This module implements the OMG CosTransactions::Resource interface.

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

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

commit(Resource) -> Return Instruct the target object to commit the transaction 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 Instruct the target object to commit the transaction 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 Instruct the target object to forget any heuristic decisions 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 Instruct the target object to begin the two-phase commit protocol 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 Instruct the target object to rollback the transaction 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.