4.6.1.5. Coordinatorインタフェース

Coordinatorインタフェースは、次の場合に使用するオブジェクトインタフェースです。

CosTransactions::Coordinatorクラスには次のメソッドがあります。

get_status 自トランザクションの状態を取得する
get_parent_status 親トランザクションの状態を取得する
get_top_level_status トップレベルトランザクションの状態を取得する
is_same_transaction 同一トランザクションであるかどうかを調査する
is_ancestor_transaction 祖先のトランザクションであるかどうかを調査する
is_descendant_transaction 子孫のトランザクションであるかどうかを調査する
is_related_transaction 関連するトランザクションであるかどうかを調査する
is_top_level_transaction トップレベルトランザクションであるかどうかを調査する
hash_transaction 自トランザクションのハッシュコードを取得する
hash_top_level_tran トップレベルトランザクションのハッシュコードを取得する
register_resource Resourceオブジェクトを登録する
register_synchronization Synchronizationオブジェクトを登録する
register_subtran_aware SubtranAwareResourceオブジェクトを登録する
rollback_only ロールバックオンリーをマークする
get_transaction_name トランザクション名を取得する
create_subtransaction 新しいサブトランザクションを生成する
get_txcontext PropagationContext構造体を取得する

   
4.6.1.5.1. get_status

名称 get_status - 自トランザクションの状態を取得する
形式
 #include "CosTransactions.h"
CosTransactions::Status CosTransactions::Coordinator::get_status( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションの現在の状態を取得します。
戻り値 自トランザクションの現在の状態を返します。
エラー CORBA標準例外がthrowされます。
関連項目

   
4.6.1.5.2. get_parent_status

名称 get_parent_status - 親トランザクションの状態を取得する
形式
 #include "CosTransactions.h"
CosTransactions::Status CosTransactions::Coordinator::get_parent_status( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションの親であるトランザクションの現在の状態を取得します。ただし親トランザクションが存在しない場合はCosTransactions::Coordinator::get_statusと同様の動作をします。
戻り値 親トランザクションの現在の状態を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.3. get_top_level_status

名称 get_top_level_status - トップトランザクションの状態を取得する
形式
 #include "CosTransactions.h"
CosTransactions::Status CosTransactions::Coordinator::get_top_level_status( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションのトップに位置するトランザクションの現在の状態を取得します。ただし自トランザクションがトップレベルである場合はCosTransactions::Coordinator::get_statusと同様の動作をします。
戻り値 トップトランザクションの現在の状態を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.4. is_same_transaction

名称 is_same_transaction - 同一トランザクションであるかどうかを調査する
形式
 #include "CosTransactions.h"
CORBA::Boolean CosTransactions::Coordinator::is_same_transaction( CosTransactions::Coordinator_ptr tc, CORBA::Environment& env = Ob_default_environment() );
説明 引数で指定されたCoordinatorオブジェクトと、このメソッドを呼び出す際に使用しているCoordinatorオブジェクトが同一のトランザクションと関連付けられている場合はCORBA_TRUEを返します。そうでない場合はCORBA_FALSEを返します。基本的にトップレベルトランザクションとその下位にある中継トランザクションは同一のトランザクションとみなすのでCORBA_TRUEが返ります。逆にトップレベルトランザクションとサブトランザクションは別のトランザクションとみなすのでCORBA_FALSEが返ります。
戻り値 同一トランザクションであるかどうかを示すブーリアン値を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.5. is_ancestor_transaction

名称 is_ancestor_transaction - 祖先のトランザクションかどうかを調査する
形式
 #include "CosTransactions.h"
CORBA::Boolean CosTransactions::Coordinator::is_ancestor_transaction( CosTransactions::Coordinator_ptr tc, CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションが、引数で指定されたCoordinatorオブジェクトに関連付けられたトランザクションの祖先である場合はCORBA_TRUEを返します。そうでない場合はCORBA_FALSEを返します。トランザクションT1、T2について、T1とT2が同じである、あるいはT1がT2の親の祖先である場合、T1はT2の祖先となります。
戻り値 祖先のトランザクションであるかどうかを示すブーリアン値を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.6. is_descendant_transaction

名称 is_descendant_transaction - 子孫のトランザクションかどうかを調査する
形式
 #include "CosTransactions.h"
CORBA::Boolean CosTransactions::Coordinator::is_descendant_transaction( CosTransactions::Coordinator_ptr tc, CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションが、引数で指定されたCoordinatorオブジェクトに関連付けられたトランザクションの子孫である場合はCORBA_TRUEを返します。そうでない場合はCORBA_FALSEを返します。トランザクションT1、T2について、T2がT1の先祖である場合、T1はT2の子孫となります。
戻り値 孫のトランザクションであるかどうかを示すブーリアン値を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.7. is_related_transaction

名称 is_related_transaction - 関連するトランザクションかどうかを調査する
形式
 #include "CosTransactions.h"
CORBA::Boolean CosTransactions::Coordinator::is_related_transaction( CosTransactions::Coordinator_ptr tc, CORBA::Environment& env = Ob_default_environment() );
説明 引数で指定されたCoordinatorオブジェクトに関連付けられたトランザクションが、このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションと親類関係がある場合はCORBA_TRUEを返します。そうでない場合はCORBA_FALSEを返します。トランザクションT1、T2について、T3がT1の先祖で、かつT3がT2の先祖であるようなトランザクションT3が存在する場合、T1はT2と親類関係があるとなります。
戻り値 関連するトランザクションであるかどうかを示すブーリアン値を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.8. is_top_level_transaction

名称 is_top_level_transaction - トップレベルトランザクションかどうかを調査する
形式
 #include "CosTransactions.h"
CORBA::Boolean CosTransactions::Coordinator::is_top_level_transaction( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションがトップレベルである場合はCORBA_TRUEを返します。そうでない場合はCORBA_FALSEを返します。
戻り値 トップレベルトランザクションであるかどうかを示すブーリアン値を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.9. hash_transaction

名称 hash_transaction - 自トランザクションのハッシュコードを取得する
形式
 #include "CosTransactions.h"
CORBA::ULong CosTransactions::Coordinator::hash_transaction( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションのハッシュコードを取得します。
戻り値 CORBA::ULong型のハッシュコードを返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.10. hash_top_level_tran

名称 hash_top_level_tran - トップレベルトランザクションのハッシュコードを取得する
形式
 #include "CosTransactions.h"
CORBA::ULong CosTransactions::Coordinator::hash_top_level_tran( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションのトップであるトランザクションのハッシュコードを取得します。ただしこれがトップレベルトランザクションである場合はCosTransactions::Coordinator::hash_transactionと同様の処理を実施します。
戻り値 CORBA::ULong型のハッシュコードを返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.11. register_resource

名称 register_resource - Resourceオブジェクトを登録する
形式
 #include "CosTransactions.h"
CosTransactions::RecoveryCoordinator_ptr CosTransactions::Coordinator::register_resource( CosTransactions::Resource_ptr r, CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションに、引数で指定されたResourceオブジェクトを登録します。同一のResourceオブジェクトを複数登録することはできません。またトランザクションがコミット、あるいはロールバック処理を開始してしまった後にこの処理を実行すると登録に失敗します。さらにロールバックオンリーにマーク付けされている場合も失敗します。これらのResourceオブジェクトは、トランザクションの一部として実行した更新をコミット、あるいはロールバックするための処理要求を受けることになります。実際の処理はResourceインタフェースの各メソッド内で記述します。
戻り値 CosTransactions::RecoveryCoordinatorオブジェクトを返します。
エラー CORBA標準例外または次の例外がthrowされます。

CosTransactions::Inactive トランザクションが既にコミット処理を開始しています。
関連項目 ありません。

   
4.6.1.5.12. register_synchronization

名称 register_synchronization - Synchronizationオブジェクトを登録する
形式
 #include "CosTransactions.h"
void CosTransactions::Coordinator::register_synchronization( CosTransactions::Synchronization_ptr sync, CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションに、引数で指定されたSynchronizationオブジェクトを登録します。
同一のSynchronizationオブジェクトを複数登録することはできません。またトランザクションがコミット、あるいはロールバック処理を開始してしまった後にこの処理を実行すると登録に失敗します。さらにロールバックオンリーにマーク付けされている場合も失敗します。Synchronizationオブジェクトは、トランザクションに登録されているResource群にprepare処理要求が出される直前、あるいは2フェーズコミットが完了した直後に、アプリケーション側で独自の処理を実行したい場合に使用します。WebOTX Transaction ServiceではSynchronizationの機能をサポートしているので、CosTransactions::SynchronizationUnavailable例外はthrowしません。
戻り値 ありません。
エラー CORBA標準例外または次の例外がthrowされます。

CosTransactions::Inactive トランザクションが既にコミット処理を開始しています。
関連項目 ありません。

   
4.6.1.5.13. register_subtran_aware

名称 register_subtran_aware - SubtransactionAwareResourceオブジェクトを登録する
形式
 #include "CosTransactions.h"
void CosTransactions::Coordinator::register_subtran_aware( CosTransactions::SSubtransactionAwareResource_ptr r, CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションに、引数で指定されたSubtransactionAwareResourceオブジェクトを登録します。
同一のSubtransactionAwareResourceオブジェクトを複数登録することはできません。
また、このトランザクションがサブトランザクションでない場合は登録に失敗します。さらにこのサブトランザクションがコミット、あるいはロールバック処理を終了してしまった後、あるいはロールバックオンリーにマーク付けされた後にこの処理を実行すると登録に失敗します。

このメソッドでは、引数で指定した SubtransactionAwareResourceオブジェクトをサブトランザクションにしか登録しないことに注意してください。トランザクションに、SubtransactionAwareResourceとしてではなく、Resourceオブジェクトとして登録する場合は、CosTransactions::Coordinator::register_resourceメソッドで別に登録する必要があります。
戻り値 ありません。
エラー CORBA標準例外または次の例外がthrowされます。

CosTransactions::Inactive トランザクションが既にコミット処理を開始しています。
CosTransactions::NotSubtransaction このトランザクションはサブトランザクションではありません。
関連項目 ありません。

   
4.6.1.5.14. rollback_only

名称 rollback_only - ロールバックオンリーをマーク付けする
形式
 #include "CosTransactions.h"
void CosTransactions::Coordinator::rollback_only( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションに対してロールバックオンリーをマーク付けします。これによって、このトランザクションがコミットされることはなくなり、最終的にはロールバックしかされなくなります。このトランザクションがコミット、あるいはロールバック処理を開始してしまった後にこの処理を実行すると失敗します。
戻り値 ありません。
エラー CORBA標準例外または次の例外がthrowされます。

CosTransactions::Inactive トランザクションが既にコミット処理を開始しています。
関連項目 ありません。

   
4.6.1.5.15. get_transaction_name

名称 get_transaction_name - トランザクション名を取得する
形式
 #include "CosTransactions.h"
char* CosTransactions::Coordinator::get_transaction_name( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションを表現するプリンタブルな名前を取得します。
戻り値 トランザクション名を表す文字列を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。

   
4.6.1.5.16. create_subtransaction

名称 create_subtransaction - 新しいサブトランザクションを生成する
形式
 #include "CosTransactions.h"
CosTransactions::Control_ptr CosTransactions::Coordinator::create_subtransaction( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクションが親となるような、新しいサブトランザクションを生成します。
親となるトランザクションがコミット、あるいはロールバック処理を開始してしまった後にこの処理を実行した場合、またはロールバックオンリーに既にマーク付けされた場合にこの処理を実行すると生成に失敗します。
尚、WebOTX Transaction Serviceについては、リカバリサーバではサブトランザクションをサポートしています。そのため、リカバリサーバを利用してトランザクションの制御を行う場合は、CosTransactions::SubtransactionsUnavailable例外はthrowしません。
戻り値 サブトランザクションと関連付けられたControlオブジェクトを返します。
エラー CORBA標準例外または次の例外がthrowされます。

CosTransactions::Inactive 親となるトランザクションが既にコミット処理を開始しています。
関連項目 ありません。

   
4.6.1.5.17. get_txcontext

名称 get_txcontext - PropagationContext構造体を取得する
形式
 #include "CosTransactions.h"
CosTransactions::PropagationContext_ptr CosTransactions::Coordinator::get_txcontext( CORBA::Environment& env = Ob_default_environment() );
説明 このメソッドを呼び出す際に使用しているCoordinatorオブジェクトに関連付けられたトランザクション内で管理しているPropagationContext構造体を返却します。
尚、WebOTX Transaction ServiceではCosTransactions::Unavailable例外はthrowしません。
戻り値 PropagationContext構造体を返します。
エラー CORBA標準例外がthrowされます。
関連項目 ありません。