トランザクションサービス定義
形式
set形式
set trn_tran_process_count=同時に起動するトランザクションブランチの数
〔set trn_recovery_process_count=並行回復プロセス数〕
〔set trn_expiration_time=トランザクションブランチ限界経過時間〕
〔set trn_expiration_time_suspend=Y|N|F〕
〔set trn_tran_statistics=Y|N〕
〔set trn_tran_recovery_list=Y|N〕
〔set trn_cpu_time=トランザクションブランチCPU監視時間〕
〔set trn_statistics_item=統計情報項目〔,統計情報項目〕…〕
〔set trn_max_subordinate_count=最大子トランザクションブランチ数〕
〔set trn_rm_open_close_scope=process|transaction〕
〔set trn_optimum_item=トランザクション最適化項目
〔,トランザクション最適化項目〕…〕
〔set trn_processing_in_rm_error=down|retry|force〕
〔set trn_recovery_list_remove=normal|force|no〕
〔set trn_recovery_list_remove_level=未決着トランザクション情報
ファイルの削除レベル〕
〔set trn_crm_use=Y|N〕
〔set trn_max_crm_subordinate_count=最大CRM経由
子トランザクションブランチ数〕
〔set trn_watch_time=トランザクション同期点処理時の最大通信待ち時間〕
〔set trn_rollback_information_put=no|self|remote|all〕
〔set trn_limit_time=トランザクションブランチ最大実行可能時間〕
〔set trn_rollback_response_receive=Y|N〕
〔set trn_partial_recovery_type=type1|type2|type3〕
〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕
〔set trn_recovery_failmsg_interval=仕掛中トランザクション情報
メッセージ間隔最小時間〕
〔set trn_wait_rm_open=continue|stop|retry_continue|retry_stop〕
〔set trn_retry_interval_rm_open=xa_open関数発行リトライ
インタバル時間〕
〔set trn_retry_count_rm_open=xa_open関数発行リトライ回数〕
〔set thread_stack_size=OpenTP1内部で使用するスレッドスタック領域
のサイズ〕
〔set polling_control_data=Y|N〕
〔set thread_yield_interval=ソケットの再利用指示を受信できる契機を
与えるインタバル時間〕
〔set groups=グループ識別子〔,グループ識別子〕…〕
〔set trn_xar_use=Y|N〕
〔set trn_start_recovery_mode=stop|wait|continue〕
〔set trn_start_recovery_watch_time=リトライ経過時間〕
〔set trn_start_recovery_interval=リトライ間隔時間〕
〔set trn_xa_commit_error=down|force〕
〔set trn_prf_event_trace_level=TRNイベントトレースの取得レベル〕
〔set trn_prf_event_trace_condition=トレース取得種類
〔,トレース取得種類〕〕
〔set trn_completion_limit_time=トランザクション完了限界時間〕
〔set trn_extend_function=トランザクションサービスの機能の拡張レベル〕
〔set trn_rcv_open_close_scope=Y|N〕
〔set watch_time=最大応答待ち時間〕
コマンド形式
trnstring -n リソースマネジャ名
〔-i リソースマネジャ拡張子〔,リソースマネジャ拡張子〕…〕
〔-o "トランザクションサービス用xa_open関数用文字列"〕
〔-c "トランザクションサービス用xa_close関数用文字列"〕
〔-O "ユーザサーバ用xa_open関数用文字列"〕
〔-C "ユーザサーバ用xa_close関数用文字列"〕〔-d〕
〔-e〕〔-m〕〔-r〕〔-s〕
putenv形式
{{〔putenv 環境変数名 環境変数値〕}}
dcputenv形式
{{〔dcputenv 環境変数名 環境変数値〕}}
機能
トランザクション管理をするための実行環境を定義します。
説明
set形式のオペランド
●trn_tran_process_count=同時に起動するトランザクションブランチの数
~〈符号なし整数〉((1~8192※))
同時に起動するトランザクションブランチの数を指定します。
トランザクション処理を実行するユーザサーバプロセス数,回復プロセス数,および回復処理を待っているトランザクションブランチ数の総数を指定します。
トランザクションブランチを発生させたユーザサーバプロセスが異常終了した場合,回復プロセスがほかのトランザクションブランチの決着を処理中のとき,このトランザクションブランチは回復処理を待っている状態になります。この状態が長く続くと起動できるトランザクションブランチ数が少なくなることがあります。
このため,異常終了後にトランザクションブランチを発生できるユーザサーバプロセスの扱いや,異常発生の頻度などを考慮してトランザクションブランチ数を設定する必要があります。指定数の目安を次に示します。
(トランザクション実行するユーザサーバプロセス数+回復プロセス数)
<指定するトランザクションブランチ数
≦(トランザクション実行するユーザサーバプロセス数×2+回復プロセス数)
なお,指定数が多くなればなるほどメモリ資源の効率が悪くなるので注意してください。
●trn_recovery_process_count=並行回復プロセス数
~〈符号なし整数〉((1~128))《4》
トランザクションブランチが異常終了した時に,トランザクションブランチの回復処理を並行してできる数を指定します。
トランザクションブランチが異常終了した場合は,ここで指定した数だけ並行してトランザクションブランチの回復処理をします。
●trn_expiration_time=トランザクションブランチ限界経過時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの処理を監視する限界経過時間を指定します。指定時間を超えた場合は,このトランザクションブランチのプロセスは異常終了して,ロールバックされます。0を指定した場合は,時間監視しません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
また,これらの定義のほかに関数を発行して監視時間を指定することもできます。
関数の詳細については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_expiration_timeオペランドを指定する必要があります。
●trn_expiration_time_suspend=Y|N|F
~《N》
トランザクションブランチの処理を監視するとき,次の処理時間も監視時間に含むかどうかを指定します。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
このオペランドと各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_expiration_time_suspendオペランドを指定する必要があります。
●trn_tran_statistics=Y|N
~《N》
トランザクションブランチごとの統計情報を取得するかどうかを指定します。
Yを指定した場合,OpenTP1システムの起動後から停止までの間,ユーザサービス定義のtrn_statistics_itemオペランドで,nothing以外を指定されたユーザサーバが実行したトランザクションブランチの統計情報を取得します。
統計情報の取得開始または終了は,trnsticsコマンドでも指示できます。その場合このオペランドの指定は無効となります。
統計情報を取得する場合,取得情報の種類が多くなるほど,トランザクション性能が低下します。そのため,統計情報の取得は,システムチューニング時やトラブル調査時など,トランザクション性能に影響を与えてもかまわない場合だけにしてください。
●trn_tran_recovery_list=Y|N
~《N》
OpenTP1システムの全面回復時に,未決着トランザクション情報を取得するかどうかを指定します。OpenTP1は,システムの全面回復のたびに$DCDIR/spool/dctrninfの下にファイルを作成して,この情報を出力します。不要となったファイルは削除してください。
●trn_cpu_time=トランザクションブランチCPU監視時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。0を指定した場合は,時間監視しません。指定時間を超えた場合は,該当するトランザクションブランチのプロセスを異常終了し,ロールバックします。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_cpu_timeオペランドを指定する必要があります。
●trn_statistics_item=統計情報項目〔,統計情報項目〕…
~《executiontime》
トランザクションブランチの統計情報を取得する項目を指定します。
nothingの指定は,一つしかできません。また,nothingとほかの統計情報項目を同時に指定した場合,nothingの指定は無効になります。
トランザクションに関する統計情報を取得するときは次のどれかを指定してください。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_statistics_itemオペランドを指定する必要があります。
●trn_max_subordinate_count=最大子トランザクションブランチ数
~〈符号なし整数〉((0~1024))《32》
OpenTP1下の一つのトランザクションブランチから生成する子トランザクションブランチの最大数を指定します。この最大数は,一つのトランザクションブランチから発行するdc_rpc_call関数(ただし,呼び先で更新処理,またはUJ出力する)の最大数です。
●trn_rm_open_close_scope=process|transaction
~《process》
OpenTP1以外が提供しているリソースマネジャに対して,XAインタフェースである二つの関数(xa_open関数とxa_close関数)の発行タイミングを指定します。
processを指定した場合は,dc_rpc_open関数の発行からdc_rpc_close関数の発行まで,リソースマネジャの資源を占有します。したがって,トランザクションの性能を重視する場合はprocessを指定してください。
また,transactionを指定した場合は,トランザクションの開始と終了ごとにxa_open関数,xa_close関数を発行します。したがって,リソースマネジャの資源を有効利用したい場合は,transactionを指定してください。
なお,このオペランドは,ユーザサービス定義およびユーザサービスデフォルト定義にも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
●trn_optimum_item=トランザクション最適化項目〔,トランザクション最適化項目〕…
~《base》
複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を,次の文字列で指定します。
トランザクション最適化項目は,重複して指定できます。ただし,優先順位は次のようになります(1.>2.)。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_optimum_itemオペランドを指定する必要があります。
●trn_processing_in_rm_error=down|retry|force
~《down》
トランザクション回復サービスによるトランザクションの回復時に,リソースマネジャに対して発行したXA関数(xa_commit関数,xa_forget関数,xa_rollback関数)が処理を続行できないコード(XAER_INVAL(-5),XAER_PROTO(-6))でエラーリターンした場合のOpenTP1の処置を指定します。
このような障害は,次のような場合に発生し,ほかのリソースと不整合になっているおそれがあります。
このような障害が発生した場合は,KFCA00907-EおよびKFCA00908-Eのメッセージを出力します。
このオペランドは,障害発生時に処置を決定できるよう,オンライン中に変更できます。そのため,システム開始時にはretryを指定しておき,障害発生時に障害となったリソースマネジャに必要な処置をしたあと,指定をforceに変更するというような運用ができます。
●trn_recovery_list_remove=normal|force|no
~《no》
OpenTP1開始時に,未決着トランザクション情報ファイルを削除するかどうかを指定します。
●trn_recovery_list_remove_level=未決着トランザクション情報ファイルの削除レベル
~〈符号なし整数〉((0~24855))《0》(単位:日)
未決着トランザクション情報ファイルの削除レベルを指定します。このオペランドは,trn_recovery_list_removeオペランドでnormalまたはforceを指定した場合に有効です。
●trn_crm_use=Y|N
~《N》
通信リソースマネジャ(CRM)を使用するかどうかを指定します。
●trn_max_crm_subordinate_count=最大CRM経由子トランザクションブランチ数
~〈符号なし整数〉((0~1024))《8》
OpenTP1下の一つのトランザクションブランチから生成される,CRM経由のRPCの最大数を指定します。
●trn_watch_time=トランザクション同期点処理時の最大通信待ち時間
~〈符号なし整数〉((1~65535))《120》(単位:秒)
トランザクションの同期点処理で,トランザクションブランチ間で行う通信(プリペア,コミット,ロールバック指示,または応答など)の受信待ち時間の最大値を指定します。
指定時間を過ぎても指示または応答がない場合は,該当するトランザクションブランチが2相コミットの1相目完了前であればロールバックさせ,1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。
このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
これらのすべての定義でこのオペランドを省略した場合,トランザクションを行ったユーザサーバのwatch_timeの値を仮定します。ただし,trn_watch_timeには0秒を指定できないため,ユーザサーバのwatch_timeに0秒を指定した場合はtrn_watch_timeのデフォルト値である120秒を仮定します。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_watch_timeオペランドを指定する必要があります。
●trn_rollback_information_put=no|self|remote|all
~《no》
トランザクションブランチがロールバックした場合に,ロールバック要因に関する情報をログに取得するかどうかを指定します。
このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_rollback_information_putオペランドを指定する必要があります。
このオペランドによって得たログを使用することで障害調査が容易になります。したがって,このオペランドにnoを指定しているか,または何も指定していない場合は,このオペランドにallを指定することをお勧めします。
●trn_limit_time=トランザクションブランチ最大実行可能時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの最大実行可能時間を指定します。
トランザクションブランチを開始してから同期点処理が終了するまでの時間が,このオペランド指定時間を超えないようにdc_rpc_call関数,dc_rpc_poll_any_replies関数および同期点処理内で行う通信のタイムアウト時間を次のように自動設定します。
上記の受信待ち以外の処理で時間が掛かった場合は,このオペランド指定時間以内にトランザクションブランチが終了しないことがあります。
同期点処理開始前にこのオペランドの指定時間が経過した場合,そのトランザクションはロールバックします。
0を指定した場合は,時間監視をしません。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_limit_timeオペランドを指定する必要があります。
●trn_rollback_response_receive=Y|N
~《Y》
RPC先トランザクションブランチにロールバック指示を送信したあと,ロールバック完了通知を受信するかどうかを指定します。
Nを指定した場合,RPC先トランザクションブランチからのロールバック完了通知を受信しないで(RPC先トランザクションブランチのロールバック処理の完了を待たないで)自トランザクションブランチを終了します。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_rollback_response_receiveオペランドを指定する必要があります。
●trn_partial_recovery_type=type1|type2|type3
~《type1》
UAP障害時のトランザクション同期点処理方式を指定します。
RPCがタイムアウトし,RPC発行先プロセスのアドレスが未解決の場合やトランザクション実行中のUAPがダウンした場合に,トランザクションブランチ間の連絡がスムーズにできないで,トランザクションの決着に時間が掛かることがあります。
このオペランドでは,次に示す障害が発生した場合のトランザクション同期点処理方式を,指定値に示す三つの方式から選択して指定します。
次に示す場合,このオペランドにtype2またはtype3を指定しても,トランザクションの決着に時間が掛かることがあります。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアント環境定義またはクライアントサービス定義のtrn_partial_recovery_typeオペランドを指定する必要があります。
●max_socket_descriptors=ソケット用ファイル記述子の最大数
~〈符号なし整数〉((32~2032))
OpenTP1制御下のプロセス※でのソケット用に使用するファイル記述子の最大数を指定します。
OpenTP1制御下のプロセス※は,システムサーバやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため,同時に稼働するUAPプロセスの数,および通信する他ノードの数によって,このオペランドを変更する必要があります。
ソケット用ファイル記述子の最大数の算出式を,次に示します。
このオペランドの指定が小さいと,OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eメッセージを出力して異常終了します。
ここで指定を省略した場合,システム共通定義の値を仮定します。
●trn_recovery_failmsg_interval=仕掛中トランザクション情報メッセージ間隔最小時間
~〈符号なし整数〉((0~65535))《1800》(単位:秒)
KFCA00960-Iメッセージを出力する間隔を指定します。
トランザクションを回復できなかった際,以前にKFCA00960-Iメッセージを出力してからこのオペランドの指定時間が経過した場合には,再びメッセージを出力します。ただし次の場合はすぐに出力します。
指定値が0の場合にはKFCA00960-Iメッセージを出力しません。
複数のトランザクションブランチを回復している場合は,このオペランドはそれぞれのトランザクションブランチに適用されます。同一のトランザクションブランチのメッセージだけが,このオペランドで指定された間隔で出力されます。
なお,1回のトランザクションの回復失敗で,KFCA00960-Iメッセージが2個以上出力される場合があります。これは,回復失敗の要因が複数存在するためです。KFCA00960-Iメッセージは,KFCA00990-Iメッセージよりもあとに出力される場合があります。
●trn_wait_rm_open=continue|stop|retry_continue|retry_stop
~《continue》
OpenTP1起動時に,OpenTP1以外が提供するリソースマネジャのオープン処理(xa_open関数)でエラーが発生したときの処置を指定します。
●trn_retry_interval_rm_open=xa_open関数発行リトライインタバル時間
~〈符号なし整数〉((1~3600))《10》(単位:秒)
trn_wait_rm_openオペランドでretry_continueかretry_stopを指定したときのxa_open関数発行リトライをする間隔を指定します。
●trn_retry_count_rm_open=xa_open関数発行リトライ回数
~〈符号なし整数〉((1~65535))《18》
trn_wait_rm_openオペランドでretry_continueかretry_stopを指定したときのxa_open関数発行リトライをする回数を指定します。
●thread_stack_size=OpenTP1内部で使用するスレッドスタック領域のサイズ
~〈符号なし整数〉((1024~524288))《49152※》(単位:バイト)
OpenTP1の内部で使用するスレッドスタック領域のサイズを指定します。リソースマネジャ監視サービスのスレッドスタック領域は262144バイトに拡張されているため,XA連携するリソースマネジャで262144バイト以上のスレッドスタック領域が必要な場合だけ指定してください。このオペランドを指定した場合のメモリ使用量の算出式を次に示します。
●polling_control_data=Y|N
~《N》
トランザクションリカバリデーモンで,トランザクション回復要求の受信待ちの状態のときに,定期的に待ち状態に割り込んで,一時クローズ処理要求が到着していないかどうかを検査することを指示します。
●thread_yield_interval=ソケットの再利用指示を受信できる契機を与えるインタバル時間
~〈符号なし整数〉((1~86400))《90》(単位:秒)
トランザクションリカバリデーモンで,トランザクション回復要求の受信待ちの状態のときに,定期的に待ち状態に割り込んで,一時クローズ処理要求が到着していないかどうかを検査する場合の検査インタバル時間を秒単位で指定します。
また,トランザクション回復要求を待つことなく次々にトランザクション回復要求を受け付けている場合には,連続してトランザクション回復要求を受け付けた時間が一定時間を超えたところで,一時クローズ処理要求が到着していないかどうかを検査します。このオペランドは,このインタバル値としても使用されます(連続してトランザクション回復要求を受け付けた時間がこのオペランド指定値を超えたときの一時クローズ処理要求到着検査には,シグナルによる割り込みは発生しません)。
このオペランドの指定値は,一時クローズ処理要求を送信したプロセスが応答を待つ時間(180秒:ipc_sockctl_watchtimeオペランドのデフォルト値)よりも小さい値を設定する必要があります。
トランザクション回復要求待ち状態に割り込んで,一時クローズ処理要求受信を検査する機能は,polling_control_dataオペランドにYを指定した場合にだけ動作します。連続してトランザクション回復要求を受け付けたときに一時クローズ処理要求受信を検査する機能は,polling_control_dataオペランドの指定に関係なく,動作します。
このオペランドに最大値を指定した場合は,polling_control_dataオペランドの指定に関係なく,一時クローズ処理要求が到着していないかどうかの検査を実行しません。
●groups=グループ識別子〔,グループ識別子〕
~〈符号なし整数〉((0~4294967294))
このサービスグループのグループアクセスリストを設定します。
OSに登録されているグループIDを指定してください。このオペランドには16個まで指定できます。
このオペランドの指定に関係なく,OpenTP1管理者のグループIDはsetgid()システムコールによって自動的に設定されます。
最大値はOSに依存するので,使用しているOSのマニュアルを参照してください。
●trn_xar_use=Y|N
~《N》
XAリソースサービスを使用するかどうかを指定します。XAリソースサービスを使用する場合,XAリソースサービス定義で実行環境を定義する必要があります。また,システム共通定義のjnl_fileless_optionオペランドにYを指定している場合は,XAリソースサービスを使用できません。
●trn_start_recovery_mode=stop|wait|continue
~《stop》
trnstring定義コマンドで-mオプションを指定したリソースマネジャのOpenTP1開始処理でのトランザクション回復処理方式を指定します。このオペランドは再開始時に変更または削除できます。
●trn_start_recovery_watch_time=リトライ経過時間
~〈符号なし整数〉((0~65535))《600》(単位:秒)
trnstring定義コマンドで-mオプションを指定した場合の,オンライン前回復処理が完了するまでのリトライ上限時間を指定します。0を指定した場合は,リトライをしません。このオペランドは,trn_start_recovery_modeオペランドでwait以外を指定した場合に有効です。このオペランドは再開始時に変更または削除できます。
●trn_start_recovery_interval=リトライ間隔時間
~〈符号なし整数〉((0~65535))《3》(単位:秒)
trnstring定義コマンドで-mオプションを指定した場合の,オンライン前回復処理が完了するまでのリトライ間隔時間を指定します。0を指定した場合は,すぐに次のリトライ処理を行います。trn_start_recovery_watch_timeオペランドで0を指定した場合は,このオペランドで指定した値は無効になります。このオペランドは再開始時に変更または削除できます。
●trn_xa_commit_error=down|force
~《down》
複数のリソースをアクセスするトランザクションがコミットに決定したあと,コミットできなくなったリソースマネジャが発生した場合※の処理を指定します。
この現象が発生した場合,該当トランザクションでアクセスしたリソース間の整合性は失われているおそれがあります。
●trn_prf_event_trace_level=TRNイベントトレースの取得レベル
~((00000000~00000007))《00000007》
TRNイベントトレースの取得レベルを指定します。このオペランドは,イベントトレースの取得機能を制御します。このオペランドの指定を省略した場合は,入口情報,正常出口情報,およびエラー出口情報をトレースとして取得します。TRNイベントトレースの詳細については,マニュアル「OpenTP1 解説」のトレース機能の記述を参照してください。
これらの指定値は,論理和でも指定できます。例えば,00000003を指定すると,00000001と00000002の両方を指定したときと同じ動作になります。
取得したトレースをファイル出力または編集出力するには,prfgetコマンド,prfedコマンド,またはdcalzprfコマンドを使用します。ファイルの出力結果は,$DCDIR/spool/dctrninf/trace/prfに保存されます。これらのコマンドの詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
このオペランドの使用は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。
●trn_prf_event_trace_condition=トレース取得種類〔,トレース取得種類〕
~《xafunc》
取得するTRNイベントトレースの種類を指定します。取得したいトレースによって,複数の種類を指定できます。このオペランドの指定を省略した場合は,XA関数についてのトレースを取得します。
なお,このオペランドは,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できませんので,ご了承ください。
●trn_completion_limit_time=トランザクション完了限界時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの開始から終了までの最大実行時間を指定します。指定時間を超えた場合,このトランザクションブランチのプロセスが異常終了したあとに,トランザクションブランチが回復プロセスによってコミットまたはロールバックのどちらかに決着して終了します。0を指定した場合は,トランザクションブランチの最大実行時間を監視しません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
このオペランドの監視対象区間は,dc_trn_begin関数などの呼び出しやサービス関数の開始によるトランザクションの開始から,トランザクションの同期点処理終了情報(TJ)の取得後であるトランザクションブランチの終了までです。ただし,トランザクションの最適化が行われた場合,サーバ側のトランザクションブランチに対する監視が終了するのは,クライアント側に応答を返したあとです。このオペランドの監視対象区間の詳細および各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
なお,このオペランドは,ユーザサービス定義またはrapリスナーサービス定義,およびユーザサービスデフォルト定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
トランザクショナルRPC実行プロセス(clttrnd)またはCUP実行プロセス(cltcond)で,この機能を有効にするには,クライアントサービス定義のtrn_completion_limit_timeオペランドを指定する必要があります。
また,子トランザクションブランチを処理しているプロセスが,サービス関数処理以外のタイミングでこのオペランドの指定時間を超えて異常終了した場合,RPCコールの呼び出し元は,応答待ち時間が満了するまで待ち合わせることがあります。
●trn_extend_function=トランザクションサービスの機能の拡張レベル
~〈16進数字〉((00000000~00000001))《00000000》
トランザクションサービスの機能の拡張レベルを,次の中から指定します。
次の指定値で示す機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。
関数 | リターン値 | |
---|---|---|
trn_extend_function=00000000の場合 | trn_extend_function=00000001の場合 | |
dc_trn_chained_commit (CBLDCTRN('C-COMMIT')) | DC_OK(00000) | DCTRNER_HAZARD(00904),DCTRNER_HAZARD_NO_BEGIN(00927) |
dc_trn_unchained_commit (CBLDCTRN('U-COMMIT')) | DC_OK(00000) | DCTRNER_HAZARD(00904) |
tx_commit (TXCOMMIT) | TX_OK(TX-OK) | TX_HAZARD(TX-HAZARD),TX_HAZARD_NO_BEGIN(TX-HAZARD-NO-BEGIN) |
dc_mcf_commit (CBLDCMCF('COMMIT')) | DCMCFRTN_00000(00000) | DCMCFRTN_HAZARD(70908) |
●trn_rcv_open_close_scope=Y|N
~《N》
複数のリソースマネジャにアクセスしていたトランザクションの回復処理で,XA関数(xa_open(),xa_commit(),xa_rollback(),xa_close())の発行順序を変更するかどうかを指定します。発行順序の変更は,OpenTP1システムに登録されたOpenTP1が提供するリソースマネジャを除く,すべてのリソースマネジャに対して行われます。一部のリソースマネジャの回復処理で発行されるxa_open()がエラーとなり,回復処理が正常に実行されない場合に指定します。
このオペランドの指定による,XA関数の発行順序の例を示します。
図3-6 グローバルトランザクションの回復処理の例
●watch_time=最大応答待ち時間
~〈符号なし整数〉((0~65535))(単位:秒)
RPCによってプロセス間で通信する場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。
OpenTP1の終了処理で,このオペランドで指定した時間だけ終了処理を待ち合わせる場合があります。したがって,大きな値を指定した場合,OpenTP1の終了処理に時間が掛かる場合があります。
指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。
0を指定した場合は,応答を受信するまで待ち続けます。0を指定した場合,OpenTP1が終了しない場合があります。
省略した場合は,システム共通定義のwatch_timeオペランドの値を仮定します。
このオペランドは,システム共通定義のwatch_timeオペランドのデフォルト値で使用してください。
特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。
システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。
コマンド形式
次ページ以降に記述しています。
putenv形式のオペランド
●環境変数名 環境変数値
~〈文字列〉
XAインタフェースでリソースマネジャと連携する場合に,トランザクション回復サービスおよびリソースマネジャ監視サービスがリソースマネジャにアクセスするために必要な環境変数を指定します。
指定する必要のある環境変数名と環境変数値はリソースマネジャによって異なります。
なお,OpenTP1では,'dc'で始まる環境変数名は使用しないでください。
dcputenv形式のオペランド
●環境変数名 環境変数値
~〈文字列〉
XAインタフェースでリソースマネジャと連携する場合に,トランザクション回復サービスおよびリソースマネジャ監視サービスがリソースマネジャにアクセスするために必要な環境変数を指定します。環境変数を指定した場合,その値も取得します。
指定する必要のある環境変数名と環境変数値はリソースマネジャによって異なります。
なお,OpenTP1では,'dc'で始まる環境変数名は使用しないでください。