4.6.1.2. TransactionFactoryインタフェース

TransactionFactoryインタフェースは、トランザクションを開始する際に使用するためのオブジェクトインタフェースです。

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

create トップレベルトランザクションを生成する
recreate 中継トランザクションを生成する

   
4.6.1.2.1. create

名称 create - トップレベルトランザクションを生成する
形式
 #include "CosTransactions.h"
CosTransactions::Control_ptr CosTransactions::TransactionFactory::create( CORBA::ULong time_out, CORBA::Environment& env = Ob_default_environment() );
説明 新しいトップレベルトランザクションを生成します。
戻り値であるControlオブジェクトを使用することで、新しいトランザクションに関する管理や制御が可能となります。

time_outには新しく生成するトップレベルトランザクションのタイムアウト時間を指定します。そのトランザクションが開始されてtime_out秒経過しても完了していない場合、自動的にロールバックします。ただし、既にコミット処理を実施している場合はロールバックは実行しません。また、time_outに0を指定した場合はタイムアウトは発生しません。
戻り値 Controlオブジェクトのオブジェクトリファレンスを返します。
エラー CORBA標準例外がthrowされます。
関連項目

   
4.6.1.2.2. recreate

名称 recreate - 中継トランザクションを生成する
形式
 #include "CosTransactions.h"
CosTransactions::Control_ptr CosTransactions::TransactionFactory::recreate( CosTransactions::PropagationContext_ptr ctx, CORBA::Environment& env = Ob_default_environment() );
説明 新しい中継トランザクションを生成します。
戻り値であるControlオブジェクトを使用することで、新しい中継トランザクションに関する管理や制御が可能となります。

ctxには、上位トランザクションに関する情報を格納したPropagationContext構造体を指定します。
このトランザクションが、開始されてからPropagationContextのメンバであるtimeoutが示すタイムアウト時間(単位:秒)を経過しても完了していない場合、自動的にロールバックオンリーをマーク付けた状態にし、一連のトランザクションが最終的にはロールバックされるようにします。ロールバックは上位のトランザクションから発行されるかあるいは運用管理ツールから強制的に実行されるかのいずれかです。ただし、既にコミット処理を実施している場合はこの処理は実行しません。タイムアウト時間に0が指定されている場合はタイムアウトは発生しません。
戻り値 Controlオブジェクトのオブジェクトリファレンスを返します。
エラー CORBA標準例外がthrowされます。
関連項目