名前
CosTransactions_Current_begin
形式
#include "orb.h" #include "CosTransactions.h" void CosTransactions_Current_begin( CosTransactions_Current current, CORBA_Environment *env);
機能説明
新しいトランザクションを作成します。
CosTransactions_Current_set_timeoutメソッドでタイムアウトを設定していない場合、運用環境ファイルのTRAN_TIME_OUTに指定されたタイムアウト時間が有効となります。
パラメタ
CORBA_ORB_resolve_initial_referencesメソッド (CORBA_ORB_ObjectId_TransactionCurrent)で取得したCurrentインタフェースのオブジェクトリファレンスを指定します。
例外情報を獲得するためにCORBA_Environment構造体を参照するポインタを指定します。
復帰値
正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONまたはCORBA_USER_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
ユーザ例外の場合、以下の詳細情報が設定されます。
ex_CosTransactions_SubtransactionsUnavailable:
ネストトランザクションを作成しようとしました。
システム例外の場合、以下の例外が発生します。
ex_CORBA_StExcep_NO_IMPLEMENT:
OTSシステムが起動されていません。
ex_CORBA_StExcep_COMM_FAILURE:
以下の原因が考えられます。
通信異常が発生した。
CORBAサービスの環境ファイルのinitial_hosts(PCの場合はinithost)のOTSシステムが存在するホストの情報が設定されていません。
OTSの提供するライブラリのリンク指定の順が、CORBAサービスの提供するライブラリより後に指定されています。
ex_CORBA_StExcep_NO_RESOURCES:
資源不足が発生しました。トランザクション最大数を超えた可能性があります。
ex_CORBA_StExcep_NO_MEMORY:
動的メモリの獲得に失敗しました。