rapリスナーサービス定義

形式

set形式

 set rap_listen_port=rapリスナーポート番号
〔set rap_parallel_server=rapサーバ数〕
〔set rap_watch_time=メッセージ送受信最大監視時間〕
〔set rap_inquire_time=問い合わせ間隔最大時間〕
〔set nice=プロセスの優先順位の変更〕
〔set uap_trace_max=UAPトレース格納最大数〕
 set uid=OpenTP1管理者のユーザ識別子
〔set rpc_response_statistics=Y|N
〔set rpc_trace=Y|N〕
〔set rpc_trace_name="RPCトレースを取得するファイル名"〕
〔set rpc_trace_size=RPCトレースを取得するファイルのサイズ〕
〔set trn_expiration_time=トランザクションブランチ限界経過時間〕
〔set trn_expiration_time_suspend=Y|N|F〕
〔set trn_cpu_time=トランザクションブランチCPU監視時間〕
〔set trf_put=Y|N〕
〔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 rap_inquire_timeout_message=Y|N〕
〔set rap_connection_assign_type=dynamic|static
〔set rap_max_client=rapリスナーに同時接続する最大クライアント数〕
〔set rap_notify=Y|N
〔set rap_client_manager_node="ホスト名:ポート番号"
                          〔,"ホスト名:ポート番号"〕…〕
〔set rap_max_buff_size=ソケットウィンドウサイズ〕
〔set rap_io_retry_interval=電文送受信時のリトライ間隔〕
〔set rap_sock_count=ソケット生成処理のリトライ回数〕
〔set rap_sock_interval=ソケット生成処理のリトライ間隔〕
〔set rap_connect_retry_count=コネクション確立処理のリトライ回数〕
〔set rap_connect_retry_interval=コネクション確立処理のリトライ間隔〕
〔set rap_listen_backlog=接続待ちキューに保留できる最大要求数〕
〔set rap_msg_output_interval=クライアント数表示メッセージの出力間隔〕
〔set rap_recovery_server=リカバリ要求用待機rapサーバ数〕
〔set rap_connect_interval=コネクション確立処理の間隔〕
〔set rpc_extend_function=RPCサービスの機能拡張レベル〕
〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕
〔set trn_completion_limit_time=トランザクション完了限界時間〕
〔set rap_message_id_change_level=メッセージIDの変更レベル〕
〔set rap_term_disconnect_time=
                        rapリスナー終了時のコネクション切断待ち時間〕
〔set rap_stay_watch_time=rapサーバ割り当て待ち要求の滞留監視時間〕
〔set rap_stay_warning_interval=滞留警告メッセージの出力間隔〕
〔set log_audit_out_suppress=Y|N
〔set log_audit_message=監査ログを取得する項目のメッセージID
                    〔,監査ログを取得する項目のメッセージID〕…〕
〔set ipc_sockctl_highwater=
                      ソケットの一時クローズ処理開始数パーセンテージ
                   〔,ソケットの一時クローズ処理非対象数パーセンテージ〕〕
〔set ipc_sockctl_watchtime=ソケット再利用可能監視時間〕
〔set scs_prf_trace_level=リモートAPI機能における性能検証用トレース取得レベル〕
〔set rap_extend_function=リモートAPI機能の機能拡張レベル〕
〔set watch_time=最大応答待ち時間〕

コマンド形式

なし。

機能

リモートAPI機能を使用する場合のrapリスナーサービスを指定します。この定義を指定してから,rapdfgenコマンドを実行すると,リモートAPI機能を使用するのに必要なrapリスナー用ユーザサービス定義およびrapサーバ用ユーザサービス定義が自動的に作成されます。

説明

set形式のオペランド

rap_listen_port=rapリスナーポート番号

 ~〈符号なし整数〉((5001~65535))

rapリスナーおよびrapサーバが使用するウェルノウンポート番号を指定します。rapリスナーを複数起動する場合はそれぞれのポート番号が重複しないように指定してください。

このオペランドで指定するポート番号は,ほかのプログラムと重複しないようにしてください。

また,OSには任意に割り当てる番号がありますが,この番号も使用しないでください。OSが任意に割り当てる番号は,OSの種別やバージョンによって異なります。詳細については,使用しているOSのマニュアルを参照してください。

rap_parallel_server=rapサーバ数

 ~〈符号なし整数〉((1~1024))《1》

該当するrapリスナーが管理するrapサーバのサーバ数を指定します。

rap_watch_time=メッセージ送受信最大監視時間

 ~〈符号なし整数〉((0~65535))《180》(単位:秒)

rapリスナーおよびrapサーバがメッセージの送受信を開始し始めてから,送受信が完了するまでの監視時間を指定します。監視時間が経過してもメッセージの送受信が完了しない場合はメッセージを出力し,ネットワーク障害と同様の処理を行います。

0を指定した場合は,時間監視をしません。

rap_inquire_time=問い合わせ間隔最大時間

 ~〈符号なし整数〉((0~1048575))《180》(単位:秒)

クライアントがrapリスナーおよびrapサーバに問い合わせ応答をしてから次の問い合わせが来るまでの間隔の最大待ち時間を指定します。この値はrapリスナーまたはrapサーバ側で監視するタイマであり,指定時間を超えても問い合わせがない場合,クライアントがダウンしたとして処理します。

0を指定した場合は,無限に待ちます。

常駐SPPからリモートAPI機能を使用している場合,このオペランドまたはユーザサービス定義のrpc_rap_inquire_timeオペランドに0を指定しないでください。指定した場合,rapリスナーが存在するノードのOpenTP1システムを終了させようとしても,rapリスナーが終了できないため,常駐SPPが終了するまで無限に待ち続けます。

SPPまたはSUPのユーザサービス定義でrpc_rap_inquire_timeオペランドの指定を省略した場合,このオペランドで指定した値が最大待ち時間となります。どちらも省略した場合は,180秒を仮定します。

nice=プロセスの優先順位の変更

 ~〈符号なし整数〉((0~39))《0》

このサービスグループプロセスのnice値に加える値を指定します。プロセスのnice値は正の整数で,この値が大きくなるとCPUの優先順位は低くなります。niceの詳細については,ユーザの使用するOSの,該当するマニュアルを参照してください。

uap_trace_max=UAPトレース格納最大数

 ~〈符号なし整数〉((0~4095))《32》

UAPトレースの最大格納数を指定します。

0を指定した場合
UAPトレースを取得しません。
1以上を指定した場合
指定値+1のUAPトレースを取得します。

UAPトレースデータファイルまたは退避コアファイルに,UAPトレースの情報として次の情報を取得します。

注※
OpenTP1のライブラリ関数がリターンするときは,入り口情報を取得した領域を出口情報で上書きするため,UAPトレースの格納数は1となります。ただし,TP1/Message Queue,およびオンラインテスタ(TP1/Online Tester)を使用している場合は,OpenTP1のライブラリ関数の入り口情報と出口情報で別の領域となるため,UAPトレースの格納数は2となります。

UAPトレースを参照することで,次に示す処理の流れを解析できます。

この解析によって,ユーザはUAPに障害が起こった原因を解析でき,UAPを修正したり,システムを再構築したりする目安にできます。

UAPトレースの詳細については,マニュアル「OpenTP1 テスタ・UAPトレース使用の手引」を参照してください。

uid=OpenTP1管理者のユーザ識別子

 ~〈符号なし整数〉((0~4294967294))

このサービスグループのプロセス所有者となるユーザIDを指定します。

この場合,OpenTP1管理者のユーザ識別子を指定してください。

最大値はOSに依存するので,使用しているOSのマニュアルを参照してください。

rpc_response_statistics=Y|N

 ~《N》

レスポンス統計情報を取得するかどうかを指定します。

Y
レスポンス統計情報を取得します。
N
レスポンス統計情報を取得しません。

レスポンス統計情報は,RPCコールのレスポンスタイム,サービスの実行時間,およびサーバのCPU時間などを取得します。

rpc_trace=Y|N

RPCトレースを取得するかどうかを指定します。

Y
RPCトレースを取得します。
N
RPCトレースを取得しません。

このオペランドは,システム共通定義,またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. システム共通定義

RPCトレースを取得した場合,処理速度が低下し,RPCがタイムアウトでエラーリターンすることがあります。その場合は,状況に応じて次の1.または2.の最大応答待ち時間(デフォルト値:180秒)を十分な値まで増やして対処してください。

  1. watch_timeオペランド(システム共通定義,ユーザサービス定義,またはユーザサービスデフォルト定義で指定)に指定した最大応答待ち時間
  2. クライアントからrapサーバに引き継いだ最大応答待ち時間

クライアントからrapサーバに最大応答待ち時間を引き継ぐかどうかは,クライアント環境定義のDCWATCHTIMINHERITオペランド(TP1/Client/W,TP1/Client/Pの場合),またはTP1/Client/J環境定義のdcwatchtiminheritオペランド(TP1/Client/Jの場合)で指定します。

DCWATCHTIMINHERITオペランドまたはdcwatchtiminheritオペランドにYが指定されている場合は,上記2.の最大応答待ち時間を使用してください。

DCWATCHTIMINHERITオペランドまたはdcwatchtiminheritオペランドにNが指定されているか,指定が省略されている場合は,上記1.の最大応答待ち時間を使用してください。

また,rapリスナーサービス定義のrpc_traceオペランドを指定した場合,rapサーバが代理実行したサービス要求の送受信電文だけを取得でき,rapクライアントからrapサーバが受信した電文は取得できません。

rpc_trace_name="RPCトレースを取得するファイル名"

 ~〈パス名〉

RPCトレースを取得するファイルのパス名を指定します。

パス名のうち,RPCトレースを取得するファイル名(デフォルトはrpctr)の最大長は,13文字です。

パス名に環境変数を指定する場合,パス名の先頭に環境変数を指定してください(指定例:$DCDIR/tmp/ファイル名)。

このオペランドは,システム共通定義でも指定できます。rapリスナーサービス定義で指定した場合は,rapリスナーサービス定義で指定した値が優先されます。

rpc_trace_size=RPCトレースを取得するファイルのサイズ

 ~〈符号なし整数〉((1024~2147483648))(単位:バイト)

RPCトレースを取得するファイルのサイズを指定します。

このオペランドは,システム共通定義でも指定できます。rapリスナーサービス定義で指定した場合は,rapリスナーサービス定義で指定した値が優先されます。

trn_expiration_time=トランザクションブランチ限界経過時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

トランザクションブランチの処理を監視する限界経過時間を指定します。指定時間を超えた場合は,このトランザクションブランチのプロセスは異常終了して,ロールバックされます。0を指定した場合は,時間監視しません。

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

また,これらの定義のほかに関数を発行して監視時間を指定することもできます。

関数の詳細についてはマニュアル「OpenTP1 プログラム作成の手引」を参照してください。

trn_expiration_time_suspend=Y|N|F

トランザクションブランチの処理を監視するとき,次の処理時間も監視時間に含むかどうかを指定します。

  1. 監視対象のトランザクションブランチが,RPC機能を使ってほかのトランザクションブランチを呼び出し,その処理が終わるのを待つ時間
  2. 連鎖RPCで呼び出されたサーバUAPが,次のサービス要求を待つ時間
  3. 監視対象のトランザクションブランチが,非同期RPCを使用してほかのトランザクションブランチを呼び出したあと,処理結果受信処理を行っている時間
    Y
    1.,2.,3.のすべてを監視時間に含みます。
    N
    3.だけを監視時間に含みます。
    F
    1.,2.,3.のどれも監視時間に含みません。

このオペランドは,トランザクションサービス定義,またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

このオペランドと各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。

trn_cpu_time=トランザクションブランチCPU監視時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。0を指定した場合は,時間監視しません。指定時間を超えた場合は,該当するトランザクションブランチのプロセスを異常終了し,ロールバックします。

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

trf_put=Y|N

該当するサーバで起動されたトランザクションが出力したジャーナルをトランザクションリカバリジャーナルに出力するかどうかを指定します。

Y
トランザクションリカバリジャーナルファイルに出力します。
N
トランザクションリカバリジャーナルファイルに出力しません。

トランザクションリカバリジャーナルファイルを作成すると,長時間トランザクションによって発生するジャーナル障害を防止でき,またリラン時間を短縮できます。ただし,この機能は,性能,およびメモリへのオーバヘッドがあるので,長時間トランザクションを使用するサーバの場合に指定してください。

系切り替え機能を使用するOpenTP1システムでは,この機能を使用できないため,rapリスナーサービス定義およびユーザサービス定義のtrf_putオペランドにはNを指定してください。

trn_statistics_item=統計情報項目〔,統計情報項目〕…

トランザクションブランチの統計情報を取得する項目を指定します。

nothing
統計情報を取得しません。
base
基本情報として,次の情報を取得します。
  • トランザクションブランチの識別子
  • トランザクションブランチの決着結果
  • トランザクションブランチの実行プロセス種別
  • トランザクションブランチの実行サーバ名
  • トランザクションブランチの実行サービス名
executiontime
基本情報とトランザクションブランチの実行時間情報を取得します。
cputime
基本情報とトランザクションブランチのCPU時間情報を取得します。

nothingの指定は,一つしかできません。また,nothingとほかの統計情報項目を同時に指定した場合,nothingの指定は無効になります。

トランザクションに関する統計情報を取得するときは次のどれかを指定してください。

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

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

複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を,次の文字列で指定します。

base
同期点処理全体(プリペア処理,コミット処理,およびロールバック処理)を最適化します。OpenTP1のトランザクション制御は2相コミット方式で実行しているため,二つのトランザクションブランチ間のコミット制御には,4回のプロセス間通信が必要となります。
次の条件をすべて満たす場合,親トランザクションブランチが子トランザクションブランチのコミット処理を代わりに実行することで,コミット制御で必要な4回のプロセス間通信を削減します。
  1. 親トランザクションブランチと,子トランザクションブランチが同一OpenTP1下にあること。
  2. 親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。
  3. 子トランザクションブランチでアクセスしたリソースマネジャのXAインタフェース用オブジェクトが,親トランザクションブランチにもリンケージされていること。
asyncprepare
baseの指定条件を満たしていないため同期点処理全体の最適化ができない場合に,プリペア処理を最適化します。
次の条件をすべて満たす場合,親トランザクションブランチから発行されたRPCによって子トランザクションブランチがサービス要求を実行したときに,RPCのリターン前にプリペア処理を実行することで,2回のプロセス間通信を削減します。
  1. baseを指定した最適化ができないこと。
  2. 親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。
    ただし,この最適化を実行した場合,親トランザクションブランチが発行した同期応答型RPCの応答時間が遅くなります。また,子トランザクションブランチは,プリペア処理からコミット処理までの間隔(親トランザクションブランチからの指示がないとトランザクションを決着できない状態)が大きくなります。そのため,親トランザクションブランチのOpenTP1がシステムダウンし,トランザクションブランチ間の連絡ができなくなると,ジャーナルファイルのスワップやチェックポイントダンプファイルの有効化が遅れ,子トランザクションブランチのOpenTP1もシステムダウンする場合があります。

トランザクション最適化項目は,重複して指定できます。ただし,優先順位は次のようになります(1.>2.)。

  1. base
  2. asyncprepare

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

trn_watch_time=トランザクション同期点処理時の最大通信待ち時間

 ~〈符号なし整数〉((1~65535))(単位:秒)

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

指定時間を過ぎても指示または応答がない場合は,該当するトランザクションブランチが2相コミットの1相目完了前であればロールバックさせ,1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。

このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

これらのすべての定義でこのオペランドを省略した場合,トランザクションを行ったユーザサーバのwatch_timeの値を仮定します。ただし,trn_watch_timeには0秒を指定できないため,ユーザサーバのwatch_timeに0秒を指定した場合はtrn_watch_timeのデフォルト値である120秒を仮定します。

trn_rollback_information_put=no|self|remote|all

トランザクションブランチがロールバックした場合に,ロールバック要因に関する情報をログに取得するかどうかを指定します。

no
ロールバック情報を取得しません。
self
ロールバック要因が発生したトランザクションブランチでだけ,ログにロールバック情報を取得します。
remote
selfに加え,他ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。
all
remoteに加え,自ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。

このオペランドは,トランザクション定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

trn_limit_time=トランザクションブランチ最大実行可能時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

トランザクションブランチの最大実行可能時間を指定します。

トランザクションブランチを開始してから同期点処理が終了するまでの時間が,このオペランド指定時間を超えないようにdc_rpc_call関数,dc_rpc_poll_any_replies関数および同期点処理内で行う通信のタイムアウト時間を次のように自動設定します。

上記の受信待ち以外の処理で時間が掛かった場合は,このオペランド指定時間以内にトランザクションブランチが終了しないことがあります。

同期点処理開始前にこのオペランドの指定時間が経過した場合,そのトランザクションはロールバックします。

0を指定した場合は,時間監視をしません。

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

trn_rollback_response_receive=Y|N

 ~《Y》

RPC先トランザクションブランチにロールバック指示を送信したあと,ロールバック完了通知を受信するかどうかを指定します。Nを指定した場合,RPC先トランザクションブランチからのロールバック完了通知を受信しないで(RPC先トランザクションブランチのロールバック処理の完了を待たないで)自トランザクションブランチを終了します。

ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。

trn_partial_recovery_type=type1|type2|type3

UAP障害時のトランザクション同期点処理方式を指定します。

RPCがタイムアウトし,RPC発行先プロセスのアドレスが未解決の場合やトランザクション実行中のUAPがダウンした場合に,トランザクションブランチ間の連絡がスムーズにできないで,トランザクションの決着に時間が掛かることがあります。

このオペランドでは,次に示す障害が発生した場合のトランザクション同期点処理方式を,指定値に示す三つの方式から選択して指定します。

(障害1)RPCがタイムアウトした場合
この場合,RPC発行元トランザクションブランチは,サービス要求がどのプロセスで実行されているかがわからないため,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチがトランザクション同期点メッセージ待ちとなり,トランザクションの決着に時間が掛かります。
(障害2)RPC発行元UAPがRPCの応答受信前にダウンした場合
この場合,RPC発行元トランザクションブランチは,サービス要求がどのプロセスで実行されているかがわからないため,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため,RPC発行先トランザクションブランチはトランザクション同期点メッセージ待ちとなり,トランザクションの決着に時間が掛かります。
(障害3)RPC発行先UAPからの応答受信後にRPC発行元UAPとRPC発行先UAPがほぼ同時にダウンした場合
この場合,それぞれのトランザクションブランチを引き継いだトランザクション回復プロセスは,相手UAPプロセスのダウンを知らないため,すでに存在しないUAPプロセスにトランザクション同期点メッセージを送信してしまい,トランザクションの決着に時間が掛かることがあります。
type1
(障害1)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。
(障害2)が発生した場合,RPC発行元トランザクションブランチは,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信しないでトランザクションを決着します。RPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。
(障害3)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。
type2
(障害1)が発生してトランザクションをコミットする場合はtype1と同じです。
(障害1)が発生してトランザクションをロールバックする場合,または(障害2)が発生した場合は,RPC発行元トランザクションブランチは,RPC発行先トランザクションブランチが存在するノードのトランザクションサービスプロセスにトランザクション同期点メッセージを送信後,トランザクションを決着します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは,該当するトランザクションブランチを処理中のプロセスに,トランザクション同期点指示を送信します。
(障害3)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。
type3
(障害1)が発生してトランザクションをコミットする場合は,type1と同じです。
(障害1)が発生してトランザクションをロールバックする場合,(障害2)が発生した場合,または(障害3)が発生した場合,相手トランザクションブランチが存在するノードのトランザクションサービスプロセスに,トランザクション同期点メッセージを送信します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは,該当するトランザクションブランチを処理中のプロセスに,トランザクション同期点指示を送信します。

次に示す場合,このオペランドにtype2またはtype3を指定しても,トランザクションの決着に時間が掛かることがあります。

  1. RPC実行中に,RPC発行先UAPの状態が変更となり(負荷増加,UAP終了,UAP閉塞など),ほかのノードの同一UAPにサービス要求が再転送された場合
  2. 相手先のOpenTP1がこのオプションをサポートしていないバージョンの場合
  3. 相手先トランザクションブランチがトランザクション同期点メッセージ受信処理以外で時間が掛かっている場合

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

rap_inquire_timeout_message=Y|N

 ~《Y》

クライアントからの要求最大待ち時間が満了したことを検知したとき,エラーメッセージを出力するかどうかを指定します。このオペランドにYを指定するか,省略した場合は,エラーメッセージを出力します。

Y
クライアントからの要求最大待ち時間が満了したことを検知したとき,エラーメッセージを出力します。
N
クライアントからの要求最大待ち時間が満了したことを検知したとき,エラーメッセージを出力しません。
 

なお,このオペランドで抑止されるメッセージは次のとおりです。

rap_connection_assign_type=dynamic|static

 ~《static》

ダイナミックコネクションスケジュール機能を使用するかどうかを指定します。

dynamic
ダイナミックコネクションスケジュール機能を使用します。
static
ダイナミックコネクションスケジュール機能を使用しません。

 

ダイナミックコネクションスケジュール機能を使用しサーバ負荷が高くなると,スタティックコネクションスケジュール機能に比べてレスポンス性能が劣化する場合があります。また,ダイナミックコネクションスケジュール機能を使用している場合,コネクト要求以外の要求はrapサーバで処理します(コネクト要求だけrapリスナーが受け持ちます)。したがって,クライアントが要求を行ったとき割り当てられるrapサーバがない場合,その要求はrapリスナーで保留されたままになります。rapサーバから代理実行要求されるdc_rpc_callに長い時間が掛かる場合や,トランザクション状態で走行するクライアントがある場合などは,起動するrapサーバ数に注意してください。起動するrapサーバが少ない場合,クライアントからの要求はタイムアウトでエラーリターンすることがあります。

rap_max_client=rapリスナーに同時接続する最大クライアント数

 ~〈符号なし整数〉((128~1024))《256》

rapリスナーに同時接続する最大クライアント数を指定します。

rap_notify=Y|N

 ~《N》

自ノードのrapリスナー起動時に,rap_client_manager_nodeオペランドで指定したノードで起動するrapクライアントマネジャに対し起動通知を行うかどうかを指定します。

Y
起動通知します。
N
起動通知しません。

Yを指定した場合,rap_client_manager_nodeオペランドの指定を省略できません。

rap_client_manager_node="ホスト名:ポート番号"〔,"ホスト名:ポート番号"〕…

rap_notifyオペランドにYを指定して起動通知機能を使用する場合は,このオペランドに指定したノードで起動するOpenTP1のrapクライアントマネジャへ起動通知を行います。起動通知機能を使用すると,コネクション確立時期を管理でき,確実に送信できるようになります。

rap_notifyオペランドにYを指定した場合,このオペランドの指定を省略できません。

ホスト名
 ~〈1~255文字の英数字,ピリオド,およびハイフン〉
自ノードのrapリスナーに接続するrapクライアントを持つ,OpenTP1システムのホスト名を指定します。ホスト名とは,/etc/hostsに定義したホスト名のことです。
ポート番号
 ~〈符号なし整数〉((1~65535))
自ノードのrapリスナーに接続するrapクライアントを持つ,OpenTP1システムのrapクライアントマネジャのポート番号を指定します。

rap_max_buff_size=ソケットウィンドウサイズ

 ~〈符号なし整数〉((4~2147483647))《4》(単位:キロバイト)

ソケットのウィンドウサイズを指定します。

rap_io_retry_interval=電文送受信時のリトライ間隔

 ~〈符号なし整数〉((1~999))《35》(単位:ミリ秒)

電文送受信時のリトライ間隔を指定します。

rap_sock_count=ソケット生成処理のリトライ回数

 ~〈符号なし整数〉((0~65535))《1》

ソケット生成処理でEAGAIN,EWOULDBLOCKエラーが発生した場合,ソケット生成処理のリトライ回数を指定します。

rap_sock_interval=ソケット生成処理のリトライ間隔

 ~〈符号なし整数〉((15~500))《30》(単位:ミリ秒)

ソケット生成処理でEAGAIN,EWOULDBLOCKエラーが発生した場合,ソケット生成処理のリトライ間隔を指定します。

rap_connect_retry_count=コネクション確立処理のリトライ回数

 ~〈符号なし整数〉((8~2147483647))《8》

通信制御部のコネクション確立処理で,ECONNREFUSEDエラーが発生した場合,コネクション確立処理のリトライ回数を指定します。

rap_connect_retry_interval=コネクション確立処理のリトライ間隔

 ~〈符号なし整数〉((10~999))《100》(単位:ミリ秒)

通信制御部のコネクション確立処理で,ECONNREFUSEDエラーが発生した場合,コネクション確立処理のリトライ間隔を指定します。

rap_listen_backlog=接続待ちキューに保留できる最大要求数

 ~〈符号なし整数〉((SOMAXCONN~2147483647))《SOMAXCONN》

接続待ちキューに保留できる最大要求数を指定します。

ここで最小値およびデフォルト値にしているSOMAXCONNはOpenTP1をコンパイルした環境の値です。詳細については,「リリースノート」を参照してください。

なお,このオペランドの設定が有効になるのは次の場合だけです。

OpenTP1をコンパイルした環境のSOMAXCONN ≦ 実際の動作環境のSOMAXCONN

このオペランドの設定は,rapリスナーが発行するlisten()システムコールのバックログ数に設定するだけで,バックログの実際の制御はOSにゆだねられます。

OSのデフォルト値はOSによって異なります。OSのデフォルト値(実数値)については,「リリースノート」を参照してください。

rap_msg_output_interval=クライアント数表示メッセージの出力間隔 

 ~〈符号なし整数〉((0~32767))《0》(単位:分)

rapリスナー終了時に接続中のクライアントがあった場合に出力される,クライアント数表示メッセージの出力間隔を指定します。クライアント数表示メッセージの出力後,このオペランドで指定した時間が経過してもまだ接続中のクライアントがあった場合は,再びクライアント数表示メッセージが出力されます。

このオペランドに0を指定した場合は,クライアント数表示メッセージを一度だけ出力します。

また,rapリスナーは3秒ごとにイベントを監視しています。

rap_recovery_server=リカバリ要求用待機rapサーバ数

 ~〈符号なし整数〉((0~rap_parallel_serverオペランドの指定値-1))《0》

XAリソースサービスを使用する場合,クライアントからのリカバリ要求用待機rapサーバ数を指定します。このオペランドに指定した数のrapサーバは,通常のサービス要求を受け付けないで,リカバリ要求だけを実行するために待機します。リカバリ要求用待機rapサーバの必要数は,J2EEサーバ単位に1サーバを目安としてください。

rap_connect_interval=コネクション確立処理の間隔

 ~〈符号なし整数〉((0~999))《40》(単位:ミリ秒)

リモートAPIサービス開始時のrapリスナーとrapサーバとの間のコネクション確立処理で,コネクション確立処理の間隔を指定します。

コネクション確立処理は,接続待ちキューに保留できる最大要求数ごとに,このオペランドで指定した値の間隔で行います。

rpc_extend_function=RPCサービスの機能拡張レベル

 ~〈16進数字〉((00000000~0000000F))《00000000》

RPCサービスの機能の拡張レベルを,次の中から指定します。

次の指定値で示す機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。

00000000
RPCサービスの機能を拡張しません。
00000001
サービス要求実行中のSPPが異常終了した場合に,dc_rpc_call関数,dc_rpc_call_to関数およびdc_rpc_poll_any_replies関数で,リターン値「DCRPCER_SERVICE_TERMINATED(00378)」を返します。
00000002
トランザクション内で開始した非トランザクション(flagsにDCRPC_TPNOTRANを指定したdc_rpc_call関数,およびdc_rpc_call_to関数)の連鎖RPCを,同期点処理で終了しないで,flagsにDCNOFLAGSを指定したdc_rpc_call関数,およびdc_rpc_call_to関数で明示的に終了するまで継続します。
00000004
非同期応答型RPCの応答メッセージを受け取っていない状態で,トランザクションの同期点処理をした場合に,非トランザクション属性の非同期応答型RPCの応答メッセージは破棄しないで,トランザクション属性の非同期応答型RPCの応答メッセージだけを削除します。
00000008
SPPプロセスで,dc_rpc_call関数,およびdc_rpc_call_to関数の呼び出し元の応答受信タイムアウトを検出したため,処理を中断してサービス要求を破棄した場合に,KFCA00339-Wのメッセージを出力します。

max_socket_descriptors=ソケット用ファイル記述子の最大数

 ~〈符号なし整数〉((32~2032))

OpenTP1制御下のプロセスで,ソケット用に使用するファイル記述子の最大値を指定します。

OpenTP1制御下のプロセスでは,システムサーバやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため,同時に稼働するUAPプロセスの数および通信する他ノードの数によって,ソケット用のファイル記述子の最大数を変更する必要があります。

注※
MCFサービス(MCFマネジャサービス,MCF通信サービス,およびアプリケーション起動サービス)以外のOpenTP1プロセスが対象です。MCFサービスの場合は,「システムサービス情報定義」および「システムサービス共通情報定義」を参照してください。

 

ソケット用ファイル記述子の最大数の計算式を,次に示します。

↑(このユーザサーバが通信するUAPプロセス数1+システムサービスプロセス数2)/0.8↑
↑↑:小数点以下を切り上げます。
注※1
rapリスナーは,rapリスナーが管理するrapサーバと通信します。rapリスナーが通信するrapサーバ数とrapサーバが通信するUAPプロセス数の,どちらか大きい値を採用してください。
rapサーバが通信するUAPプロセス数は,次に示す値の合計です。
  • rapサーバが通信する自OpenTP1内のUAPプロセス数
  • rapサーバが通信する他ノード内のUAPプロセス数
注※2
システムサービスプロセス数とは,自OpenTP1内のシステムサービスプロセスの数です。自OpenTP1内のシステムサービスプロセスは,rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスをカウントしてください。

このオペランドの指定値が小さいと,OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eメッセージを出力して異常終了します。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. システム共通定義

ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。

trn_completion_limit_time=トランザクション完了限界時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

トランザクションブランチの開始から終了までの最大実行時間を指定します。指定時間を超えた場合,このトランザクションブランチのプロセスが異常終了したあとに,トランザクションブランチが回復プロセスによってコミットまたはロールバックのどちらかに決着して終了します。0を指定した場合は,トランザクションブランチの最大実行時間を監視しません。

このオペランドの監視対象区間は,rapサーバがdc_trn_begin関数などのAPIを代理実行することによるトランザクションの開始から,トランザクションの同期点処理終了情報(TJ)の取得後であるトランザクションブランチの終了までです。このオペランドの監視対象区間の詳細および各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。

なお,このオペランドは,トランザクションサービス定義またはユーザサービスデフォルト定義でも指定できます。

指定値の優先順位は次のとおりです(1.>2.>3.)。

  1. rapリスナーサービス定義
  2. ユーザサービスデフォルト定義
  3. トランザクションサービス定義

rap_message_id_change_level=メッセージIDの変更レベル

 ~〈符号なし整数〉((0~2))

リモートAPI機能を使用する場合に出力される可能性の高いエラーメッセージでは,メッセージの種類のEをWに変更するために,メッセージIDを変更できます。変更する内容によって変更レベルを指定してください。

メッセージログを監視し,メッセージの種類がEであるかWであるかによって管理方法を区別したい場合にこのオペランドを使用してください。

このオペランドによって変更されるのはメッセージIDだけであり,メッセージの内容は変更されません。

0
メッセージIDを変更しないで,従来どおりのメッセージIDで出力します。
1
特定の理由コードが出力される条件で,メッセージの種類のEをWに変更するために,メッセージIDを変更できます。
2
1を指定した場合に加え,メッセージの種類のEをWに変更するために,メッセージIDを変更できます。

このオペランドの指定値と出力されるメッセージの関係を次の表に示します。

表3-12 rap_message_id_change_levelオペランドの指定値と出力されるメッセージの関係

変更できるメッセージIDKFCA26965-Eを
KFCA27790-Wに変更
KFCA26970-Eを
KFCA27791-Wに変更
KFCA26971-Eを
KFCA27792-Wに変更
rap_message_id_change_levelオペランドの指定値012012012
理由コード8EWW
22EEEEEEEEE
24EEE
31EEWEEWEEW
32EEWEEWEEW
35EEWEEE
36EWWEWWEWW
37EEEEEEEEE
38EWW
71EWW
81EEE
82EWW
83EEE
91EWW
(凡例)
E:メッセージの種類がEのメッセージが出力されます。
W:メッセージの種類がWのメッセージが出力されます。
-:該当しません。

このオペランドの指定を省略した場合は,ユーザサービスデフォルト定義の値が仮定されます。

rap_term_disconnect_time=rapリスナー終了時のコネクション切断待ち時間

 ~〈符号なし整数〉((0~3600))《0》(単位:秒)

rapリスナー終了時のrapクライアントとのコネクション切断待ち時間を指定します。rapリスナー終了時,このオペランドに指定した時間が経過したら,コネクションを切断してKFCA27763-WまたはFCA27765-Wメッセージを出力します。ただし,rapサーバがAPIを代理実行中は,コネクションを切断しません。このオペランドを省略または0を指定した場合,rapクライアントからコネクション切断要求が到着するか,または問い合わせ間隔最大待ち時間が満了するまで,コネクションを切断しません。

このオペランドには,システム環境定義のsystem_terminate_watch_timeオペランドの指定値より小さい値を指定することをお勧めします。次の場合,rapリスナーの終了待ちが原因で,dcstopコマンドがタイムアウトすることがあります。

なお,rapリスナーは3秒ごとにイベントを監視しているため,この待ち時間には最大で3秒の誤差が発生することがあります。

rap_stay_watch_time=rapサーバ割り当て待ち要求の滞留監視時間

 ~〈符号なし整数〉((0~65535))《30》(単位:秒)

rapクライアントの要求が滞留した場合の監視時間を指定します。rapクライアントの要求を実行するための空きrapサーバがないとき,要求はrapサーバが空くのを待ちます。この割り当て待ち要求の滞留時間がこのオペランド指定値を超えた場合,KFCA27764-Wメッセージを出力します。このオペランドに0を指定した場合は,滞留時間を監視しません。

このオペランドには,rapクライアント側で指定する最大応答待ち時間より小さい値を指定することをお勧めします。このオペランドにrapクライアント側の最大応答待ち時間より大きい値を指定した場合,クライアント側がすでにタイムアウトと判断した要求に対しても,KFCA27764-Wメッセージを出力することがあります。

なお,rapリスナーは3秒ごとにイベントを監視しているため,この監視時間には最大で3秒の誤差が発生することがあります。

rap_stay_warning_interval=滞留警告メッセージの出力間隔

 ~〈符号なし整数〉((3~65535))《180》(単位:秒)

rapクライアントの要求が滞留した場合に,KFCA27764-Wメッセージが出力される間隔を指定します。KFCA27764-Wメッセージが一度出力されたあと,このオペランドの指定値を経過するまでの間,KFCA27764-Wメッセージは出力されません。rap_stay_watch_timeオペランドに0を指定した場合,このオペランドは無視されます。

なお,rapリスナーは3秒ごとにイベントを監視しているため,この出力間隔には最大で3秒の誤差が発生することがあります。

log_audit_out_suppress=Y|N

 ~《N》

rapリスナーおよびrapサーバから出力される監査ログを抑止する場合に指定します。

Y
rapリスナーおよびrapサーバから出力される監査ログを抑止します。
N
rapリスナーおよびrapサーバから出力される監査ログを抑止しません。

このオペランドは,ログサービス定義のlog_audit_outオペランドにYを指定した場合だけ有効です。

log_audit_message=監査ログを取得する項目のメッセージID〔,監査ログを取得する項目のメッセージID〕…

 ~〈符号なし整数〉((33400~99999))

OpenTP1が取得する監査ログのうち,rapリスナーサービス定義に指定できる監査ログのメッセージIDを指定します。指定できるメッセージIDは,最大2048個です。

このオペランドで指定できるメッセージIDについては,「付録C 監査イベントを取得する定義」を参照してください。

このオペランドを省略し,ユーザサービスデフォルト定義でも指定を省略した場合,ログサービス定義の値を仮定します。このオペランドは,ログサービス定義のlog_audit_outオペランドにYを指定し,rapリスナーサービス定義のlog_audit_out_suppressオペランドにNを指定した場合に有効です。

ipc_sockctl_highwater=ソケットの一時クローズ処理開始数パーセンテージ〔,ソケットの一時クローズ処理非対象数パーセンテージ

 ~〈符号なし整数〉((0~100))

max_socket_descriptorsオペランドの指定値に対して,ソケットの一時クローズ処理開始数パーセンテージを指定します。

OpenTP1は,プロセス内のソケット用に使用しているファイル記述子の数が,次の値を超えた時点で,一時クローズ処理を開始します。

max_socket_descriptorsオペランドの指定値
×(ソケットの一時クローズ開始数パーセンテージ/100)

ソケットの一時クローズ処理開始数パーセンテージに0を指定した場合,コネクションを確立するたびに一時クローズ処理が実行されます。一時クローズ処理については,マニュアル「OpenTP1 解説」を参照してください。

また,一時クローズ処理の対象外とするコネクション数のパーセンテージも指定できます。一時クローズ処理の対象外とするコネクション数は,次の値です。

max_socket_descriptorsオペランドの指定値
×(ソケットの一時クローズ非対象数パーセンテージ/100)

ソケットの一時クローズ非対象数パーセンテージには,ソケットの一時クローズ処理開始数パーセンテージ以下の値を指定してください。ソケットの一時クローズ処理開始数パーセンテージより大きい値を指定した場合は,ソケットの一時クローズ処理開始数パーセンテージと同じ値が指定されたものとして動作します。

OpenTP1は,プロセス内で確立したコネクションを,確立した順に管理しています。ソケットの一時クローズ処理非対象数パーセンテージを指定した場合,最も古く確立されたコネクションから順に,一時クローズ処理要求が送信されます。

max_socket_descriptorsオペランドの指定値が大きくなく,かつソケットの一時クローズ処理開始数パーセンテージに小さい値が指定されていると,一時クローズ要求が多発し,性能に影響を与えたり,通信障害になったりすることがあります。

ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。

ipc_sockctl_watchtime=ソケット再利用可能監視時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

プロセス内のソケット用に使用しているファイル記述子の数が,max_socket_descriptorsオペランドの指定値になった時点から,一時クローズ処理によってソケットが再利用できるようになるまでの監視時間(秒)を指定します。

一時クローズ処理は,コネクションを確立したプロセス間の合意によってコネクションを切断するため,一時クローズ処理の要求を送信したプロセスはその応答を受けるまではコネクションを切断できません。応答を受信したあと,コネクションは切断され,ソケットが再利用できるようになります。

ipc_sockctl_watchtimeオペランドの指定値を経過しても,どのプロセスからも一時クローズ処理要求に対する応答が返らない場合,プロセスは強制停止されます。ipc_sockctl_watchtimeオペランドに0を指定した場合,無限に待ちます。

ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。

scs_prf_trace_level=リモートAPI機能における性能検証用トレース取得レベル

 ~〈符号なし整数〉((00000000~00000009))《00000001》

リモートAPI機能における性能検証用トレースの取得レベルを指定します。指定した値が次に示すビットを含む場合,情報を取得します。性能検証用トレースの取得レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。

00000000
リモートAPI機能における性能検証用トレースを取得しません。
00000001
イベントIDが0x5001~0x5008の性能検証用トレースを取得します。
00000008
イベントIDが0x5200,または0x5201の性能検証用トレースを取得します。

イベントIDの詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。

rap_extend_function=リモートAPI機能の機能拡張レベル

 ~〈16進数字〉((00000000~00000001)) 《00000000》

リモートAPI機能の機能拡張レベルを指定します。機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。

00000000
リモートAPI機能を機能拡張しません。
00000001
rapクライアントとrapサーバ間のdc_rpc_call関数の処理でタイムアウト事象が発生した場合のdc_rpc_call関数のリターン値を,DCRPCER_NET_DOWN(-306)からDCRPCER_TIMED_OUT(-307)に変更します。

リターン値が変更となるのは次の場合です。

このオペランドの指定は,rapサーバがrapクライアントとして動作した場合に有効となります。SUP,SPPまたはMHPがrapクライアントとなる場合は,ユーザサービス定義またはユーザサービスデフォルト定義に指定してください。

watch_time=最大応答待ち時間

 ~〈符号なし整数〉((0~65535))(単位:秒)

rapサーバがRPCを代理実行する場合,サービス要求を送信してからサービスの応答が返るまでの最大待ち時間を指定します。

OpenTP1の終了処理で,このオペランドで指定した時間だけ終了処理を待ち合わせる場合があります。したがって,大きな値を指定した場合,OpenTP1の終了処理に時間が掛かるときがあります。

指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。0を指定した場合は,応答を受信するまで待ち続けます。また,0を指定した場合,OpenTP1が終了しないときがあります。

このオペランドは,システム共通定義のwatch_timeオペランドのデフォルト値で使用してください。

特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。

システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。

このオペランドを省略し,ユーザサービスデフォルト定義でも指定を省略した場合,システム共通定義の値を仮定します。ただし,rapクライアント側で最大応答待ち時間を引き継ぐ設定にした場合は,rapクライアント側で設定した値が有効になります。

コマンド形式

なし。

注意事項