クライアントサービス定義
形式
set形式
〔set parallel_count=常駐プロセス数〔,最大プロセス数〕〕
〔set balance_count=1プロセスが処理するサービス要求数〕
〔set trn_expiration_time=トランザクションブランチ限界経過時間〕
〔set trn_expiration_time_suspend=Y|N|F〕
〔set trn_cpu_time=トランザクションブランチCPU監視時間〕
〔set open_rm=OpenTP1_ALL|OpenTP1_NONE〕
〔set clt_inquire_time=常設コネクション問い合わせ間隔最大時間〕
〔set clt_port=クライアント拡張サービスのポート番号〕
〔set clt_trn_conf=Y|N〕
〔set clt_cup_conf=Y|N〕
〔set cup_parallel_count=常駐プロセス数〔,最大プロセス数〕〕
〔set cup_balance_count=サービス要求滞留値〕
〔set clttrn_port=トランザクショナルRPC実行プロセスのポート番号〕
〔set cltcon_port=CUP実行プロセスのポート番号〕
〔set trn_statistics_item=統計情報項目〔,統計情報項目〕…〕
〔set trn_optimum_item=トランザクション最適化項目
〔,トランザクション最適化項目〕…〕
〔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 trn_completion_limit_time=トランザクション完了限界時間〕
〔set message_store_buflen=メッセージ格納バッファプール長〕
〔set watch_time=最大応答待ち時間〕
コマンド形式
なし。
機能
OpenTP1のクライアント機能を支援するためのサーバの実行環境を定義します。
CUPからトランザクションを起動するときに次のオペランドを指定します。
説明
set形式のオペランド
●parallel_count=常駐プロセス数〔,最大プロセス数〕
~〈符号なし整数〉((1~1024))《1》
CUP(サーバ側で同時に処理される)から起動するトランザクションの数を指定します。常駐プロセス数を指定すると,OpenTP1起動時に指定した数の実行プロセスが一緒に起動され,常にCUPからのトランザクションの開始要求を受け付ける状態になります。複数のCUPからトランザクションの開始要求を受け付けたときは,並行して処理するので処理性能が向上します。
最大プロセス数を指定すると,常駐プロセス数を超える処理は非常駐プロセスを動的に起動して処理します。指定した最大プロセス数以内でサーバプロセスの起動を制御するため,OpenTP1システムの性能が低下するのを防ぎます。
プロセス数の指定条件を次に示します。
●balance_count=1プロセスが処理するサービス要求数
~〈符号なし整数〉((0~512))《3》
このユーザサーバに対応するスケジュールキューに,処理されないで残っているサービス要求を,1プロセスで幾つ処理させるかを指定します。サービス要求が,(このオペランドの指定値)×(起動プロセス数)を超えてスケジュールキューに残っている場合には,非常駐プロセスを起動してサービス要求を処理させます。このオペランドは,parallel_countオペランドで非常駐プロセスを起動するように指定したサービスグループにだけ有効です。
0を指定すると,サービス要求のあった時点で起動されているすべてのプロセスがサービス処理中の場合,非常駐プロセスが起動されます。
●trn_expiration_time=トランザクションブランチ限界経過時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの処理を監視する限界経過時間を指定します。CUPからトランザクションを起動したあとに,指定時間を経過してもトランザクションのコミットまたはロールバックの指示がない場合は,このトランザクションブランチのプロセスが異常終了して,ロールバックします。
なお,このオペランドは,クライアント環境定義のDCCLTTREXPTMオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
なお,RPC機能を使用した場合に,他プロセスで実行するトランザクションブランチの処理時間も監視時間に含むかどうかは,trn_expiration_time_suspendオペランドで指定してください。
●trn_expiration_time_suspend=Y|N|F
~《N》
トランザクションブランチの処理を監視するとき,次の処理時間も監視時間に含むかどうかを指定します。
なお,このオペランドは,クライアント環境定義のDCCLTTREXPSPオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
このオペランドと各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
●trn_cpu_time=トランザクションブランチCPU監視時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。0を指定した場合は,時間監視しません。指定時間を超えた場合は,該当するトランザクションブランチのプロセスを異常終了し,ロールバックします。
なお,このオペランドは,クライアント環境定義のDCCLTTRCPUTMオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●open_rm=OpenTP1_ALL|OpenTP1_NONE
~《OpenTP1_NONE》
CUPからのトランザクショナルRPC機能を使用した場合に,クライアントサービス実行プログラムがオープンするリソースマネジャの名称を指定します。これによって,CUPからのトランザクショナルRPC機能で同期点処理が最適化できるようになり,トランザクションの性能が向上します。
このオペランドを指定すると,parallel_countオペランドに指定したプロセス数の分だけ,リソースマネジャの資源を占有します。
指定できるリソースマネジャ名を次に示します。
●clt_inquire_time=常設コネクション問い合わせ間隔最大時間
~〈符号なし整数〉((0~1048575))《180》(単位:秒)
CUPがサーバに対して問い合わせをしてから,次の問い合わせをするまでの間隔の最大時間を指定します。
常設コネクション問い合わせ間隔最大時間は,CUP実行プロセスで監視するタイマであり,指定時間を超えても問い合わせがない場合,CUP実行プロセス側で強制的に常設コネクションを解放します。
また,トランザクション内で常設コネクション問い合わせ間隔最大時間の満了を検出した場合は,該当するトランザクションをロールバックします。
0を指定すると,CUPからの問い合わせを無限に待ちます。
なお,このオペランドは,クライアント環境定義のDCCLTINQUIRETIMEオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●clt_port=クライアント拡張サービスのポート番号
~〈符号なし整数〉((5001~65535))
クライアント拡張サービスのポート番号を指定します。
他システムサーバで使用しているウェルノウンポート番号と異なるポート番号を指定してください。
このオペランドを省略した場合,システム共通定義のrpc_port_baseオペランドが指定されていれば,rpc_port_baseの指定値から「rpc_port_baseの指定値+prc_process_countの値」の範囲のポート番号が任意に割り当てられます。rpc_port_baseオペランドの指定がない場合には,システムが任意に割り当てたポート番号を使用します。
このオペランドで指定するポート番号は,ほかのプログラムと重複しないようにしてください。
また,OSには任意に割り当てる番号がありますが,この番号も使用しないでください。OSが任意に割り当てる番号は,OSの種別やバージョンによって異なります。詳細については,使用しているOSのマニュアルを参照してください。
●clt_trn_conf=Y|N
~《Y》
自OpenTP1ノードで,トランザクショナルRPC実行プロセスを起動するかどうかを指定します。このオペランドを省略,またはYを指定した場合,parallel_countで指定されたプロセス数分のトランザクショナルRPC実行プロセスが起動されます。
●clt_cup_conf=Y|N
~《N》
自OpenTP1ノードで,CUP実行プロセスを起動するかどうかを指定します。このオペランドでYを指定した場合,cup_parallel_countで指定されたプロセス数分のCUP実行プロセスが起動されます。
CUPからdc_clt_connect関数,またはdc_clt_connect_s関数などで常設コネクションを確立したい場合は,Yを指定してください。
●cup_parallel_count=常駐プロセス数〔,最大プロセス数〕
~〈符号なし整数〉((1~1024))《1》
CUP(サーバ側で同時に処理される)から確立される常設コネクションの数を指定します。
常駐プロセス数を指定すると,OpenTP1起動時に指定した数のCUP実行プロセスが一緒に起動され,常にCUPからの常設コネクション確立要求を受け付ける状態になります。複数のCUPから常設コネクション確立要求を受け付けた時は,並行して処理するので,処理性能が向上します。
最大プロセス数を指定すると,常駐プロセス数を超える処理は非常駐プロセスを動的に起動して処理します。指定した最大プロセス数以内でサーバプロセスの起動を制御するため,OpenTP1システムの性能が低下するのを防ぎます。
プロセス数の指定条件を次に示します。
一方,クライアントサービス定義のparallel_countオペランドは,トランザクショナルRPC実行プロセスの常駐プロセス数および最大プロセス数を指定します。
●cup_balance_count=サービス要求滞留値
~〈符号なし整数〉((0~512))《3》
処理されないで残っている常設コネクション確立要求数の滞留値を指定します。
CUPから常設コネクション確立要求を受け付け,その要求をスケジュールキューに登録後,コネクション確立要求がこのオペランドの指定値を超えると,スケジュール機能が非常駐プロセスを起動して,常設コネクション確立要求を処理します。このオペランドは,cup_parallel_countオペランドで最大プロセス数を指定した場合だけ有効です。
0を指定すると,常設コネクション確立要求のあった時点で起動されているすべてのプロセスがCUPとの常設コネクションを確立していた場合,非常駐プロセスが起動されます。
一方,クライアントサービス定義のbalance_countオペランドは,トランザクショナルRPC実行プロセスのサービス要求滞留値を指定します。
●clttrn_port=トランザクショナルRPC実行プロセスのポート番号
~〈符号なし整数〉((5001~65535))
トランザクショナルRPC実行プロセスのポート番号を指定します。
他システムサーバで使用しているウェルノウンポート番号と異なるポート番号を指定してください。
このオペランドを省略した場合,システム共通定義のrpc_port_baseオペランドが指定されていれば,rpc_port_baseの指定値から「rpc_port_baseの指定値+prc_process_countの値」の範囲のポート番号が任意に割り当てられます。
rpc_port_baseオペランドの指定がない場合には,システムが任意に割り当てたポート番号を使用します。
ここで指定したポート番号から,parallel_countオペランドで指定した数がポート番号として割り当てられます。したがって,このオペランドの指定値とparallel_countオペランドの指定値の和が,65535を超えないように注意してください。
このオペランドで指定するポート番号は,ほかのプログラムと重複しないようにしてください。
また,OSには任意に割り当てる番号がありますが,この番号も使用しないでください。OSが任意に割り当てる番号は,OSの種別やバージョンによって異なります。詳細については,使用しているOSのマニュアルを参照してください。
●cltcon_port=CUP実行プロセスのポート番号
~〈符号なし整数〉((5001~65535))
CUP実行プロセスのポート番号を指定します。
他システムサーバで使用しているウェルノウンポート番号と異なるポート番号を指定してください。
このオペランドを省略した場合,システム共通定義のrpc_port_baseオペランドが指定されていれば,rpc_port_baseの指定値から「rpc_port_baseの指定値+prc_process_countの値」の範囲のポート番号が任意に割り当てられます。
rpc_port_baseオペランドの指定がない場合には,システムが任意に割り当てたポート番号を使用します。
ここで指定したポート番号から,cup_parallel_countオペランドで指定した数がポート番号として割り当てられます。したがって,このオペランドの指定値とcup_parallel_countオペランドの指定値の和が,65535を超えないように注意してください。
このオペランドで指定するポート番号は,ほかのプログラムと重複しないようにしてください。
また,OSには任意に割り当てる番号がありますが,この番号も使用しないでください。OSが任意に割り当てる番号は,OSの種別やバージョンによって異なります。詳細については,使用しているOSのマニュアルを参照してください。
●trn_statistics_item=統計情報項目〔,統計情報項目〕…
~《executiontime》
トランザクションブランチの統計情報を取得する項目を指定します。
nothingの指定は,一つしかできません。また,nothingとほかの統計情報項目を同時に指定した場合,nothingの指定は無効になります。
トランザクションに関する統計情報を取得するときは次のどれかを指定してください。
なお,このオペランドは,クライアント環境定義のDCCLTTRSTATISITEMオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_optimum_item=トランザクション最適化項目〔,トランザクション最適化項目〕…
~《base》
複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を,次の文字列で指定します。
トランザクション最適化項目は,重複して指定できます。ただし,優先順位は次のようになります(1.>2.)。
なお,このオペランドは,クライアント環境定義のDCCLTTROPTIITEMオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_watch_time=トランザクション同期点処理時の最大通信待ち時間
~〈符号なし整数〉((1~65535))《120》(単位:秒)
トランザクションの同期点処理で,トランザクションブランチ間で行う通信(プリペア,コミット,ロールバック指示,または応答など)の受信待ち時間の最大値を指定します。
指定時間を過ぎても指示または応答がない場合は,該当するトランザクションブランチが2相コミットの1相目完了前であればロールバックさせ,1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。
なお,このオペランドは,クライアント環境定義のDCCLTTRWATCHTIMEオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_rollback_information_put=no|self|remote|all
~《no》
トランザクションブランチがロールバックした場合に,ロールバック要因に関する情報をログに取得するかどうかを指定します。
なお,このオペランドは,クライアント環境定義のDCCLTTRRBINFOオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_limit_time=トランザクションブランチ最大実行可能時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの最大実行可能時間を指定します。
トランザクションブランチを開始してから同期点処理が終了するまでの時間が,このオペランド指定時間を超えないようにdc_rpc_call関数,dc_rpc_poll_any_replies関数および同期点処理内で行う通信のタイムアウト時間を次のように自動設定します。
上記の受信待ち以外の処理で時間が掛かった場合は,このオペランド指定時間以内にトランザクションブランチが終了しないことがあります。
同期点処理開始前にこのオペランドの指定時間が経過した場合,そのトランザクションはロールバックします。
0を指定した場合は,時間監視をしません。
なお,このオペランドは,クライアント環境定義のDCCLTTRLIMITTIMEオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_rollback_response_receive=Y|N
~《Y》
RPC先トランザクションブランチにロールバック指示を送信したあと,ロールバック完了通知を受信するかどうかを指定します。Nを指定した場合,RPC先トランザクションブランチからのロールバック完了通知を受信しないで(RPC先トランザクションブランチのロールバック処理の完了を待たないで)自トランザクションブランチを終了します。
なお,このオペランドは,クライアント環境定義のDCCLTTRRBRCVオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_partial_recovery_type=type1|type2|type3
~《type1》
UAP障害時のトランザクション同期点処理方式を指定します。
クライアントサービス定義でこのオペランドを指定する場合は,CUPからトランザクションを開始する場合だけに有効です。
RPCがタイムアウトし,RPC発行先プロセスのアドレスが未解決の場合やトランザクション実行中のUAPがダウンした場合に,トランザクションブランチ間の連絡がスムーズにできないで,トランザクションの決着に時間が掛かることがあります。
このオペランドでは,次に示す障害が発生した場合のトランザクション同期点処理方式を,指定値に示す三つの方式から選択して指定します。
なお,このオペランドは,クライアント環境定義のDCCLTTRRECOVERYTYPEオペランドでも指定できます。クライアント環境定義については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
指定値の優先順位は次のとおりです(1.>2.)。
●trn_completion_limit_time=トランザクション完了限界時間
~〈符号なし整数〉((0~65535))《0》(単位:秒)
トランザクションブランチの開始から終了までの最大実行時間を指定します。指定時間を超えた場合,このトランザクションブランチのプロセスが異常終了したあとに,トランザクションブランチが回復プロセスによってコミットまたはロールバックのどちらかに決着して終了します。0を指定した場合は,トランザクションブランチの最大実行時間を監視しません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
このオペランドの監視対象区間は,dc_trn_begin関数などの呼び出しやサービス関数の開始によるトランザクションの開始から,トランザクションの同期点処理終了情報(TJ)の取得後であるトランザクションブランチの終了までです。ただし,トランザクションの最適化が行われた場合,サーバ側のトランザクションブランチに対する監視が終了するのは,クライアント側に応答を返したあとです。このオペランドの監視対象区間の詳細および各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
●message_store_buflen=メッセージ格納バッファプール長
~〈符号なし整数〉((1024~31457280))《8196》(単位:バイト)
CUPからのトランザクショナルRPC要求,常設コネクション要求を,トランザクショナルRPC実行プロセス,CUP実行プロセスに渡す前にいったん格納しておく共用メモリのプールの大きさを指定します。
次の計算式で求めた値を指定してください。
メッセージ格納バッファプール長=D×C
D:制御データ長(256バイト)
C:同時に発生するトランザクショナルRPC要求数,常設コネクション要求数のうち大きい値
なお,この計算式の算出結果が8196より小さい場合は,指定する必要はありません。
●watch_time=最大応答待ち時間
~〈符号なし整数〉((0~65535))(単位:秒)
CUPから,トランザクションを開始した場合や,常設コネクションを確立した場合,CUPから発行されるRPCはクライアント拡張サービスの実行プロセスが代理実行します。このオペランドでは,実行プロセスが代理実行するRPCによってプロセス間で通信する場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。
指定時間を過ぎても応答がない場合は,受信タイムアウトとしてCUPにエラーリターンします。
0を指定した場合は,応答を受信するまで待ち続けます。
クライアント環境定義にDCWATCHTIMINHERIT=Yと定義されている場合は,CUP側のタイマ値が有効になり,このオペランドに指定されたタイマ値は無視されます。
このオペランドの指定を省略した場合,システム共通定義のwatch_timeオペランドに指定した値を仮定します。
特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。
システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。
コマンド形式
なし。
注意事項
CUPから起動するトランザクションは,parallel_countオペランドで指定したプロセス数だけ同時に並行実行します。このプロセスのサーバ名は_clttrnです。trnlsコマンドでこのプロセスのトランザクション状態を表示できます。
また,トランザクションブランチ限界経過時間に達した場合などの要因によって,プロセスがキャンセルされた場合に表示するメッセージにも,このサーバ名が表示されます。