1.3.8 トランザクション制御用オブジェクトファイルの作成
OpenTP1下で動作するUAPがトランザクション内でリソースマネジャにアクセスする場合,そのUAPにトランザクション制御用オブジェクトファイルとリソースマネジャが提供するXAインタフェース用オブジェクトファイルをリンケージする必要があります。
UAPが使用するリソースマネジャによって,トランザクション制御用オブジェクトファイルのリンケージ方法は次の3とおりあります。
- 〈この項の構成〉
(1) OpenTP1に登録されているすべてのリソースマネジャをアクセスする場合
OpenTP1が提供する標準トランザクション制御用オブジェクトファイルのdc_trn_allrm.o(dcsetupコマンド実行時に作成され,trnlnkrmコマンド実行時に再作成される$DCDIR/spool/trnrmcmd/userobj下のファイル)をリンケージします。
なお,trnlnkrmコマンドでリソースマネジャの登録状態を変更した場合,標準トランザクション制御用オブジェクトファイルをリンケージしているUAPは,再びリンケージする必要があります。
(2) OpenTP1に登録されている一部のリソースマネジャだけをアクセスする場合
trnmkobjコマンドでトランザクション制御用オブジェクトファイルを作成して,UAPにリンケージします。
なお,trnlnkrmコマンドでリソースマネジャの登録状態を変更した場合,トランザクション制御用オブジェクトを再作成し,UAPを再リンケージする必要があります。登録状態の変更には次のような変更も含みます。
-
リソースマネジャの種類を,動的リソースマネジャから静的リソースマネジャに変更
-
リソースマネジャの種類を,静的リソースマネジャから動的リソースマネジャに変更
(3) トランザクション内でリソースマネジャにアクセスしない場合
トランザクション制御用オブジェクトファイルをリンケージする必要はありません。
グローバルトランザクションを構成するすべてのUAPに,同じリソースマネジャをリンケージすると,コミット処理を最適化(プロセス間通信を抑止)できて,トランザクション性能が向上するケースがあります。トランザクションの最適化については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。