Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引


トランザクション関連定義

〈このページの構成〉

形式

set形式

  set trn_tran_process_count=同時に起動するトランザクションブランチの数
〔set trn_expiration_time=トランザクション処理監視時間〕
〔set trn_expiration_time_mi=MIトランザクション処理監視時間〕
〔set trn_expiration_time_me=MEトランザクション処理監視時間〕
〔set trn_expiration_time_mn=MNトランザクション処理監視時間〕
〔set trn_expiration_time_tm=TMトランザクション処理監視時間〕
〔set trn_expiration_time_e1=E1トランザクション処理監視時間〕
〔set trn_expiration_time_e2=E2トランザクション処理監視時間〕
〔set trn_expiration_time_e3=E3トランザクション処理監視時間〕
〔set trn_expiration_time_e4=E4トランザクション処理監視時間〕
〔set trn_expiration_time_es=ESトランザクション処理監視時間〕
〔set trn_expiration_time_er=ERトランザクション処理監視時間〕
〔set trn_expiration_time_rl=RLトランザクション処理監視時間〕
〔set trn_max_subordinate_count=子トランザクションブランチ最大数〕
〔set trn_optimum_item=トランザクション最適化項目〔,トランザクション最適化項目〕〕
〔set trn_watch_time=トランザクション同期点処理時の最大通信待ち時間〕
〔set trn_rollback_information_put=no|self|remote|all〕
〔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 trn_retry_interval_rm_open_mime=xa_open関数呼び出しリトライインタバル時間(MI,MEトランザクション用)〕
〔set trn_retry_count_rm_open_mime=xa_open関数呼び出しリトライ回数(MI,MEトランザクション用)〕
〔set trn_endprepare_msg_interval=終了時の仕掛り中トランザクション情報メッセージ出力間隔時間〕
〔set trn_delayed_allrecover=Y|N〕
〔set trn_recovery_failmsg_interval=仕掛り中トランザクション情報メッセージ間隔最小時間〕
〔set trn_endrerun_msg_interval=TP1/EE再開始時の仕掛りトランザクション情報メッセージ出力間隔時間〕
〔set trn_max_commit_count=コミット関数の呼び出し回数上限値〕
〔set trn_max_commit_downmode=P|T|N〕
〔set trn_max_rollback_count=ロールバック関数の呼び出し回数上限値〕
〔set trn_max_rollback_downmode=P|T|N〕
〔set trn_undelayed_recover_thread=Y|N〕
〔set trn_rm_open_close_scope=process|transaction〕
〔set lck_timeout_info=Y|N〕
〔set lck_limit_foruser=同時に発生する排他要求数の最大値〕
〔set lck_wait_timeout=排他待ち限界経過時間〕

コマンド形式

{{trnstring  -n  リソースマネジャ名
             〔-i  リソースマネジャ拡張子〔,リソースマネジャ拡張子〕…〕
             〔-o  "トランザクションサービス用xa_open関数用文字列"〕
             〔-c  "トランザクションサービス用xa_close関数用文字列"〕
             〔-O  "ユーザサービス用xa_open関数用文字列"〕
             〔-C  "ユーザサービス用xa_close関数用文字列"〕
             〔-r〕〔-x〕
                         }}

機能

トランザクション関連情報を定義します。

説明

各オペランドについて説明します。

set形式のオペランド

trn_tran_process_count=同時に起動するトランザクションブランチの数  〜〈符号なし整数〉((1〜8192))

同時に起動するトランザクションブランチの数を指定します。

トランザクション処理のRPC機能を使用する処理スレッド数(予備処理スレッド数,およびタイマ処理スレッド数に1を加えた値を含む),送信スレッド数,回復スレッド数,および回復処理を待っているトランザクションブランチ数の総数を指定します。

トランザクションブランチを起動した処理スレッドが異常終了した場合に,回復スレッドがほかのトランザクションブランチの決着を処理中のとき,異常終了した処理スレッドのトランザクションブランチは回復処理待ちの状態になります。回復処理待ちの状態が長く続くと,起動できるトランザクションブランチ数が少なくなることがあります。そのため,処理スレッドの異常終了後にトランザクションブランチを起動できる処理スレッドの扱いや,異常発生の頻度などを考慮して,trn_tran_process_countオペランドを指定してください。また,再開始時にスレッドを増加させるなどの運用をする場合は,スレッドの増加分を考慮して指定してください。指定数の目安を次に示します。

(トランザクション実行する処理スレッド数+送信スレッド数+回復スレッド数)<trn_tran_process_countオペランドの指定値

なお,同時に起動するトランザクションブランチが,trn_tran_process_countオペランドの指定数を超えて起動した場合,プロセスダウンします。

また,trn_tran_process_countオペランドの指定値が大きくなるほどメモリ資源の使用効率が悪くなるので注意してください。

このオペランドは省略できません。必ず指定してください。

trn_expiration_time=トランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))《60》(単位:秒)

トランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_timeオペランドに0を指定した場合は,時間監視しません。

trn_expiration_time_mi=MIトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

初期化トランザクションでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_miオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_miオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_me=MEトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

終了トランザクションでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_meオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_meオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_mn=MNトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

サービストランザクションでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_mnオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_mnオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_tm=TMトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

タイマトランザクションでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_tmオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_tmオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_e1=E1トランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRN1でのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_e1オペランドに0を指定した場合は,時間監視しません。trn_expiration_time_e1オペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_e2=E2トランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRN2でのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_e2オペランドに0を指定した場合は,時間監視しません。trn_expiration_time_e2オペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_e3=E3トランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRN3でのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_e3オペランドに0を指定した場合は,時間監視しません。trn_expiration_time_e3オペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_e4=E4トランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRN4でのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_e4オペランドに0を指定した場合は,時間監視しません。trn_expiration_time_e4オペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_es=ESトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRNSでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_esオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_esオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_er=ERトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

ERRTRNRでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_erオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_erオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_expiration_time_rl=RLトランザクション処理監視時間  〜〈符号なし整数〉((0〜65535))(単位:秒)

MCP後処理トランザクションでのトランザクション処理の監視時間を指定します。

監視時間が指定値を超えた場合は,プロセス関連定義のuapabend_downmodeオペランドの指定に従って異常終了します。

trn_expiration_time_rlオペランドに0を指定した場合は,時間監視しません。trn_expiration_time_rlオペランドを省略した場合は,トランザクション関連定義のtrn_expiration_timeオペランドの指定値をデフォルト値とします。

trn_max_subordinate_count=子トランザクションブランチ最大数  〜〈符号なし整数〉((0〜1024))《32》

TP1/EE下の一つのトランザクションブランチから生成する子トランザクションブランチの最大数を指定します。trn_max_subordinate_countオペランドの指定値は,一つのトランザクションブランチから呼び出すee_rpc_call関数の最大数です。

trn_optimum_item=トランザクション最適化項目〔,トランザクション最適化項目〕

複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を指定します。TP1/EEのトランザクション制御は2相コミットで実行しているため,二つのトランザクションブランチ間のコミットには,4回のプロセス間通信が必要になります。トランザクションを最適化すると,プロセス間通信を削減できます。

最適化項目は,次の文字列で指定します。複数の最適化項目を指定することもできます。

onephase

1相最適化をします。次の条件をすべて満たす場合,子トランザクションブランチのコミット処理だけで済むため,コミットで必要なプロセス間通信を2回削減できます。

  • クライアント側のトランザクションブランチにリンケージされているリソースマネジャが,動的登録をするリソースマネジャだけである

  • クライアント側のトランザクションブランチが,リソースマネジャへアクセスしていない

  • クライアント側のトランザクションブランチの子トランザクションブランチは一つ以下である

readonly

リードオンリー最適化をします。次の条件を満たす場合,子トランザクションブランチ側でリソースマネジャの更新処理をしていないため,2相目の処理が不要になり,コミットで必要なプロセス間通信を2回削減できます。

  • サーバ側のトランザクションブランチが,リソースの更新処理(参照処理は除く)をしていない

このオペランド省略時は,トランザクションの最適化をしません。

trn_watch_time=トランザクション同期点処理時の最大通信待ち時間  〜〈符号なし整数〉((1〜65535))《120》(単位:秒)

トランザクションの同期点処理で,トランザクションブランチ間で行う通信(プリペア,コミット,ロールバック,応答など)の受信待ち時間の最大値を指定します。

指定時間を過ぎても通信がない場合は,該当するトランザクションブランチが2相コミットの1相目完了前のときは,ロールバックします。1相目完了後のときは,トランザクションサービスの回復スレッドでトランザクション決着処理を再試行します。

trn_rollback_information_put=no|self|remote|all  〜《no》

トランザクションブランチがロールバックした場合に,ロールバック要因に関するメッセージをログに取得するかどうかを指定します。対象メッセージはKFSB80900-Iメッセージです。

no

KFSB80900-Iメッセージを取得しません。

self

ロールバック要因が発生したトランザクションブランチでだけ,KFSB80900-Iメッセージを取得します。

remote

ロールバック要因が発生したトランザクションブランチ,およびほかのトランザクションブランチからロールバック要求されたトランザクションブランチで,KFSB80900-Iメッセージを取得します。

all

remoteを指定した場合と同じです。

trn_wait_rm_open=continue|stop|retry_continue|retry_stop  〜《continue》

リソースマネジャのオープン処理(xa_open関数)で障害が発生した場合の処置を指定します。

continue

xa_open関数エラーを無視して処理を続行します。

stop

xa_open関数エラーが発生した場合,処理を中止します。

retry_continue

xa_open関数エラーが発生した場合,処理を中断し,trn_retry_interval_rm_openオペランドまたはtrn_retry_interval_rm_open_mimeオペランドで指定した間隔で,trn_retry_count_rm_openオペランドまたはtrn_retry_count_rm_open_mimeオペランドで指定した回数だけ,xa_open関数の呼び出しをリトライします。リトライしてもxa_open関数エラーが解消されない場合は,エラーを無視して処理を続行します。

retry_stop

xa_open関数エラーが発生した場合,処理を中断しtrn_retry_interval_rm_openオペランドまたはtrn_retry_interval_rm_open_mimeオペランドで指定した間隔で,trn_retry_count_rm_openオペランドまたはtrn_retry_count_rm_open_mimeオペランドで指定した回数だけ,xa_open関数の呼び出しをリトライします。リトライしてもxa_open関数エラーが解消されない場合は,処理を中止します。

trn_retry_interval_rm_open=xa_open関数呼び出しリトライインタバル時間  〜〈符号なし整数〉((1〜3600))《10》(単位:秒)

xa_open関数の呼び出しをリトライする間隔を指定します。

trn_retry_count_rm_open=xa_open関数呼び出しリトライ回数  〜〈符号なし整数〉((1〜65535))《18》

xa_open関数の呼び出しをリトライする回数を指定します。

trn_retry_interval_rm_open_mime=xa_open関数呼び出しリトライインタバル時間(MI,MEトランザクション用)  〜〈符号なし整数〉((1〜3600))《10》(単位:秒)

MIトランザクション,およびMEトランザクションの場合の,xa_open関数の呼び出しをリトライする間隔を指定します。

trn_retry_count_rm_open_mime=xa_open関数呼び出しリトライ回数(MI,MEトランザクション用)  〜〈符号なし整数〉((1〜65535))《18》

MIトランザクション,およびMEトランザクションの場合の,xa_open関数の呼び出しをリトライする回数を指定します。

trn_endprepare_msg_interval=終了時の仕掛り中トランザクション情報メッセージ出力間隔時間  〜〈符号なし整数〉((0〜3600))《180》(単位:秒)

TP1/EEの正常終了および計画停止A時に,仕掛り中トランザクションがある場合にメッセージを出力する間隔を指定します。仕掛り中トランザクションには,UAPを実行しないシステム系のトランザクションも含みます。

0を指定した場合は,メッセージを1回だけ出力します。

終了トランザクション(ME)完了後も,システム系のトランザクションが動作します。そのため,障害などでユーザが運用をする可能性があるシステム系のトランザクションについては,メッセージ出力の対象となります。

trn_endprepare_msg_intervalオペランドの指定値と,実際のメッセージ出力間隔とは,最大5秒の誤差が発生します。trn_endprepare_msg_intervalオペランドの指定値とメッセージ出力の関係を次に示します。

プロセス終了監視トランザクション起動間隔<trn_endprepare_msg_intervalオペランドの指定値<メッセージ出力間隔

trn_delayed_allrecover=Y|N  〜《Y》

TP1/EE再開始時のプロセスの回復方法を指定します。

Y

ディレード回復を使用して,プロセスを回復します。

N

アンディレード回復を使用して,プロセスを回復します。

trn_recovery_failmsg_interval=仕掛り中トランザクション情報メッセージ間隔最小時間  〜〈符号なし整数〉((0〜65535))《180》(単位:秒)

仕掛り中トランザクション情報メッセージ(KFSB40911-Wメッセージ)を出力する最小時間間隔を指定します。

0を指定した場合は,KFSB40911-Wメッセージを出力しません。

trn_endrerun_msg_interval=TP1/EE再開始時の仕掛りトランザクション情報メッセージ出力間隔時間  〜〈符号なし整数〉((0〜3600))《180》(単位:秒)

TP1/EE再開始時,仕掛り中トランザクションがある場合に,KFSB80902-Iメッセージを出力する間隔を指定します。

0を指定した場合は,1回だけKFSB80902-Iメッセージを出力します。

trn_endrerun_msg_intervalオペランドの指定値と,実際のメッセージ出力間隔とは,最大1秒の誤差が発生します。

trn_max_commit_count=コミット関数の呼び出し回数上限値  〜〈符号なし整数〉((0〜999999))《0》

トランザクション起動後にUAPをリターンするまでの,ee_trn_chained_commit関数の呼び出し回数の上限値を指定します。ee_trn_chained_commit関数の呼び出し回数が指定値に達した場合,トランザクション関連定義のtrn_max_commit_downmodeオペランドの指定に従って処理します。

trn_max_commit_countオペランドに0を指定するか,指定を省略した場合は,ee_trn_chained_commit関数の呼び出し回数をチェックしません。

trn_max_commit_downmode=P|T|N  〜《N》

コミット関数の呼び出し回数が上限値に達した場合の処理を指定します。

コミット関数とは,ee_trn_chained_commit関数のことです。上限値は,トランザクション関連定義のtrn_max_commit_countオペランドで指定します。

P

プロセスダウンします。

T

スレッドダウンします(UAPの非保護区内の場合だけ)。

N

KFSB50927-Eメッセージを出力します。

トランザクション関連定義のtrn_max_commit_countオペランドに0を指定するか,指定を省略した場合は,trn_max_commit_downmodeオペランドの指定は無効になります。

trn_max_rollback_count=ロールバック関数の呼び出し回数上限値  〜〈符号なし整数〉((0〜999999))《0》

トランザクション起動後にUAPをリターンするまでの,ee_trn_chained_rollback関数またはee_trn_rollback_mark関数の呼び出し回数の上限値を指定します。ee_trn_chained_rollback関数またはee_trn_rollback_mark関数の呼び出し回数が指定値に達した場合,トランザクション関連定義のtrn_max_rollback_downmodeオペランドの指定に従って処理します。

trn_max_rollback_countオペランドに0を指定するか,指定を省略した場合は,ee_trn_chained_rollback関数またはee_trn_rollback_mark関数の呼び出し回数をチェックしません。

trn_max_rollback_downmode=P|T|N  〜《N》

ロールバック関数の呼び出し回数が上限値に達した場合の処理を指定します。

ロールバック関数とは,ee_trn_chained_rollback関数またはee_trn_rollback_mark関数のことです。上限値は,トランザクション関連定義のtrn_max_rollback_countオペランドで指定します。

P

プロセスダウンします。

T

スレッドダウンします(UAPの非保護区内の場合だけ)。

N

KFSB50927-Eメッセージを出力します。

トランザクション関連定義のtrn_max_rollback_countオペランドに0を指定するか,指定を省略した場合は,trn_max_rollback_downmodeオペランドの指定は無効になります。

trn_undelayed_recover_thread=Y|N  〜《N》

プロセスダウン後のアンディレード回復処理に処理スレッドを使用するかどうかを指定します。回復スレッドだけではなく処理スレッドも使用することによって,アンディレード回復処理に掛かる時間を短縮できます。

Y

処理スレッドと回復スレッドの両方を使用してアンディレード回復を実行します。

N

回復スレッドだけを使用してアンディレード回復を実行します。

trn_undelayed_recover_threadオペランドは,trn_delayed_allrecoverオペランドにNを指定している場合だけ有効です。

trn_rm_open_close_scope=process|transaction  〜《process》

リソースマネジャに対して,XAインタフェースである二つの関数(xa_open関数とxa_close関数)の発行タイミングを指定します。

process

TP1/EE開始時にxa_open関数を発行し,TP1/EE終了時にxa_close関数を発行します。

transaction

トランザクション開始時にxa_open関数を発行し,トランザクション終了時にxa_close関数を発行します。

lck_timeout_info=Y|N  〜《Y》

排他待ちタイムアウト時にタイムアウト情報をメッセージに出力するかどうかを指定します。

Y

タイムアウト情報を出力します。

N

タイムアウト情報を出力しません。

lck_limit_foruser=同時に発生する排他要求数の最大値  〜〈符号なし整数〉((0〜327670))《0》

同時に発生する排他要求数の最大値を指定します。0を指定した場合,排他制御は使用できません。

lck_wait_timeout=排他待ち限界経過時間  〜〈符号なし整数〉((0〜327670))《0》(単位:10ミリ秒)

排他要求が待ち状態になってから解除されるまでの排他待ち時間を監視する限界経過時間を指定します。指定時間を経過しても待ち状態が解除されない場合,排他要求をエラーリターンします。

0を指定した場合は,排他待ちの時間監視をしません。

排他待ち時間は,トランザクション処理監視時間に含まれます。このため,トランザクション処理の監視時間より小さな値を指定してください。

コマンド形式

次ページに記述しています。