ユーザサービス定義
形式
set形式
set service_group="サービスグループ名" set module="実行形式プログラム名" set service="サービス名=エントリポイント名〔;UAP共用ライブラリ名〕" 〔,"サービス名=エントリポイント名〔;UAP共用ライブラリ名〕"〕… 〔set nice=プロセスの優先順位の変更〕 〔set parallel_count=常駐プロセス数〔,最大プロセス数〕〕 〔set hold=Y|N〕 〔set hold_recovery=Y|N〕 〔set deadlock_priority=デッドロックの優先順位〕 〔set schedule_priority=スケジュールの優先順位〕 〔set message_buflen=最大メッセージ長〕 〔set message_store_buflen=メッセージ格納バッファプール長〕 〔set trn_expiration_time=トランザクションブランチ限界経過時間〕 〔set trn_expiration_time_suspend=Y|N|F〕 〔set watch_next_chain_time=連鎖RPC間隔監視時間〕 〔set atomic_update=Y|N〕 〔set receive_from=queue|socket|none〕 〔set uap_trace_max=UAPトレース格納最大数〕 〔set uap_trace_file_put=Y|N〕 〔set term_watch_time=連続異常終了限界経過時間〕 〔set mcf_jnl_buff_size=MCFのジャーナルバッファの大きさ〕 〔set type=other|MHP〕 〔set balance_count=1プロセスが処理するサービス要求数〕 〔set uid=ユーザ識別子〕 〔set auto_restart=Y|N〕 〔set critical=Y|N〕 〔set lck_wait_priority=排他待ちの優先順位〕 〔set mcf_psv_id=アプリケーション起動プロセス識別子〕 〔set trn_cpu_time=トランザクションブランチCPU監視時間〕 〔set service_hold=Y|N〕 〔set service_priority_control=Y|N〕 〔set message_cell_size=スケジュールメッセージ格納セル長〕 〔set max_socket_msg=ソケット受信型サーバ受信メッセージ数の最大値〕 〔set max_socket_msglen=ソケット受信型サーバ受信メッセージ長の最大値〕 〔set trf_put=Y|N〕 〔set mcf_mgrid=アプリケーション起動プロセスの属するMCFマネジャ識別子〕 〔set mcf_service_max_count=MCF通信関数発行回数上限値〕 〔set trn_statistics_item=統計情報項目〔,統計情報項目〕…〕 〔set node_down_restart=Y|N〕 〔set rpc_response_statistics=Y|N〕 〔set server_type="betran"|"xatmi"|"xatmi_cbl"〕 〔set trn_rm_open_close_scope=process|transaction〕 〔set trn_optimum_item=トランザクション最適化項目 〔,トランザクション最適化項目〕…〕 〔set purge_msgget=Y|N〕 〔set cancel_normal_terminate=Y|N〕 〔set prc_abort_signal=アボート用シグナル番号〕 〔set rpc_service_retry_count=サービスのリトライ回数の最大値〕 〔set rpc_extend_function=RPCサービスの機能拡張レベル〕 〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕 〔set max_open_fds=UAPプロセスでアクセスするファイルおよびパイプの最大数〕 〔set service_term_watch_time=連続サービス異常終了限界経過時間〕 〔set termed_after_service=Y|N〕 〔set xat_trn_expiration_time=同期点処理の限界経過監視時間〕 〔set xat_osi_usr=Y|N〕 〔set rpc_trace=Y|N〕 〔set rpc_trace_name="RPCトレースを取得するファイル名"〕 〔set rpc_trace_size=RPCトレースを取得するファイルのサイズ〕 〔set trn_rollback_information_put=no|self|remote|all〕 〔set schedule_method=msgque|namedpipe〕 〔set service_wait_time=ユーザサーバの非常駐プロセスのサービス 要求待ち時間〕 〔set mcf_spp_oj=Y|N〕 〔set adm_message_option=メッセージ出力指定〕 〔set trn_watch_time=トランザクション同期点処理時の最大通信待ち時間〕 〔set trn_limit_time=トランザクションブランチ最大実行可能時間〕 〔set trn_rollback_response_receive=Y|N〕 〔set trn_partial_recovery_type=type1|type2|type3〕 〔set rpc_destination_mode=namdonly|namd|definition〕 〔set rpc_rap_auto_connect=Y|N〕 〔set rpc_rap_inquire_time=リモートAPI機能を使用して要求するサービスの 問い合わせ間隔最大時間〕 〔set rpc_request_cancel_for_timedout=Y|N〕 〔set status_change_when_terming=Y|N〕 〔set service_expiration_time=サービス関数開始から終了までの 実行監視時間〕 〔set multi_schedule=Y|N〕 〔set make_queue_on_starting=Y|N〕 〔set loadcheck_interval=負荷監視インタバル時間〕 〔set levelup_queue_count=U1,U2〕 〔set leveldown_queue_count=D0,D1〕 〔set ipc_sockctl_highwater= ソケットの一時クローズ処理開始数パーセンテージ 〔,ソケットの一時クローズ処理非対象数パーセンテージ〕〕 〔set ipc_sockctl_watchtime=ソケット再利用可能監視時間〕 〔set ipc_conn_interval=コネクション確立監視時間〕 〔set ipc_send_interval=データ送信監視間隔〕 〔set ipc_send_count=データ送信監視回数〕 〔set ipc_header_recv_time=通信制御データの受信監視時間〕 〔set rpc_close_after_send=Y|N〕 〔set rpc_send_retry_count=TCP/IPコネクションの接続時にエラーが発生した 場合のリトライ回数〕 〔set rpc_send_retry_interval=TCP/IPコネクションの接続時にエラーが発生し た場合のリトライ間隔〕 〔set ipc_recvbuf_size=TCP/IPの受信バッファサイズ〕 〔set ipc_sendbuf_size=TCP/IPの送信バッファサイズ〕 〔set ipc_listen_sockbufset=Y|N〕 〔set polling_control_data=Y|N〕 〔set thread_yield_interval=ソケットの再利用指示を受信できる契機を 与えるインタバル時間〕 〔set groups=グループ識別子〔,グループ識別子〕…〕 〔set loadlevel_message=Y|N|A〕 〔set ipc_backlog_count=コネクション確立要求を格納するキューの長さ〕 〔set rpc_buffer_pool_max=プーリングするバッファ数〕 〔set schedule_delay_limit=スケジュール遅延限界経過時間〕 〔set schedule_delay_abort=Y|N〕 〔set rap_autoconnect_con_error_msg=Y|N〕 〔set core_shm_suppress=Y|N〕 〔set xat_connect_resp_time=通信イベント処理用SPPのアソシエーション確立の 最大応答待ち時間〕 〔set scd_poolfull_check_interval=KFCA00853-Eメッセージ出力インタバル 時間〕 〔set scd_poolfull_check_count=KFCA00853-Eメッセージ出力判断値〕 〔set scd_pool_warning_use_rate=警告メッセージの出力判断値になるメッセージ 格納バッファプール使用率の上限値〕 〔set scd_pool_warning_interval=メッセージ格納バッファプール使用率超過時の 警告メッセージ出力インタバル時間〕 〔set ipc_tcpnodelay=Y|N〕 〔set stay_watch_queue_count=スケジュールキューの滞留監視判定を開始する際 の判断になるサービス要求滞留数〕 〔set stay_watch_check_rate=スケジュールキューの滞留監視判定処理で使用する サービス要求の処理率〕 〔set stay_watch_abort=Y|N〕 〔set stay_watch_start_interval=スケジュールキューの滞留監視インタバル 時間〕 〔set stay_watch_check_interval=スケジュールキューの滞留監視判定インタバル 時間〕 〔set trn_completion_limit_time=トランザクション完了限界時間〕 〔set rap_message_id_change_level=メッセージIDの変更レベル〕 〔set log_audit_out_suppress=Y|N〕 〔set log_audit_message=監査ログ取得メッセージID 〔,監査ログ取得メッセージID〕…〕 〔set mcf_prf_trace=Y|N〕 〔set scd_refresh_process=Y|N〕 〔set rap_extend_function=リモートAPI機能機能拡張レベル〕 〔set prc_coredump_filter=coreファイルに共有メモリを含めるかの判断値〕 〔set watch_time=最大応答待ち時間〕 〔set scd_process_ctl_opt=0|1〕 〔set rpc_rap_inquire_time_check=Y|N〕 〔set stack_size_unlimited=Y|N〕
コマンド形式
〔trnrmid -n リソースマネジャ名 -i リソースマネジャ拡張子〔,リソースマネジャ拡張子〕… 〔-k〕〕 〔scdbufgrp -g スケジュールバッファグループ名 {〔-s メッセージ格納バッファ使用制限サイズ〕| 〔-p メッセージ格納バッファ使用制限率〕}〕 〔scdmulti 〔-g マルチスケジューラグループ名〕〕 〔scdsvcdef 〔-c サービス名〕 〔-p 同時実行可能なサービス数〕 〔-n キューイング可能なサービス要求数〕 〔-l キューイング可能なメッセージ格納バッファプール長〕〕
putenv形式
{{〔putenv 環境変数名 環境変数値〕}} 〔putenv DCFPL_CONNECT_RETRY_COUNT コネクション確立処理をリトライする 回数〕 〔putenv DCFPL_CONNECT_RETRY_INTERVAL コネクション確立処理のリトライ 間隔〕 〔putenv XAT_CONNECT_RESP_TIME 通信イベント処理用SPPのアソシエーション 確立の最大応答待ち時間〕
dcputenv形式
{{〔dcputenv 環境変数名 環境変数値〕}}
機能
ユーザサーバの実行環境をユーザサーバごとに定義します。
RPCでサービスを要求する場合は,「サービスグループ名+サービス名」を指定します。サービスグループ名はUAP(SPP,MHP)の実行形式プログラムに対応します。また,サービス名は実行形式プログラムを構成する個々の関数(サービス関数)に対応します。
OpenTP1は,指定されたサービスグループ名ごとに対応するスケジュールキューへサービス要求を登録します。
ユーザサービス定義の項目を省略した場合は,ユーザサービスデフォルト定義の値を省略時解釈値とします。
ユーザサービス定義のファイル名がユーザサーバ名になります。
このユーザサーバ名をユーザサービス構成定義で指定します。
説明
set形式のオペランド
●service_group="サービスグループ名"
〜〈1〜31文字の識別子〉
サービスグループ名を指定します。
サービスグループ名は,ネットワークで接続されるすべてのOpenTP1システムの中で一意になるように指定してください。
SUPの場合は,指定する必要はありません。
●module="実行形式プログラム名"
〜〈1〜14文字の識別子〉
このサービスグループを実行する実行形式プログラム名を指定します。
この実行形式プログラムはプロセスサービス定義で指定したディレクトリにあります。
OSがHP-UXの場合に,リンケージの際のバインドモードが"immediate"でない実行形式ファイルを指定すると,OpenTP1の動作は保証しません。アプリケーションのバインドモードが"immediate"かどうかは,OSのchatrコマンドを使用して確認してください。
●service="サービス名=エントリポイント名〔;UAP共用ライブラリ名〕"〔,"サービス名=エントリポイント名〔;UAP共用ライブラリ名〕"〕…
- サービス名,およびエントリポイント名 〜〈1〜31文字の識別子〉
-
このサービスグループに属するサービス名とそのサービスを提供するエントリポイント名の組をすべてのサービスについて指定します。なお,サービス名とエントリポイント名の間にある「=」の前後に,空白,タブコードなどを指定しないでください。
エントリポイント名とは,Cの関数名であり,COBOLのプログラム名,または入り口名のことです。スタブを使うサービスの場合は,エントリポイント名にRPCインタフェース定義に指定する名称と同じ指定をします。
サービス名とエントリポイント名は,1対1で対応させてください。複数のサービス名に一つのエントリポイント名を対応させることはできません。なお,「サービス名=エントリポイント名」の指定回数に上限はありません。
- UAP共用ライブラリ名 〜〈1〜255文字のパス名〉
-
サービス関数動的ローディング機能を使うサービスの場合,UAP共用ライブラリのパス名を指定します。UAP共用ライブラリ名に,空白,タブコードなどを指定しないでください。
なお,定義チェックでは,UAP共用ライブラリ名に空白やタブコードなどを指定していないかどうかだけが対象とされます。空白やタブコードを指定していないときは,無条件にUAP共用ライブラリのローディングが実行されます。
サービス関数動的ローディング機能を使う場合は,RPCインタフェース定義にはエントリポイント名の指定は不要です。UAP共用ライブラリを省略した場合,スタブを使うサービスとします。
AIX版OpenTP1で,サービス関数動的ローディング機能を使う場合,SPPのリンケージライブラリにはlibbetran2.aを,MHPのリンケージライブラリにはlibbetran2.aおよびlibmcf2.aを使用してください。これらのライブラリが使用されなかった場合は,動作を保証しません。ただし,AIX版のuCosminexus TP1/Server Base(64)の場合には,libbetran.aとlibbetran2.aが使用できます。
-
スタブだけを使うサービスの場合
次の指定例のとおりに指定した場合,サービスはRPCインタフェース定義に指定したエントリポイント名の順で検索されます。
指定例:
set service = "serviceA=serviceA"
-
サービス関数動的ローディング機能だけを使うサービスの場合
このオペランドにサービス関数動的ローディング機能を使うサービスを指定した場合,サービスはこのオペランドに指定したサービスの順で検索されます。
-
UAPライブラリに環境変数を使用する場合
指定例:
set service = "serviceA=serviceA; $USRDIR/lib/usrlib.so"
putenv USRDIR /OLTP1/usrdir
UAP共用ライブラリ名のパス名に環境変数を指定する場合,パス名の先頭だけ指定できます。また,ここで指定する環境変数は,ユーザサービスデフォルト定義またはユーザサービス定義に指定できます。
このオペランドに限り,使用する環境変数がこのオペランドの指定値より下位に設定されていても有効となります。なお,環境変数を指定した場合は,環境変数展開後のパス名で最大255文字指定できます。
-
UAPライブラリに名称を絶対パスで指定する場合
指定例:
set service = "serviceA=serviceA;/OLTP1/usrdir/lib/usrlib.so"
UAP共用ライブラリ名に,UAP共用ライブラリ名称の絶対パスを指定した場合,OpenTP1は指定したUAP共用ライブラリを検索して使用します。
-
UAPライブラリにライブラリ名称だけを指定する場合
指定例:
set service = "serviceA=serviceA;usrlib.so"
UAPライブラリにライブラリ名称だけを指定した場合,OpenTP1は指定したUAP共用ライブラリをOSのライブラリサーチパス(環境変数)を基に検索して使用します。
OSのライブラリサーチパス(環境変数)は,prcdlpathコマンドで変更できます。prcdlpathコマンドについては,マニュアル「OpenTP1 運用と操作」を参照してください。
UAP共用ライブラリ名称だけを指定する場合は,次の指定例のように,ユーザサービス定義またはユーザサービスデフォルト定義のどちらかで,UAP共用ライブラリが格納されているディレクトリパスをOSのライブラリサーチパス(環境変数)に指定してください。
指定例:
この例では,UAP共用ライブラリが格納されているディレクトリパスを/usr/local/libとします。
putenv形式の場合:putenv OSのライブラリサーチパス(環境変数) OpenTP1ホームディレクトリ/lib:/usr/local/lib
dcputenv形式の場合:dcputenv OSのライブラリサーチパス(環境変数) $DCDIR/lib:/usr/local/lib
-
-
スタブおよびサービス関数動的ローディング機能を使用するサービスを併用する場合
このオペランドに,スタブおよびサービス関数動的ローディング機能を使用するサービスを指定した場合,サービスはこのオペランドに指定したサービスの順で検索されます。
指定例:
set service = "serviceA=serviceA","serviceB=serviceB;/OLTP1/usrdir/lib/usrlib.so"
RPCのサービス関数,およびRPCインタフェース定義の詳細については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。
SUPの場合は,指定する必要はありません。
●nice=プロセスの優先順位の変更
〜〈符号なし整数〉((0〜39))
このサービスグループプロセスのnice値に加える値を指定します。プロセスのnice値は正の整数で,この値が大きくなるとCPUの優先順位は低くなります。niceの詳細については,ユーザの使用するOSの,該当するマニュアルを参照してください。
●parallel_count=常駐プロセス数〔,最大プロセス数〕
〜〈符号なし整数〉((0〜1024))
このサービスグループ内のサービスを並行処理するプロセス数を指定します。
常駐プロセス数を指定すると,同じサービスグループ内のサービスを処理するサーバプロセスを同時に複数起動するマルチサーバ機能が使用できます。マルチサーバ機能を使用することで,サービス要求に対する処理性能が向上します。なお,常駐プロセス数が0でも最大プロセス数が指定されていれば,マルチサーバ機能は使用できます。
最大プロセス数を指定すると,常駐プロセス数を超える処理は非常駐プロセス数を動的に増減して処理されます。指定した最大プロセス数以内でサーバプロセスの起動を制御するため,OpenTP1システムの性能が低下するのを防げます。
-
常駐プロセス数と最大プロセス数の両方に0を指定することはできません。
-
最大プロセス数を指定する場合は,常駐プロセス数以上の値を指定します。
-
最大プロセス数を省略した場合は,すべてのプロセスが常駐プロセスとなります。
-
すべてのプロセスを非常駐プロセス(必要に応じて起動)とする場合は,常駐プロセス数に0を指定し,最大プロセス数に非常駐プロセス数を指定します。
なお,常駐プロセス数に0を指定し,最大プロセス数を省略した場合は,定義エラーになります。
このサービスグループ内のサービスでトランザクション処理をする場合,サービスを処理するプロセスは,トランザクションが終了するまで次のサービスを処理できません。したがって,最大プロセス数に1を指定した場合,一つのトランザクション内では,このサービスグループ内の複数のサービスを呼び出すことはできません。
非常駐プロセスを指定しているユーザサーバやscdrsprcコマンドを使用すると,一時的に最大でユーザサービス定義のparallel_countオペランドの指定値の倍のプロセス数(常駐プロセス数と最大プロセス数を指定している場合は最大プロセス数の倍,常駐プロセス数だけを指定している場合は常駐プロセス数の倍)が起動されることがあります。
非常駐プロセスを指定しているユーザサーバ,およびscdrsprcコマンドで,倍のプロセス数が起動されるタイミングを次に示します。
- 非常駐プロセスを指定しているユーザサーバの場合
-
終了しようとしているプロセスが,dc_rpc_mainloop関数またはdc_mcf_mainloop関数の終了後からdc_rpc_close関数終了までの区間にある場合で,新たなサービス要求を受け付けたタイミング
- scdrsprcコマンドで再起動するユーザサーバの場合
-
終了しようとしているプロセスが,dc_rpc_mainloop関数またはdc_mcf_mainloop関数の終了後からdc_rpc_close関数終了までの区間にある場合で,新たなプロセス起動を行ったタイミング
新たなプロセスが起動する契機については,マニュアル「OpenTP1 運用と操作」のscdrsprcコマンドの説明を参照してください。
SPPのソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。
●hold=Y|N
このサービスグループ下のサービスを実行中にサーバプロセスが異常終了した場合,このサービスグループ,またはサービスを閉塞するかどうかを指定します。
- Y
-
サービスグループ,またはサービスを閉塞します。
- N
-
サービスグループ,またはサービスを閉塞しません。
サービスグループを閉塞するか,サービスを閉塞するかは,service_holdオペランドの指定に従います。
サービスグループの閉塞とは,対象となるサービスグループのスケジュール要求を受けてもサーバプロセスを起動しないことです。ただし,サービスの閉塞の場合は,同じサービスグループ内のほかのサービスが閉塞していなければ,サーバプロセスを起動します。このとき,サービス要求はサービス要求元にエラーリターンします。
SPPのソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。MHPの場合,サービス開始前に異常終了したときに,このオペランドの指定に従った動作になります。サービス開始後の動作はアプリケーション属性定義(mcfaalcap定義コマンド)の指定に従います。
●hold_recovery=Y|N
全面回復時にサービスグループ,およびサービスの閉塞状態を引き継ぐかどうかを指定します。
- Y
-
サービスグループ,およびサービスの閉塞状態を引き継ぎます。
- N
-
サービスグループ,およびサービスの閉塞状態を引き継ぎません。
SPPのソケット受信型サーバ,SUP,およびMHPの場合は,指定する必要はありません。
システム環境定義のstart_scheduling_timingオペランドにBEFOREを指定した場合,このオペランドの指定に関係なく,閉塞状態は引き継がれません。閉塞状態を引き継ぐ場合には,スケジュールサービス定義のscd_hold_recoveryオペランドにFを指定してください。各オペランド指定による閉塞状態の引き継ぎについては,スケジュールサービス定義のscd_hold_recoveryオペランドを参照してください。
●deadlock_priority=デッドロックの優先順位
〜〈符号なし整数〉((1〜127))
UAPのデッドロックの優先順位を指定します。
指定する値が小さいほど優先順位は高くなります。デッドロックが発生すると,優先順位のいちばん低いUAPの排他要求をエラーリターンします。
●schedule_priority=スケジュールの優先順位
〜〈符号なし整数〉((1〜16))
サービスグループのスケジュールの優先順位を指定します。
指定する値が小さいほど優先順位は高くなります。
プロセスサービス定義で指定した最大同時サーバプロセス数の上限までサーバプロセスが起動された状態で,新たなサービス要求が発生したときに優先順位を比較します。
優先順位が最も低いサービスグループのサーバプロセスを順次停止して,これより高い優先順位を持つサービスグループのサーバプロセスを起動します。
SPPのソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。
●message_buflen=最大メッセージ長
〜〈符号なし整数〉((1024〜31457280))(単位:バイト)
共用メモリにあるクライアントからのメッセージをユーザサーバが受信するためのユーザデータ格納領域の大きさを指定します。プロセス固有の領域です。
OpenTP1システムは各メッセージに512バイトの制御情報を付加するため,その値を加算した大きさを指定してください。
ソケット受信型サーバを除くSPPの場合は,dc_rpc_call関数のin_len設定値+512バイトを指定してください。
MHPの場合は,1024バイトを指定してください。
ソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。
●message_store_buflen=メッセージ格納バッファプール長
〜〈符号なし整数〉((1024〜31457280))(単位:バイト)
クライアントからのメッセージをいったん格納しておく共用メモリのプールの大きさを指定します。
クライアントからのメッセージをユーザサーバに渡す前にためておく領域です。
クライアントから送信されるメッセージの中で最大値以上を指定します。
また,OpenTP1システムは各メッセージに512バイトの制御情報を付加するため,その値を加算した大きさを指定してください。
プールに格納されたメッセージは,FIFO方式でスケジュールされてユーザサーバに渡されます。ユーザサーバのメッセージの取り出しが遅れると,このプールにメッセージがたまり,以後クライアントからのサービス要求は受け付けられません。このため余裕のある値を指定してください。
次の機能を使用する場合は,message_cell_sizeオペランドで指定した値の整数倍になる値を指定してください。
-
プライオリティスケジューリング機能(service_priority_controlオペランドにYを指定する)
-
サービス単位の閉塞機能(service_holdオペランドにYを指定する)
-
サービス単位のスケジュール制御機能(scdsvcdef定義コマンドを指定する)
整数倍になっていない場合,ここで指定した値をmessage_cell_sizeオペランドの整数倍に切り上げて,スケジュールメッセージ格納バッファプールサイズとして使用します。
次の計算式で求めた値を指定してください。算出値が1024より小さい場合は,1024を指定してください。
- ソケット受信型サーバを除くSPPの場合
メッセージ格納バッファプール長=(M+C)×S
-
M:該当するユーザサーバで受信する最大メッセージ長
ユーザデータの圧縮(rpc_datacompオペランド)を使用している場合でも,圧縮前のメッセージ(ユーザデータ)長を使用してください。
-
C:制御情報の付加分(512バイト)
-
S:滞留の数
-
- MHPの場合
-
- MHPプロセスがすべて常駐,またはbalance_countオペランドで0を指定しているとき
メッセージ格納バッファプール長=C×P
- それ以外のとき
メッセージ格納バッファプール長=C×P×B
-
C:制御情報の付加分(512バイト)
-
P:parallel_countオペランドで指定する最大プロセス数
-
B:balance_countオペランドの指定値
-
SPPのソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。
なお,ユーザサービス定義またはユーザサービスデフォルト定義に,scdbufgrp定義コマンドを指定した場合,message_store_buflenオペランドの指定値は無視されます。
●trn_expiration_time=トランザクションブランチ限界経過時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
トランザクションブランチの処理を監視する限界経過時間を指定します。指定時間を超えた場合は,このトランザクションブランチのプロセスを異常終了させて,ロールバックします。0を指定した場合は,時間監視をしません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
これらの定義のほかに関数を発行して監視時間を指定することもできます。関数の詳細については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。
なお,RPC機能を使用した場合に,他プロセスで実行するトランザクションブランチの処理時間も監視時間に含むかどうかは,trn_expiration_time_suspendオペランドで指定してください。
また,メッセージ制御機能(TP1/Message Control)を使用した同期型のメッセージ処理を行う場合,メッセージ送受信時間を監視時間に含むかどうかは,trn_expiration_time_suspendオペランドで指定してください。
- 注
-
トランザクションブランチ限界経過時間の精度は秒単位です。そのため,タイミングによっては,このオペランドに指定した値よりも最大約1秒長い時間でプロセスを強制停止することがあります。
●trn_expiration_time_suspend=Y|N|F
トランザクションブランチの処理を監視するとき,次の処理時間も監視時間に含むかどうかを指定します。
-
監視対象のトランザクションブランチが,RPC機能を使ってほかのトランザクションブランチを呼び出し,その処理が終わるのを待つ時間
-
連鎖RPCで呼び出されたサーバUAPが,次のサービス要求を待つ時間
-
監視対象のトランザクションブランチが,非同期RPCを使用してほかのトランザクションブランチを呼び出したあと,処理結果受信処理を行っている時間
-
監視対象のトランザクションブランチが,メッセージ制御機能(TP1/Message Control)を使用した同期型のメッセージ処理を行う場合のメッセージ送受信時間
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
このオペランドと各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
●watch_next_chain_time=連鎖RPC間隔監視時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
サーバUAPが連鎖RPCで呼び出された場合,前回のサービス要求に応答を返してから次のサービス要求を受けるまで,またはトランザクションが終了するまでの最大時間間隔を秒単位で指定します。指定した時間を超えると,UAPは異常終了します。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
この指定値は,サーバとなるUAPだけに有効です。0を指定すると,連鎖RPCでの次の要求が来るまで,またはトランザクションが終了するまで待ちます。
このオペランドと各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
●atomic_update=Y|N
このサービスグループのプロセスでトランザクションを発生させるかどうかを指定します。
- Y
-
このプロセスはトランザクションの範囲に入れます。
トランザクションの範囲に入る方法には次の二つがあります。
-
このプロセスでdc_trn_begin関数を新たに発行した場合
-
ほかのUAPからのサービス要求を受けて,OpenTP1システムが自動的に行う場合
-
- N
-
このプロセスはトランザクションの範囲に入れません。
dc_trn_begin関数やdc_trn_unchained_commit関数などのトランザクションサービス関数は使用できません。また,ジャーナル出力もできません。
なお,システム共通定義のjnl_fileless_optionオペランドにYを指定している場合,atomic_updateオペランドにYを指定してもNとして動作します。
●receive_from=queue|socket|none
ソケット受信型サーバは廃止したため,socketは使用できません。
サービス関数が受け取るメッセージを何を使って受信するかを指定します。
- queue
-
SPPおよびMHPの場合に指定します。
スケジュールキューを使用することで,dc_rpc_call関数を発行したときには起動されていないサーバプロセスを新たに起動して呼んだり,同じサーバプロセスを複数起動してロードバランスを測ったりする機能が使用できます。
- socket
-
UNIXドメイン,またはインターネットドメインを使用します。
SPPの場合に指定します。
このサーバはオンデマンド起動,およびノード間負荷バランス機能を使用できません。
- none
-
スケジュールサービスのスケジュールキュー,UNIXドメイン,およびインターネットドメインのどれも使用しません。
SUPの場合に指定します。
●uap_trace_max=UAPトレース格納最大数
〜〈符号なし整数〉((0〜4095))
UAPトレースの最大格納数を指定します。
- 0を指定した場合
-
UAPトレースを取得しません。
- 1以上を指定した場合
-
指定値+1のUAPトレースを取得します。
UAPトレースデータファイルまたは退避コアファイルに,UAPトレースの情報として次の情報を取得します。
-
サービス関数の開始
-
サービス関数の終了
-
OpenTP1のライブラリ関数の入り口または出口※
- 注※
-
OpenTP1のライブラリ関数がリターンするときは,入り口情報を取得した領域を出口情報で上書きするため,UAPトレースの格納数は1となります。ただし,TP1/Message Queue,およびオンラインテスタ(TP1/Online Tester)を使用している場合は,OpenTP1のライブラリ関数の入り口情報と出口情報で別の領域となるため,UAPトレースの格納数は2となります。
UAPトレースを参照することで,次に示す処理の流れを解析できます。
-
UAPが正常終了までに行った処理の流れ
-
UAPの異常終了時,障害が発生するまでにUAPが行った処理の流れ
この解析によって,ユーザはUAPに障害が起こった原因を解析でき,UAPを修正したり,システムを再構築したりする目安にできます。
UAPトレースの詳細については,マニュアル「OpenTP1 テスタ・UAPトレース使用の手引」を参照してください。
●uap_trace_file_put=Y|N
UAPトレースのトレース情報を,ファイルに取得するかどうかを指定します。
- Y
-
トレース情報をUAPトレースデータファイルに取得します。この場合,ユーザサーバを終了させないで,UAPトレースの編集出力ができるようになります。UAPトレースデータファイルについては,マニュアル「OpenTP1 運用と操作」を参照してください。
トレース情報をファイルに取得できなかった場合,プロセス固有領域にトレース情報を取得します。
- N
-
トレース情報をプロセス固有領域に取得します。この場合,ユーザサーバをアボートしたときにだけ,UAPトレースの編集出力ができます。
Yを指定した場合,ユーザサーバダウン時,またはOpenTP1終了後の再開始時に,UAPトレースデータファイルのバックアップファイルを各サーバ最大で6世代取得します。バックアップファイルの内訳は,該当するサーバの正常終了時に3世代,コアファイルの出力を伴う異常終了時に3世代です。バックアップファイルの格納先は,プロセスサービス定義のprc_coresave_pathオペランドに指定した,コアファイルの格納先です。
Windowsの場合,UAPトレースの編集出力はuatdumpコマンドで行います。uatdumpコマンドについては,マニュアル「OpenTP1 テスタ・UAPトレース使用の手引」を参照してください。
このオペランドは,ユーザサービス定義,ユーザサービスデフォルト定義でも指定できます。指定値の優先順位は次のとおりです(1.>2.>3.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
-
システム共通定義
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●term_watch_time=連続異常終了限界経過時間
〜〈符号なし整数〉((0〜32767))(単位:分)
このユーザサーバのサーバプロセスが異常終了した回数を監視する限界経過時間を指定します。0を指定した場合は,時間監視をしません。
ソケット受信型サーバを除くSPPは,holdオペランドにNを指定した場合に有効です。
SPPのソケット受信型サーバ,およびSUPはauto_restartオペランドにYを指定した場合に有効です。
MHPは,holdオペランドにNを指定し,サービス開始前にユーザサーバのサーバプロセスが異常終了した場合に有効です。
OpenTP1では,時間監視によってUAPプロセスを停止させることがあります。時間監視によってUAPプロセスが停止したとき,サーバの閉塞する条件を次の表に示します。
ユーザサーバの種類 |
holdオペランドの指定値 |
term_watch_timeオペランドの指定値 |
サーバが閉塞するかどうか |
---|---|---|---|
SPP MHP(サービス開始前) |
Y |
すべて (holdオペランドにYを指定した場合は,term_watch_timeオペランドの指定に関係なく,無条件で閉塞します) |
要因に関係なく無条件で閉塞します。 |
N |
0 |
閉塞しません。 |
|
0以外 |
term_watch_timeオペランドに指定した時間内に,3回異常終了すると閉塞します(要因によっては異常終了回数に数えない場合があります)。 |
||
MHP(サービス開始後) |
すべて |
すべて |
holdオペランドおよびterm_watch_timeオペランドの指定に関係なく,アプリケーション属性定義(mcfaalcap定義コマンド)の指定で閉塞するかどうかが決まります。 |
holdオペランドにNを指定し,term_watch_timeオペランドに0を指定しているときに,UAPの問題による異常終了があると,UAPプロセスの再起動とUAPプロセスの異常終了を繰り返します。例えば,非常駐プロセスだけのユーザサーバ(parallel_countオペランドの常駐プロセス数に0を指定)でholdオペランドにNを指定し,term_watch_timeオペランドに0を指定した場合,実行形式プログラム名に指定誤りがあると,サービス実行時にKFCA00713-Eメッセージを繰り返し出力します。これを防ぐため,term_watch_timeオペランドには0以外の値を指定することをお勧めします。
オペランドの異常終了回数のカウント条件を,次の表に示します。
異常終了要因 |
異常終了回数のカウント |
---|---|
UAPの問題による異常終了 |
カウントする |
ipc_sockctl_watchtime満了による異常終了 |
カウントする |
trn_cpu_time満了による異常終了 |
カウントする |
watch_next_chain_time満了による異常終了 |
カウントする |
xat_trn_expiration_time満了による異常終了 |
カウントする |
service_expiration_time満了による異常終了 |
カウントしない |
trn_expiration_time満了による異常終了 |
カウントしない |
trn_completion_limit_time満了による異常終了 |
カウントしない |
mcfaalcap -v ntmetim満了による異常終了 |
カウントしない |
prckill,dcsvstop -fdコマンドによる異常終了 |
カウントしない |
なお,term_watch_timeオペランドの指定時間内に3回連続してこのユーザサーバのサーバプロセスが異常終了した場合,ソケット受信型サーバを除くSPPは,holdオペランドの指定に関係なく,このサービスグループを閉塞し,SPPのソケット受信型サーバおよびSUPはauto_restartオペランドの指定に関係なく強制停止します。
MHPの場合は,サービス開始前,term_watch_timeオペランドの指定時間内に3回以上連続してユーザサーバのサーバプロセスが異常終了すると,このサービスグループのスケジュールを閉塞し,ユーザサーバを強制停止します。
ユーザサーバが,holdオペランドにNを,term_watch_timeオペランドに0以外を指定した場合に異常終了したときの例を,次に示します。
-
trn_cpu_timeオペランドの指定値を超えて異常終了した。
異常終了1回目です。閉塞しません。
-
trn_expiration_timeオペランドの指定値を超えて異常終了した。
異常終了回数にはカウントしません。閉塞しません。
-
UAPの問題によって異常終了した。
異常終了2回目です。閉塞しません。
-
trn_cpu_timeオペランドの指定値を超えて異常終了した。
異常終了3回目です。閉塞します。
term_watch_timeオペランドで指定した連続異常終了限界経過時間が解除される契機を,次に示します。
-
term_watch_timeオペランドの指定値の時間が経過したとき。
-
ユーザサーバの閉塞を解除したとき。
-
ユーザサーバを正常停止したあと,正常開始したとき。
-
OpenTP1を正常開始,再開始したとき。
●mcf_jnl_buff_size=MCFのジャーナルバッファの大きさ
〜〈符号なし整数〉((4096〜131072))(単位:バイト)
MCFの実行によって取得されるジャーナルデータを蓄えておく領域の大きさを指定します。
指定する値の計算については,「MCFマネジャ定義」のmcfmuap定義コマンドの-jオプションの説明を参照してください。
指定する値が大きいほどジャーナルを取得するときのディスクに対する入出力回数が少なくなります。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,MCFマネジャ定義のmcfmuap定義コマンドの-jオプションの値を仮定します。
MHPおよびTP1/Message Controlの機能を使用するSPPだけ有効です。
SUPの場合は,指定する必要はありません。
●balance_count=1プロセスが処理するサービス要求数
〜〈符号なし整数〉((0〜512))
このユーザサーバに対応するスケジュールキューに,処理されないで残っているサービス要求を,1プロセスで幾つ処理させるかを指定します。サービス要求が,(このオペランドの指定値)×(起動プロセス数)を超えてスケジュールキューに残っている場合には,非常駐プロセスを起動してサービス要求を処理させます。このオペランドは,parallel_countオペランドで非常駐プロセスを起動するように指定したサービスグループにだけ有効です。
次の場合には,必ずこのオペランドに0を指定してください。
-
非常駐プロセスだけで構成される(常駐プロセス数に0を,最大プロセス数に2以上を指定する)サーバで,リカーシブコールを使用する場合
-
一つの常駐プロセスと,ほかの非常駐プロセスで構成される(常駐プロセス数に1を,最大プロセス数に2以上を指定する)サーバで,リカーシブコールを使用する場合
0を指定すると,サービス要求のあった時点で起動されているすべてのプロセスがサービスを処理中の場合,非常駐プロセスが起動されます。
SPPのソケット受信型サーバおよびSUPの場合は,このオペランドを指定する必要はありません。
●uid=ユーザ識別子
〜〈符号なし整数〉((0〜4294967294))
このサービスグループのプロセスの所有者となるユーザIDを指定します。
OSに登録されているユーザIDを指定してください。
最大値はOSに依存するので,使用しているOSのマニュアルを参照してください。
●auto_restart=Y|N
UAPが異常終了した場合の処置を指定します。
- Y
-
UAPが異常終了した場合,プロセスを再起動します。
- N
-
UAPが異常終了した場合,プロセスを再起動しません。
ソケット受信型サーバを除くSPPおよびMHPの場合は,指定する必要はありません。
●critical=Y|N
このサービスグループを実行中にUAPが異常終了した場合のOpenTP1システムの処置を指定します。
- Y
-
UAPが異常終了した場合,OpenTP1システムを停止します。
- N
-
UAPが異常終了した場合,OpenTP1システムを続行します。
●lck_wait_priority=排他待ちの優先順位
〜〈符号なし整数〉((0〜127))
ユーザサーバがwait型の排他要求を発行して,排他待ちの状態となる場合の優先順位を指定します。
指定する値が小さいほど優先順位は高くなり,優先順位の低い排他要求より先に排他待ちが解除されます。0を指定した場合は,待ち行列の最後に登録されます。
優先順位を低く設定すると,あとから発行された優先順位の高い排他要求に追い越されることがあるので注意してください。
●mcf_psv_id=アプリケーション起動プロセス識別子
〜〈16進数字〉((01〜ff))
アプリケーション起動を実行する場合の,アプリケーション起動プロセス識別子を指定します。アプリケーション起動を実行するSPPには必ず指定してください。SUP,MHP,およびアプリケーション起動を実行しないSPPには,指定する必要はありません。
●trn_cpu_time=トランザクションブランチCPU監視時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。0を指定した場合は,監視しません。指定時間を超えた場合は,該当するトランザクションブランチのプロセスを異常終了し,ロールバックします。ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
●service_hold=Y|N
このサービスグループ下のサービスについて,サービス単位の閉塞管理をするかどうかを指定します。
- Y
-
サービス単位に閉塞管理します。
- N
-
サービス単位の閉塞管理はしません。
このオペランドにYを指定した場合,message_cell_sizeオペランドの指定が有効になります。
サービス単位の閉塞管理をすることによって,サービス単位にサーバ異常終了時の閉塞や,運用コマンドでの閉塞ができます。ただし,サーバ異常終了時のサービス単位の閉塞は,holdオペランドにYを指定,またはservice_term_watch_timeオペランドを指定したときだけできます。
対象となるサービスのスケジュール要求を受けた場合,サービス要求をサービス要求元にエラーリターンします。
SPPのソケット受信型サーバ,SUP,およびMHPの場合は,指定する必要はありません。
●service_priority_control=Y|N
サービス要求単位に指定された優先順位に従ってスケジューリングするかどうかを指定します。
- Y
-
サービス要求単位に指定された優先順位に従ってスケジューリングします。
- N
-
サービス要求単位に指定された優先順位に従ってスケジューリングしません。
このオペランドにYを指定した場合,message_cell_sizeオペランドの指定が有効になります。SPPのソケット受信型サーバ,SUP,およびMHPの場合は,指定する必要はありません。
●message_cell_size=スケジュールメッセージ格納セル長
〜〈符号なし整数〉((512〜31457280))(単位:バイト)
次の場合は,message_store_buflenオペランドで指定したスケジュールメッセージ格納バッファプールをセル分割してメッセージを格納します。そのときのセルサイズをここで指定します。
-
service_priority_controlオペランドにYを指定した場合
-
service_holdオペランドにYを指定した場合
-
scdsvcdef定義コマンドを指定した場合
スケジュールメッセージ格納バッファプールをセル分割した各セルには,セル管理テーブル(16バイト)を作成するため,そのサイズを考慮する必要があります。
また,このオペランドの指定値には,8の整数倍となる値を指定してください。指定した値が8の整数倍でない場合は,その値を8の整数倍に切り上げた値が指定されます。
message_store_buflenオペランドで指定した値が,この指定値の整数倍になっていない場合,message_store_buflenオペランドの値をこの指定値の整数倍に切り上げて,スケジュールメッセージ格納バッファプールサイズとして使用します。
service_priority_controlオペランド,およびservice_holdオペランドにNを指定し,かつscdsvcdef定義コマンドを省略した場合は,ここで指定する必要はありません。
また,SPPのソケット受信型サーバ,SUP,MHPの場合にも,指定をする必要はありません。
●max_socket_msg=ソケット受信型サーバ受信メッセージ数の最大値
〜〈符号なし整数〉((1〜500))
ソケット受信型サーバが受信するメッセージの最大数を指定します。
ソケット受信型サーバは,サービス受け付け状態ではないとき(トランザクションのコミット,ロールバック指示待ち,連鎖RPC中,またはRPCネストコールの応答待ちなど),新たなサービス要求を即時処理しないで,サービス受け付け状態に戻るまで保存します。
サーバが受信するメッセージ数がこのオペランドの指定を超えた場合,dc_rpc_call関数は,DCRPCER_SERVER_BUSYでエラーリターンします。
ソケット受信型サーバを除くSPP,SUP,およびMHPの場合は,指定する必要はありません。
●max_socket_msglen=ソケット受信型サーバ受信メッセージ長の最大値
〜〈符号なし整数〉((1〜30270))(単位:キロバイト)
ソケット受信型サーバが受信するメッセージ長の合計の最大値を指定します。
サーバが受信するメッセージ長の合計がこのオペランドの指定値を超えた場合,dc_rpc_call関数は,DCRPCER_SERVER_BUSYでエラーリターンします。
指定値は,サーバへ送信するメッセージの最大値以上にする必要があります。
また,指定値には,メッセージに付ける制御情報の大きさ(約0.3キロバイト)を加える必要があります。
ソケット受信型サーバを除くSPP,SUP,およびMHPの場合は,指定する必要はありません。
●trf_put=Y|N
該当するサーバで起動されたトランザクションが出力したジャーナルをトランザクションリカバリジャーナルに出力するかどうかを指定します。
- Y
-
トランザクションリカバリジャーナルファイルに出力します。
- N
-
トランザクションリカバリジャーナルファイルに出力しません。
トランザクションリカバリジャーナルファイルを作成すると,長時間トランザクションによって発生するジャーナル障害を防止でき,またリラン時間を短縮できます。ただし,この機能は,性能,およびメモリへのオーバヘッドがあるので,長時間トランザクションを使用するサーバの場合に指定してください。
系切り替え機能を使用するOpenTP1システムでは,この機能を使用できないため,ユーザサービス定義およびrapリスナーサービス定義のtrf_putオペランドにはNを指定してください。
●mcf_mgrid=アプリケーション起動プロセスの属するMCFマネジャ識別子
〜〈識別子〉((A〜Z,a〜z))
アプリケーション起動を実行する場合,アプリケーション起動プロセスが属しているMCFマネジャのMCFマネジャプロセス識別子を指定します。
SUP,MHP,およびアプリケーションを起動しないSPPの場合は,指定する必要はありません。
●mcf_service_max_count=MCF通信関数発行回数上限値
〜〈符号なし整数〉((0〜65535))
UAPの暴走を防止するために,MHPまたはSPPが発行するMCF通信関数※の発行回数上限値を指定します。
対象となる関数は,サービス関数の開始から終了までの間に該当プロセスで発行するMCF通信関数です。
指定回数を超えてMCF通信関数を発行した場合,該当プロセスを異常終了させます。
0を指定した場合は,MCF通信関数の発行回数に制限はありません。
指定値が有効となる優先順位は次のとおりです(1.>2.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
ユーザサービス定義およびユーザサービスデフォルト定義を省略した場合,MHPに限りMCFマネジャ定義のmcfmuap定義コマンドの-dオプションの値を仮定し,SPPでは0を仮定します。
- 注※
-
対象となる関数は次のとおりです。これらの関数に対応したDMLインタフェースについては,マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。
-
dc_mcf_commit関数 【CBLDCMCF('COMMIT ')】
-
dc_mcf_contend関数 【CBLDCMCF('CONTEND ')】
-
dc_mcf_execap関数 【CBLDCMCF('EXECAP ')】
-
dc_mcf_receive関数 【CBLDCMCF('RECEIVE ')】
-
dc_mcf_recvsync関数 【CBLDCMCF('RECVSYNC')】
-
dc_mcf_reply関数 【CBLDCMCF('REPLY ')】
-
dc_mcf_resend関数 【CBLDCMCF('RESEND ')】
-
dc_mcf_rollback関数 【CBLDCMCF('ROLLBACK')】
-
dc_mcf_send関数 【CBLDCMCF('SEND ')】
-
dc_mcf_sendrecv関数 【CBLDCMCF('SENDRECV')】
-
dc_mcf_sendsync関数 【CBLDCMCF('SENDSYNC')】
-
dc_mcf_tempget関数 【CBLDCMCF('TEMPGET ')】
-
dc_mcf_tempput関数 【CBLDCMCF('TEMPPUT ')】
-
●trn_statistics_item=統計情報項目〔,統計情報項目〕…
トランザクションブランチの統計情報を取得する項目を指定します。
- nothing
-
トランザクションブランチの統計情報を取得しません。
- base
-
基本情報として,次のトランザクションブランチの情報を取得します。
-
トランザクションブランチの識別子
-
トランザクションブランチの決着結果
-
トランザクションブランチの実行プロセス種別
-
トランザクションブランチの実行サーバ名
-
トランザクションブランチの実行サービス名
-
- executiontime
-
基本情報とトランザクションブランチの実行時間情報を取得します。
- cputime
-
基本情報とトランザクションブランチのCPU時間情報を取得します。
nothingの指定は,一つしかできません。また,nothingとほかの統計情報項目を同時に指定した場合,nothingの指定は無効になります。
トランザクションに関する統計情報を取得するときは次のどれかを指定してください。
-
トランザクションサービス定義のtrn_tran_statisticsオペランドにYを指定
-
trnsticsコマンドで-sオプションを指定
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクション定義の値を仮定します。
統計情報を取得する場合,取得情報の種類が多くなるほど,トランザクション性能が悪くなります。このため,統計情報は,システムチューニング時やトラブル調査時など,トランザクションの性能が悪くなってもかまわない場合に取得してください。
●node_down_restart=Y|N
OpenTP1再開始時,該当するユーザサーバを自動起動するかどうかを指定します。
該当するユーザサーバがdcstopコマンド実行前に正常終了した場合,この指定は無効となります。なお,次に示す場合は,status_change_when_termingオペランドの指定によって,正常終了したユーザサーバを起動するかどうかを決定します。
-
システム正常終了中に,ユーザサーバが正常終了したあとにシステムダウンが発生した場合
-
システム計画終了中に,dcstopコマンドで終了処理をする前にSUPが正常終了した場合
- Y
-
OpenTP1再開始時,自動起動します。
- N
-
OpenTP1再開始時,自動起動しません。
OpenTP1の異常終了後に再開始(リラン)でOpenTP1を起動させた場合,node_down_restartオペランドにNを指定しているユーザサーバは,リラン時の起動対象にならないで異常終了のままとなります。異常終了したままのユーザサーバがある場合にOpenTP1を正常停止させようとすると,OpenTP1が停止します。OpenTP1が停止した場合は,次に示すどちらかの対処をしてください。
-
該当ユーザサーバを一度正常開始または正常停止させたあとに,dcstopコマンドを実行してOpenTP1を正常停止させる。
-
-nオプションを指定したdcstopコマンドを実行してOpenTP1を強制正常停止させる。
●rpc_response_statistics=Y|N
- Y
-
レスポンス統計情報を取得します。
- N
-
レスポンス統計情報を取得しません。
レスポンス統計は,RPCコールのレスポンスタイム,サービスの実行時間,およびサーバのCPU時間などを取得します。
このオペランドは,dc_rpc_call関数のクライアント・サーバで個別に指定できます。レスポンス統計情報は,同期応答型RPC(連鎖RPCを含む)および非同期応答型RPCで取得します。
●server_type="betran"|"xatmi"|"xatmi_cbl"
サービス関数の呼び出し時,OpenTP1のパラダイムに従うか,XATMIのパラダイムに従うかを指定します。
- "betran"
-
サービス関数は,XATMIの関数を使用できません。
- "xatmi"
- "xatmi_cbl"
-
XATMIのCOBOL言語のサービスパラダイムに従います。
SUP,およびMHPの場合は,指定する必要はありません。
●trn_rm_open_close_scope=process|transaction
OpenTP1以外が提供しているリソースマネジャに対して,XAインタフェースである二つの関数(xa_open関数とxa_close関数)の発行タイミングを指定します。
- process
-
dc_rpc_open関数発行時にxa_open関数を発行し,dc_rpc_close関数発行時にxa_close関数を発行します。
- transaction
-
トランザクション開始時にxa_open関数を発行し,トランザクション終了時にxa_close関数を発行します。
processを指定した場合は,dc_rpc_open関数の発行からdc_rpc_close関数の発行までリソースマネジャの資源を占有します。したがって,トランザクションの性能を重視する場合はprocessを指定してください。
transactionを指定した場合は,トランザクションの開始終了ごとにxa_open関数,xa_close関数を発行します。したがって,リソースマネジャの資源を有効利用したい場合は,transactionを指定してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●trn_optimum_item=トランザクション最適化項目〔,トランザクション最適化項目〕…
複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を,次の文字列で指定します。
- base
-
同期点処理全体(プリペア処理,コミット処理,およびロールバック処理)を最適化します。OpenTP1のトランザクション制御は2相コミット方式で行っているため,二つのトランザクションブランチ間のコミット制御には,4回のプロセス間通信が必要となります。
次の条件をすべて満たす場合,親トランザクションブランチが子トランザクションブランチのコミット処理を代わりに行うことで,コミット制御で必要な4回のプロセス間通信を削減します。
-
親トランザクションブランチと,子トランザクションブランチが同一OpenTP1下にあること。
-
親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。
-
子トランザクションブランチでアクセスしたリソースマネジャのXAインタフェース用オブジェクトが,親トランザクションブランチにもリンケージされていること。
-
- asyncprepare
-
baseの指定条件を満たしていないため同期点処理全体の最適化ができない場合に,プリペア処理を最適化します。
次の条件をすべて満たす場合,親トランザクションブランチから発行されたRPCによって子トランザクションブランチがサービス要求を実行したときに,RPCのリターン前にプリペア処理を実行することで,2回のプロセス間通信を削減します。
-
baseを指定した最適化ができないこと。
-
親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。
ただし,この最適化を実行した場合,親トランザクションブランチが発行した同期応答型RPCの応答時間が遅くなります。また,子トランザクションブランチは,プリペア処理からコミット処理までの間隔(親トランザクションブランチからの指示がないとトランザクションを決着できない状態)が大きくなります。そのため,親トランザクションブランチのOpenTP1がシステムダウンし,トランザクションブランチ間の連絡ができなくなると,ジャーナルファイルのスワップやチェックポイントダンプファイルの有効化が遅れ,子トランザクションブランチのOpenTP1もシステムダウンする場合があります。
-
トランザクション最適化項目は,重複して指定できます。ただし,優先順位は次のようになります(1.>2.)。
-
base
-
asyncprepare
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●purge_msgget=Y|N
非常駐サーバについて,サーバプロセスがない場合に,OpenTP1がこのサービスグループに割り当てたOSのメッセージキュー(msggetシステムコールでの割り当て)を解放するかどうかを指定します。
このオペランドでYを指定すると,OSのメッセージキューをむだに占有しなくなります。解放は,サーバプロセス消滅後,約10秒間サービス要求が発生しない場合に行います。OSのメッセージキュー解放後にサービス要求が発生した場合,OSのメッセージキューを再度割り当ててサービス要求を処理します。
このオペランドでYを指定する場合は,ほかのサービスグループでもYを指定してください。これは,OSのメッセージキューが,一つのサービスグループに対して一つあるためです。そのため,ユーザサービスデフォルト定義のpurge_msggetオペランドにも,Yを指定してください。
このオペランドは,ユーザサービス定義のreceive_fromオペランドでqueueを指定し,かつparallel_countオペランドの常駐プロセス数に0を指定したサービスグループに対して有効です。それ以外のサービスグループは無視されます。
なお,OSのメッセージキューの再割り当てには数10ミリ秒掛かるため,このレベルで性能を重視するシステムでは注意してください。
●cancel_normal_terminate=Y|N
このユーザサーバで,dcsvstopコマンドでの正常終了を抑止するかどうかを指定します。
- Y
-
このユーザサーバでdcsvstopコマンドでの正常終了を抑止します。
- N
-
このユーザサーバでdcsvstopコマンドでの正常終了を抑止しません。
Yを指定した場合,このユーザサーバはdcsvstopコマンドでの強制停止,およびdcstopコマンドでの停止しか受け付けません。
●prc_abort_signal=アボート用シグナル番号
〜〈符号なし整数〉((1〜128))
OpenTP1下のサーバをアボートさせる際に使用する,シグナル番号を指定します。アボート用シグナル番号には,必ずコアファイル出力の動作をするシグナル番号を指定してください。コアファイル出力の動作をするシグナル番号を指定しないと,dcstopコマンドおよびdcsvstopコマンドでの強制終了時に,-dオプションを指定していてもコアファイルが生成されません。
prc_abort_signalオペランドで指定したシグナル番号は,次の表に示すとおりにサーバに送信されます。
シグナル番号が送信されるタイミング |
シグナル番号が送信されるサーバ |
---|---|
次に示す時間の満了時
|
時間監視が満了したサーバ |
次に示す方法でサーバを強制停止した時
|
強制停止させるサーバ |
●rpc_service_retry_count=サービスのリトライ回数の最大値
〜〈符号なし整数〉((0〜65535))
サービスリトライ機能で,サービス関数をリトライする最大回数を指定します。
0を指定すると,サービスリトライ機能を使用しません。そのため,dc_rpc_service_retry関数はエラーリターンし,サービス関数はリトライされません。
0以外を指定すると,指定された回数だけ連続してサービス関数がリトライされます。指定された回数を超えて呼び出されたdc_rpc_service_retry関数はエラーリターンし,サービス関数はリトライされません。
なお,サービスリトライ機能を使用できるのは,SPPだけになります。
●rpc_extend_function=RPCサービスの機能拡張レベル
〜〈16進数字〉((00000000〜0000000F))
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制御下のプロセス※1で,ソケット用に使用するファイル記述子の最大値を指定します。
指定値の範囲は,適用OSがAIX,HP-UXまたはWindowsの場合は32〜2032,適用OSがSolarisまたはLinuxの場合は32〜1008です。
OpenTP1制御下のプロセス※1では,システムサーバやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため,同時に稼働するUAPプロセスの数および通信する他ノードの数によって,ソケット用のファイル記述子の最大数を変更する必要があります。
このオペランドには,次の条件を満たす値を指定してください。
(「このオペランドの指定値」+同定義内の「max_open_fdsオペランドの指定値」)≦2048※2
条件を満たさない値を指定した場合は,このオペランドの指定値は次に示すように強制的に補正されます。
(「このオペランドの指定値」+同定義内の「max_open_fdsオペランドの指定値」)=2048※2
- 注※1
-
MCFサービス(MCFマネジャサービス,MCF通信サービス,およびアプリケーション起動サービス)以外のOpenTP1プロセスが対象です。MCFサービスの場合は,「システムサービス情報定義」および「システムサービス共通情報定義」を参照してください。
- 注※2
-
適用OSがAIX,HP-UXまたはWindowsの場合は2048,適用OSがSolarisまたはLinuxの場合は1024です。
ソケット用ファイル記述子の最大数の計算式を,次に示します。
↑(A+B+C+D+E×5+F)/0.8↑
↑↑:小数点以下を切り上げます。
A:このユーザサーバが通信する自ノード内のUAPプロセス数
B:このユーザサーバが通信する他ノード内のUAPプロセス数
- C:自ノード内のシステムサービスプロセス数
-
自ノード内のプロセス数は,rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスの実行形式ファイル名と一致する行数をカウントしてください。
D:ユーザサービスネットワーク定義のdcsvgdef定義コマンドに指定したrapサーバの数
E:システム共通定義のall_nodeオペランドとall_node_exオペランドに指定したノード数の総和,またはドメイン定義ファイルに指定したノード数の総和
- F:通信先ノードのスケジュールサービス定義のscdmulti定義コマンドで指定したマルチスケジューラデーモン数(-mオプション)の総和
-
n:通信先ノード数
このオペランドの指定値が小さいと,OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eメッセージを出力して異常終了します。
指定値の優先順位は次のとおりです(1.>2.>3.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
-
システム共通定義
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●max_open_fds=UAPプロセスでアクセスするファイルおよびパイプの最大数
〜〈符号なし整数〉((16〜2016))
ユーザサーバのプロセスでアクセスする,ファイルおよびパイプの最大数を指定します。
指定値の範囲は,適用OSがAIX,HP-UXまたはWindowsの場合は16〜2016,適用OSがSolarisまたはLinuxの場合は16〜992です。
ファイルおよびパイプのアクセスには,ファイル記述子が使われます。
ユーザサーバのプロセスで多くのファイルをアクセスすると,システムサーバやユーザサーバとの間でプロセス間の情報交換に使用するソケット用のファイル記述子が不足します。そのため,アクセスするファイルおよびパイプの数を事前に設定しておく必要があります。
ユーザサーバのプロセスでアクセスするファイルおよびパイプの最大数の計算式を,次に示します。
(DAMサービス,TAMサービス,MQAサービス,ジャーナルサービス,およびステータスサービスの各システム定義で指定した全OpenTP1ファイルシステム数※1)+(ISAMのキー数)+20※2+(ユーザファイル数※3)+(自ノード内でRPC先となるschedule_methodにnamedpipeを指定したユーザサーバ数※4)
- 注※1
-
オンラインで使用する,OpenTP1ファイルシステム領域数
- 注※2
-
リモートAPI機能を使用してサービスを要求する場合は,固定数20にさらに16を加えてください。
- 注※3
-
OpenTP1の制御下にない,ユーザが独自に使用するファイル
- 注※4
-
このユーザサーバから,自ノード内でRPC先となるユーザサーバのうちschedule_methodにnamedpipeを指定しているユーザサーバの数
このオペランドの指定値が小さいと,OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eメッセージを出力して異常終了します。
max_open_fdsオペランドに指定した値は,dc_rpc_open関数を発行することでUAPの動作環境に設定されます。OpenTP1は,UAPプロセス実行中にUAPプロセスでオープンするファイルディスクリプタの最大数の超過を検出すると,UAPプロセスを異常終了させます。
dc_rpc_open関数発行後にUAPプロセスでオープンするファイルディスクリプタの最大数をOSに対して再設定(変更)した場合,OpenTP1の認識する最大数と一致しなくなり,UAPプロセスがオープンするファイルディスクリプタの最大数の超過を検出できないため,OpenTP1がエラーを処理できません。このため,dc_rpc_open関数を呼び出したあとにUAPプロセスでオープンするファイルディスクリプタの最大数を変更しないでください。変更した場合の動作は保証できません。
●service_term_watch_time=連続サービス異常終了限界経過時間
〜〈符号なし整数〉((0〜32767))(単位:分)
このユーザサーバのサーバプロセスが,同一サービス実行中に異常終了した回数を監視する限界経過時間を指定します。0を指定した場合は,このオペランドを指定しなかったと見なし,時間監視をしません。
このオペランドを指定すると,指定した時間内にサーバプロセスが同一サービス実行中(dc_rpc_mainloop関数内)で3回異常終了した場合は,そのサービスを閉塞します。また,サーバプロセスがサービス実行中以外(dc_rpc_mainloop関数外)で3回異常終了した場合は,サービスグループを閉塞します。
このオペランドは,サーバプロセスが異常終了しても,サービスグループを閉塞しないでサービス単位で閉塞管理する場合(holdオペランドにNを指定し,service_holdオペランドにYを指定した場合)に有効となります。また,SPPのソケット受信型サーバ,SUP,およびMHPでは,指定しても無視されます。
このオペランドに0以外の値を指定すると,サービス単位で異常終了した回数を監視するため,term_watch_timeオペランドは,指定しても無視されます。
service_term_watch_timeオペランドの指定と,holdオペランド,service_holdオペランド,およびterm_watch_timeオペランドの指定の関係を,次に示します。
各オペランドの指定値 |
サーバプロセスが異常終了した回数とOpenTP1の処理 |
|||||
---|---|---|---|---|---|---|
hold |
service _hold |
term _watch _time |
service _term _watch _time |
1回目 |
2回目 |
3回目 |
Y |
Y |
× |
× |
サービス閉塞 |
− |
− |
N |
× |
× |
サービスグループ閉塞 |
− |
− |
|
N |
Y |
0 |
指定なし |
プロセス再起動 |
プロセス再起動 |
プロセス再起動 |
0以外 |
指定なし |
プロセス再起動 |
プロセス再起動 |
サービスグループ閉塞 |
||
0 |
0 |
プロセス再起動 |
プロセス再起動 |
プロセス再起動 |
||
0以外 |
0 |
プロセス再起動 |
プロセス再起動 |
サービスグループ閉塞 |
||
× |
0以外 |
プロセス再起動 |
プロセス再起動 |
サービス閉塞※ |
||
N |
0 |
× |
プロセス再起動 |
プロセス再起動 |
プロセス再起動 |
|
0以外 |
× |
プロセス再起動 |
プロセス再起動 |
サービスグループ閉塞 |
- (凡例)
-
×:指定できません(指定しても無視されます)。
−:何もしません。
- 注※
-
サーバプロセスがサービス実行中以外(dc_rpc_mainloop関数外)で3回異常終了した場合は,サービスグループを閉塞します。
●termed_after_service=Y|N
このユーザサーバで,サービス終了時に負荷が減少している場合に,非常駐プロセスを終了させるかどうかを指定します。
- Y
-
サービス終了時に負荷が減少している場合に,非常駐プロセスを終了させます。
- N
-
スケジュールサービスが,一定の間隔で不要な非常駐プロセスを終了させます。
通常OpenTP1では,一定の間隔(10秒)でプロセスの状態をチェックして,不要な非常駐プロセスを終了させています。しかし,サーバが非常に多いシステムでは一度に終了させるプロセス数が増え,プロセスの終了処理と同時に発生したサービス要求の処理性能が悪くなることがあります。
このオペランドにYを指定すると,サービス終了時にプロセスの状態をチェックします。そのため,一度に終了させるプロセス数が減り,プロセスの終了処理と同時に発生したサービス要求の処理性能が悪くなるのを防げます。また,システムで起動しているプロセス数を減らすことで,システムへの負荷を減らせます。
ただし,サービスが終了するたびにプロセスの状態をチェックするため,1回ごとのサービス要求の処理性能は悪くなります。また,システム形態によっては,非常駐プロセスの起動・終了が頻繁に発生するようになり,サービス要求の処理性能が悪くなることがあります。
SPPのソケット受信型サーバ,およびSUPの場合は,指定しても無視されます。
●xat_trn_expiration_time=同期点処理の限界経過監視時間
〜〈符号なし整数〉((1〜2147483647))(単位:秒)
TP1/NET/OSI-TP-Extendedを使った,XATMIインタフェースでのOSI TP通信を実行する場合に,他システムとの同期点処理の限界経過監視時間を指定します。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
TP1/NET/OSI-TP-Extendedの仕様については,マニュアル「OpenTP1 プロトコル TP1/NET/OSI-TP-Extended編」を参照してください。
MHPの場合は,指定しても無視されます。
●xat_osi_us=Y|N
このサーバで,TP1/NET/OSI-TP-Extendedを使った,XATMIインタフェースでのOSI TP通信用のスタブを使用するかどうかを指定します。
- Y
-
このサーバでXATMIインタフェースでのOSI TP通信用のスタブを使用します。
- N
-
このサーバでXATMIインタフェースでのOSI TP通信用のスタブを使用しません。
Nを指定すると,TP1/NET/OSI-TP-Extendedを使った,XATMIインタフェースでのOSI TP通信ができません。
TP1/NET/OSI-TP-Extendedの仕様については,マニュアル「OpenTP1 プロトコル TP1/NET/OSI-TP-Extended編」を参照してください。
MHPの場合は,指定しても無視されます。
●rpc_trace=Y|N
- Y
-
RPCトレースを取得します。
- N
-
RPCトレースを取得しません。
RPCトレースを取得した場合,処理速度が低下し,RPCがタイムアウトでエラーリターンすることがあります。その場合は,状況に応じて次の1.または2.の最大応答待ち時間(デフォルト値:180秒)を十分な値まで増やして対処してください。
-
watch_timeオペランド(システム共通定義,ユーザサービス定義,またはユーザサービスデフォルト定義で指定)に指定した最大応答待ち時間
-
クライアントからrapサーバに引き継いだ最大応答待ち時間
クライアントからrapサーバに最大応答待ち時間を引き継ぐかどうかは,クライアント環境定義のDCWATCHTIMINHERITオペランド(TP1/Client/W,TP1/Client/Pの場合),またはTP1/Client/J環境定義のdcwatchtiminheritオペランド(TP1/Client/Jの場合)で指定します。
DCWATCHTIMINHERITオペランドまたはdcwatchtiminheritオペランドにYが指定されている場合は,上記2.の最大応答待ち時間を使用してください。
DCWATCHTIMINHERITオペランドまたはdcwatchtiminheritオペランドにNが指定されているか,指定が省略されている場合は,上記1.の最大応答待ち時間を使用してください。
リモートAPI機能を使用する場合,このオペランドにYを指定しても,rapクライアントのRPCトレースは取得されません。
このオペランドは,ユーザサービスデフォルト定義,およびシステム共通定義でも指定できます。
指定値の優先順位は次のとおりです(1.>2.>3.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
-
システム共通定義
●rpc_trace_name=RPCトレースを取得するファイル名
〜〈パス名〉
RPCトレースを取得するファイルのパス名を指定します。
パス名のうち,RPCトレースを取得するファイル名(デフォルトはrpctr)の最大長は,13文字です。
パス名に環境変数を指定する場合,パス名の先頭に環境変数を指定してください(指定例:$DCDIR/tmp/ファイル名)。
●rpc_trace_size=RPCトレースを取得するファイルのサイズ
〜〈符号なし整数〉((1024〜2147483648))(単位:バイト)
RPCトレースを取得するファイルのサイズを指定します。
このオペランドに4096以下を指定していても,送受信された電文長がこの指定値を上回る場合,このオペランドで指定した値よりも大きなトレースファイルが作成されることがあります。
●trn_rollback_information_put=no|self|remote|all
トランザクションブランチがロールバックした場合に,ロールバック要因に関する情報をログに取得するかどうかを指定します。
- no
- self
-
ロールバック要因が発生したトランザクションブランチでだけ,ログにロールバック情報を取得します。
- remote
-
selfに加え,他ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。
- all
-
remoteに加え,自ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●schedule_method=msgque|namedpipe
ユーザサービス定義のservice_wait_timeオペランドを指定する場合に,namedpipeを指定してください。
このオペランドでnamedpipeを指定した場合の注意事項を次に示します。
-
msgqueを指定した場合に比べ,処理性能が劣化します。
-
スケジュールサービスで使用するファイルディスクリプタの数が,このオペランドを指定したユーザサーバ数だけ増加します。
このオペランドは,SPPのソケット受信型サーバおよびSUPの場合は指定する必要はありません。
●service_wait_time=ユーザサーバの非常駐プロセスのサービス要求待ち時間
〜〈符号なし整数〉((1〜4096))(単位:秒)
ユーザサーバの非常駐プロセスのサービス要求待ち時間を指定します。
このオペランドを指定したユーザサーバの非常駐プロセスは,このオペランドで指定した時間だけサービス要求を待ち,サービス要求がない場合に終了させます。このオペランドを省略した場合,一定間隔でスケジュールサービスが,サーバの負荷状態を監視して非常駐プロセスを終了させます。
このオペランドは,ユーザサービス定義のschedule_methodオペランドでnamedpipeを指定した場合に有効です。また,このオペランドを指定すると,ユーザサービス定義のtermed_after_serviceオペランドの指定が無効になります。
このオペランドは,SPPのソケット受信型サーバおよびSUPの場合は指定する必要はありません。
●adm_message_option=メッセージ出力指定
〜〈1けたの16進数〉
次のメッセージを出力するかどうかをビットマスクの論理和で指定します。ビットマスクがオンのメッセージは出力され,ビットマスクがオフのメッセージは出力されません。
メッセージID |
ビットマスク(16進数) |
メッセージ内容 |
---|---|---|
KFCA01811-I |
1 |
サーバ開始中メッセージ |
KFCA01813-I |
2 |
サーバオンラインメッセージ |
KFCA01842-I |
4 |
サーバ終了中メッセージ |
KFCA01843-I |
8 |
サーバ停止メッセージ |
- (例)
-
KFCA01813-IとKFCA01843-Iを出力したい場合は,「set adm_message_option=A」と指定します。
●trn_watch_time=トランザクション同期点処理時の最大通信待ち時間
〜〈符号なし整数〉((1〜65535))(単位:秒)
トランザクションの同期点処理で,トランザクションブランチ間で行う通信(プリペア,コミット,ロールバック指示,または応答など)の受信待ち時間の最大値を指定します。
指定時間を過ぎても指示または応答がない場合は,該当するトランザクションブランチが2相コミットの1相目完了前であればロールバックさせ,1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。さらに,トランザクションサービス定義でも省略した場合,トランザクションを行ったユーザサーバのwatch_timeの値を仮定します。ただし,watch_timeに0を指定した場合は120秒を仮定します。
●trn_limit_time=トランザクションブランチ最大実行可能時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
トランザクションブランチの最大実行可能時間を指定します。
トランザクションブランチを開始してから同期点処理が終了するまでの時間が,このオペランド指定時間を超えないようにdc_rpc_call関数,dc_rpc_poll_any_replies関数および同期点処理内で行う通信のタイムアウト時間を,次のように自動設定します。
-
dc_rpc_call関数およびdc_rpc_poll_any_replies関数のタイムアウト時間
「K≧このオペランド指定時間」の場合は,要求処理を実行しないで,タイムアウトでエラーリターンします。
「K<このオペランド指定時間」でかつ「(このオペランド指定時間−K)≧W」の場合は,Wをタイムアウト時間とします。
「K<このオペランド指定時間」でかつ「(このオペランド指定時間−K)<W」の場合は,(このオペランド指定時間−K)をタイムアウト時間とします。
- K
-
現時刻−トランザクションブランチ開始時刻
- W
-
dc_rpc_call関数の場合はwatch_timeオペランド指定時間
dc_rpc_poll_any_replies関数の場合は引数timeout指定時間
-
同期点処理内で行う通信のタイムアウト時間
「K≧このオペランド指定時間」の場合は,タイムアウト時間を1秒とします。
「K<このオペランド指定時間」でかつ「(このオペランド指定時間−K)≧W」の場合は,Wをタイムアウト時間とします。
「K<このオペランド指定時間」でかつ「(このオペランド指定時間−K)<W」の場合は,(このオペランド指定時間−K)をタイムアウト時間とします。
- K
-
現時刻−トランザクションブランチ開始時刻
- W
-
trn_watch_timeオペランド指定時間
trn_watch_timeオペランドを省略した場合はwatch_timeオペランド指定時間
上記の受信待ち以外の処理で時間が掛かった場合は,このオペランド指定時間以内にトランザクションブランチが終了しないことがあります。
同期点処理開始前にこのオペランド指定時間が経過した場合,そのトランザクションはロールバックします。
0を指定した場合は,残り時間の監視をしません。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●trn_rollback_response_receive=Y|N
RPC先トランザクションブランチにロールバック指示を送信したあと,ロールバック完了通知を受信するかどうかを指定します。Nを指定した場合,RPC先トランザクションブランチからのロールバック完了通知を受信しないで(RPC先トランザクションブランチのロールバック処理の完了を待たないで)自トランザクションブランチを終了します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●trn_partial_recovery_type=type1|type2|type3
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を指定しても,トランザクションの決着に時間が掛かることがあります。
-
RPC実行中に,RPC発行先UAPの状態が変更となり(負荷増加,UAP終了,UAP閉塞など),ほかのノードの同一UAPにサービス要求が再転送された場合
-
相手先のOpenTP1がこのオプションをサポートしていないバージョンの場合
-
相手先トランザクションブランチがトランザクション同期点メッセージ受信処理以外で時間が掛かっている場合
TP1/Server BaseまたはTP1/LiNK以外とトランザクション連携をする場合,このオペランドにはtype1を指定または省略してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
●rpc_destination_mode=namdonly|namd|definition
dc_rpc_call関数で要求したサービスの送信先を決定する際に,ネームサービスから得た情報と,ユーザサービスネットワーク定義の指定値のどちらを優先させるかを指定します。
- namdonly
-
従来どおり,ネームサービスの情報から選択したあて先へサービスを送信し,ユーザサービスネットワーク定義の指定値の検索は一切しません。
- namd
-
ネームサービスの情報から選択したあて先へサービスを送信します。
ネームサービスの情報内に該当するサービスが見つからない場合だけ,ユーザサービスネットワーク定義の指定値を検索します。
- definition
-
ユーザサービスネットワーク定義の指定値から検索したあて先へサービスを送信します。ユーザサービスネットワーク定義に該当するサービスがない場合だけ,ネームサービスにあて先検索を要求します。
このオペランドは,dc_rpc_call関数を呼び出すSUP,SPP,MHPの場合に指定します。
このオペランドにnamdまたはdefinitionを指定した場合,ユーザサービスネットワーク定義の指定値を検索して,サービス要求を送信します。ユーザサービスネットワーク定義に,システム共通定義のall_nodeオペランドに指定していないノードのサービス情報を定義している場合,このノードのOpenTP1がダウンして再開始したあとに要求したサービスが,タイムアウトエラーになることがあります。
●rpc_rap_auto_connect=Y|N
リモートAPI機能の常設コネクションを使用してサービスを要求する場合に,UAPとリモートAPI制御プロセスとの間のコネクションを,OpenTP1が自動的に管理するかどうかを指定します。
●rpc_rap_inquire_time=リモートAPI機能を使用して要求するサービスの問い合わせ間隔最大時間
〜〈符号なし整数〉((0〜1048575))(単位:秒)
リモートAPI機能を使用してサービスを要求する場合に,リモートAPI制御プロセスがUAPからのサービス要求を処理してから,次のサービス要求を処理するまでの間隔の,最大待ち時間を指定します。この指定値は,リモートAPI制御プロセス側で監視するタイマです。指定時間を超えても次のサービス要求がない場合,リモートAPI制御プロセスはUAPがダウンしたものと見なして次のサービス要求を処理します。
このオペランドに0を指定した場合,リモートAPI制御プロセス側の定義で指定した値が有効になります。
このオペランドは,リモートAPI機能を使用してdc_rpc_call関数を呼び出すSUP,SPP,MHPの場合に指定します。
常駐SPPからリモートAPI機能を使用している場合,このオペランドまたはrapリスナーサービス定義のrap_inquire_timeオペランドに0を指定しないでください。指定した場合,常駐SPPが終了するまで無限に待ち続けます。これは,rapリスナーが存在するノードのOpenTP1システムを終了させようとしても,rapリスナーが終了できないためです。
ユーザサービス定義でこのオペランドの指定を省略した場合,rapリスナーサービス定義のrap_inquire_timeオペランドで指定した値が最大待ち時間となります。どちらも省略した場合は,180秒を仮定します。
このオペランドに"0"以外を指定し,オートコネクトモードでdc_rpc_call関数を呼び出した場合,rapクライアント側でも問い合わせ間隔最大時間をチェックします。
rapクライアント側で問い合わせ間隔最大時間をチェックするかどうかは,ユーザサービス定義またはユーザサービスデフォルト定義のrpc_rap_inquire_time_checkオペランドの指定値に従います。
詳細はrpc_rap_inquire_time_checkオペランドの説明を参照してください。
●rpc_request_cancel_for_timedout=Y|N
クライアントUAPで設定した,サービス要求を送信してからサービスの応答が返るまでの待ち時間を,サーバ側に引き継ぎ,サーバにクライアントが待ち状態であることを意識させるかどうかを指定します。
クライアントUAPの応答待ち時間をサーバに引き継ぐと,クライアントUAPがタイムアウトしても,サーバ側でサービスを実行したり,同期点処理の実行を待ち続けたりすることを防止できます。
ただし,サーバ側のTP1/Server Baseのバージョンが03-02で,かつドメイン指定の同期型dc_rpc_call関数の場合は,RPCがエラーとなりますので,Nを指定してください。
●status_change_when_terming=Y|N
システム正常終了中にユーザサーバが正常終了したあとにシステムダウンが発生した時,またはシステム計画終了中にdcstopコマンドによる終了処理前にSUPが正常終了した時などのサーバの状態の変化を,次回再開始時に反映させるかどうかを指定します。
- Y
-
最終的な状態の変化を反映させます。
正常終了したユーザサーバは,次回のOpenTP1の再開始時に再起動されません。
- N
-
最終的な状態の変化を反映させません。
正常終了したユーザサーバは,次回のOpenTP1の再開始時に再起動されます。
●service_expiration_time=サービス関数開始から終了までの実行監視時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
SPPプロセスでの,サービス関数開始から終了までの実行監視時間を指定します。この時間を満了してもサービス関数がリターンしない場合,このプロセスを強制停止します。
0を指定した場合,時間監視はしません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
- 注
-
サービス関数開始から終了までの実行監視時間の精度は秒単位です。そのため,タイミングによっては,このオペランドに指定した値よりも最大約1秒長い時間でプロセスを強制停止することがあります。
●multi_schedule=Y|N
サービス要求をマルチスケジューラ機能を使用してスケジューリングするかどうかを指定します。
このオペランドは,マルチスケジューラ機能を使用する場合,RPC送信側ユーザサーバで指定します。
- Y
-
サービス要求をマルチスケジューラ機能を使用してスケジューリングします。
- N
-
サービス要求をマルチスケジューラ機能を使用してスケジューリングしません。
マルチスケジューラ機能を使用する場合に,OpenTP1システム内の同一サービスグループに,マルチスケジューラ機能を使用しているユーザサーバと,マルチスケジューラ機能を使用していないユーザサーバが混在していると,マルチスケジューラ機能を使用しているユーザサーバに優先して負荷分散されます。マルチスケジューラ機能を使用しているユーザサーバが起動されていなかったり,スケジュールできない状態(閉塞,メッセージ格納バッファ不足など)になっていたりする場合は,マルチスケジューラ機能を使用していないユーザサーバに負荷分散されます。
マルチスケジューラ機能を使用する場合,このオペランドとともに,スケジュールサービス定義およびユーザサービス定義のscdmulti定義コマンドを,RPC受信側で指定する必要があります。
なお,この機能は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できませんので,ご了承ください。
●make_queue_on_starting=Y|N
OpenTP1が非常駐のサービスグループに割り当てるスケジュールキューを,サーバ起動時に割り当てるかどうかを指定します。
- Y
-
サーバ起動時にスケジュールキューを割り当てます。
- N
-
サーバ起動時にスケジュールキューを割り当てません。
このオペランドを指定すると,非常駐サーバがシステムの資源不足によってスケジューリングできない状態をサーバ起動時に検出できます。
ただし,スケジュールキューの割り当てに失敗した場合でも,サーバの起動処理は続行します。
このオペランドは,ユーザサービス定義,またはユーザサービスデフォルト定義のpurge_msggetオペランドでYを指定した場合,およびparallel_countオペランドの常駐プロセス数に0以外を指定した場合は無視されます。
●loadcheck_interval=負荷監視インタバル時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
このサービスグループの負荷レベルを監視するインタバル時間を指定します。負荷監視時に負荷レベルに変更がある場合は,各ノードのネームサービスにサーバ情報が通知されます。そのため,最悪のケースでは,負荷監視インタバルごとにサーバ情報がネットワーク上に送信されるおそれがあるので,必要以上に短い値を指定しないでください。なお,スケジュールサービス定義にscd_announce_server_status=Nを指定した場合は,このオペランドを指定しても無視されます。また,0を指定した場合は,負荷レベルの監視をしません。
このオペランドを指定しない場合,負荷監視インタバルは30秒となります。また,負荷監視の要否のチェックなどについては10秒のインタバルで実行されます。つまり,負荷監視の要否のチェックなどの3回目には,負荷監視が実行されます。
しかし,このオペランドを指定する場合,負荷監視インタバルはオペランドの指定値となり,負荷監視の要否のチェックなどについては,10と各ユーザサーバのこのオペランドの指定値との最大公約数から求めたインタバルで実行されます。例えば,SPP1のloadcheck_intervalオペランドに3を,SPP2のloadcheck_intervalオペランドに5を指定する場合,10と3と5の最大公約数の1(秒)が負荷監視の要否のチェックなどを実行するインタバルとなります。負荷監視の要否のチェックなどの3回目には,SPP1の負荷監視が実行されます。5回目には,SPP2の負荷監視が実行されます。
したがって,システムに与える影響を少なくするために,loadcheck_intervalオペランドに指定する値は,5の倍数にすることをお勧めします。
MHP,ソケット受信型SPP,およびSUPの場合は,このオペランドを指定する必要はありません。指定しても無視されます。
なお,この機能は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できませんので,ご了承ください。
●levelup_queue_count=U1,U2,およびleveldown_queue_count=D0,D1
〜〈符号なし整数〉((0〜32767))
このサービスグループの負荷レベルを判断するサービス要求滞留数を指定します。
- U1
-
サーバの負荷レベルがLEVEL1に上がったと判断するサービス要求滞留数
- U2
-
サーバの負荷レベルがLEVEL2に上がったと判断するサービス要求滞留数
- D0
-
サーバの負荷レベルがLEVEL0に下がったと判断するサービス要求滞留数
- D1
-
サーバの負荷レベルがLEVEL1に下がったと判断するサービス要求滞留数
levelup_queue_countオペランド,leveldown_queue_countオペランドの各指定値は,次の条件を満たすように指定する必要があります。
(条件) 0≦D0<U1≦D1<U2
指定値が条件を満たしていない場合,サーバ起動時に定義エラーとなり起動が失敗となります。
なお,スケジュールサービス定義にscd_announce_server_status=Nを指定した場合は,このオペランドを指定しても無視されます。また,leveldown_queue_countオペランドは,levelup_queue_countオペランドが指定されている場合だけ有効とし,levelup_queue_countオペランドを指定しないで指定した場合は無視されます。逆に,levelup_queue_countオペランドを指定した場合でもleveldown_queue_countオペランドは省略できます。この場合,leveldown_queue_countオペランドの各指定値は,次のように決定されます。
D0=U1/2 D1=U1+(U2−U1)/2 (D0,D1共に小数点以下は切り捨て)
MHP,ソケット受信型SPP,およびSUPの場合は,このオペランドを指定する必要はありません。指定しても無視されます。
なお,この機能は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できませんので,ご了承ください。
●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オペランドの指定値になった時点から,一時クローズ処理によってソケットが再利用できるようになるまでの監視時間(秒)を指定します。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
一時クローズ処理は,コネクションを確立したプロセス間の合意によってコネクションを切断するため,一時クローズ処理の要求を送信したプロセスはその応答を受けるまではコネクションを切断できません。応答を受信したあと,コネクションは切断され,ソケットが再利用できるようになります。
ipc_sockctl_watchtimeオペランドの指定値を経過しても,どのプロセスからも一時クローズ処理要求に対する応答が返らない場合,プロセスは強制停止されます。ipc_sockctl_watchtimeオペランドに0を指定した場合,無限に待ちます。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_conn_interval=コネクション確立監視時間
〜〈符号なし整数〉((8〜65535))(単位:秒)
データ送信時のコネクション確立監視時間を秒単位で指定します。
ノンブロッキングモードで呼び出したconnect()システムコールに対する応答を受信するまでの監視時間を指定します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_send_interval=データ送信監視間隔
〜〈符号なし整数〉((5〜32767))(単位:秒)
データ送信時のデータ送信監視間隔を指定します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_send_count=データ送信監視回数
〜〈符号なし整数〉((1〜32767))
データ送信時の送信完了監視回数を指定します。
OpenTP1のデータ送信監視時間は,次に示す秒数で監視します。
ipc_send_intervalオペランドの指定値 × ipc_send_countオペランドの指定値
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_header_recv_time=通信制御データの受信監視時間
〜〈符号なし整数〉((5〜32767))(単位:秒)
OpenTP1が,データの受信が始まったことをTCP/IPから通知されてから,通信制御データを受信するまでの監視時間を指定します。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●rpc_close_after_send=Y|N
ノード間通信で確立したコネクションを保持したままにするか,ノード間通信が終了するたびにコネクションを切断するかどうかを指定します。このオペランドは,データの送信元に設定するオペランドです。
- Y
-
ノード間通信が終了するたびにコネクションを切断する。
- N
-
ノード間通信で確立したコネクションを保持する。
このオペランドにYを指定すると,次の状態を即時に検知できます。
-
ノード間で通信を行うOpenTP1で発生したハード障害によってコネクションが切断された
-
ノード間に設置されている無通信監視をする通信機器によってコネクションが切断された
ただし,ノード間通信が発生するたびにコネクションを確立し,通信が終了するとコネクションを切断するため,OSのコネクション確立と解放を繰り返す分だけオーバーヘッドが増加します。
指定値の優先順位は次のとおりです。(1.>2.>3.)
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
-
システム共通定義
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
- 注意事項
-
-
OpenTP1で使用する通信で,毎回コネクション確立・切断を実施するため,性能が低下する可能性があります。性能に関しては,十分に検討したあと,この機能を使用してください。
-
OpenTP1で使用する通信で,毎回コネクション確立・切断を実施するため,OSのポートを大量に消費する可能性があります。ポートに関してのOS資源見積もり,設定を十分に検討したあと,このオペランドを使用してください。ポートに関するOSの設定の詳細は,OSのマニュアルを参照してください。
-
次に示す機能では,ノード間のTCP/IP通信であっても,このオペランドは適用されません。
・OpenTP1 クライアント製品とTP1/Server Base間の通信
・リモートAPI機能を使用し,rapクライアントからTP1/Server Baseのrapリスナー,rapサーバへの通信
・XAリソースサービスを使用したトランザクション連携機能
・TP1/Message Queueのチャネルを使用した,他のMQシステム(メッセージキューイング機能のキューマネジャがあるシステム)とTP1/Message Queueとのチャネル通信
・TP1/Message Queue のクライアント製品(TP1/Message Queue - Access)であるMQCクライアント機能とTP1/Message QueueのMQCサーバ機能との通信
・メッセージ制御機能(TP1/Message Control)を使用した,相手システムとの通信
-
●rpc_send_retry_count=TCP/IPコネクションの接続時にエラーが発生した場合のリトライ回数
〜〈符号なし整数〉((0〜65535))
サーバの応答送信時のTCP/IPコネクションの接続で,ECONNREFUSED(239),EHOSTUNREACH(242),ENETUNREACH(229)のどれかのエラーが発生した場合,このオペランドでリトライ回数を指定することによって,エラーを回避できることがあります。
0を指定した場合は,TCP/IPコネクションの接続時に上記のエラーが発生しても接続をリトライしません。
このオペランドに1〜65535を指定し,TCP/IPコネクションの接続時に上記のエラーが発生した場合,rpc_send_retry_intervalオペランドに指定した時間を待ったあと,接続をリトライします。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●rpc_send_retry_interval=TCP/IPコネクションの接続時にエラーが発生した場合のリトライ間隔
〜〈符号なし整数〉((0〜300000))(単位:ミリ秒)
サーバの応答送信時のTCP/IPコネクションの接続で,ECONNREFUSED(239),EHOSTUNREACH(242),ENETUNREACH(229)のどれかのエラーが発生した場合,このオペランドでリトライ間隔をミリ秒単位で指定することによって,エラーを回避できることがあります。
0を指定した場合は,間隔を空けずにTCP/IPコネクションの接続をリトライします。1〜19は指定できません。1〜19を指定した場合は,20ミリ秒間隔を空けてからTCP/IPコネクションの接続をリトライします。
このオペランドは,rpc_send_retry_countオペランドに1〜65535を指定した場合に有効になります。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_listen_sockbufset=Y|N
OpenTP1がプロセス間通信で使用するlistenソケットの生成時に,ipc_sendbuf_sizeオペランド,およびipc_recvbuf_sizeオペランドに指定したTCP/IPの送受信バッファサイズをlistenソケットに設定するかどうかを指定します。
- Y
-
listenソケットに,TCP/IPの送受信バッファサイズを設定します。
- N
-
listenソケットに,TCP/IPの送受信バッファサイズを設定しません。
ipc_sendbuf_sizeオペランド,およびipc_recvbuf_sizeオペランドに指定したTCP/IPの送受信バッファサイズは,OpenTP1プロセスがコネクション確立要求を受信し,コネクションを確立したあとに設定します。
コネクションを確立したあとにTCP/IPの送受信バッファサイズを変更するため,コネクションの接続元と接続先の間でTCP/IPのバッファサイズの値が異なり,通信の遅延が発生することがあります。
同一ノード内にTP1/Server BaseとTP1/Clientがあり,TP1/Clientから同一ノード内のTP1/Server Baseに対して通信を行う場合は,このオペランドにYを指定することをお勧めします。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●ipc_recvbuf_size=TCP/IPの受信バッファサイズ
〜〈符号なし整数〉((0,8192〜1048576))(単位:バイト)
コネクションごとに確保されるソケットの受信バッファのサイズを指定します。高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすることによって性能向上を図れます。
0を指定した場合は,OSの受信バッファサイズを適用します。受信データサイズが8192バイトを超える場合,このオペランドに0を指定することで受信バッファのサイズが拡張され,性能向上を図れることがあります。
なお,0を指定する場合,このノードと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。また,1〜8191は指定できません。1〜8191を指定した場合,0を仮定します。
ipc_recvbuf_sizeオペランドに指定した値よりも小さいデータをやり取りし合う通信処理の場合,ipc_tcpnodelayオペランドにYを指定することを推奨します。
- 注
-
TCPは,受信したデータに対し,送達確認(ACK)パケットを返信します。
受信バッファのサイズに対し,受信したデータが小さいと,データを受信しても直ちにACKを返信しません(遅延ACK)。
このオペランドに大きな値を指定し,小さいデータをやり取りし合うような通信処理の場合,遅延ACKの影響によって性能が悪くなるおそれがあります。遅延ACKの詳細については,TCP/IPの文献を参照してください。
このオペランドの値は,OSで使用できるTCP/IPの受信バッファのサイズ以下の値を指定してください。
ユーザサーバの場合,ここで指定を省略し,ユーザサービスデフォルト定義でも省略したときは,システム共通定義の値を仮定します。
●ipc_sendbuf_size=TCP/IPの送信バッファサイズ
〜〈符号なし整数〉((0,8192〜1048576))(単位:バイト)
コネクションごとに確保されるソケットの送信バッファのサイズを指定します。高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすることによって性能向上を図れます。
0を指定した場合は,OSの送信バッファサイズを適用します。送信データサイズが8192バイトを超える場合,このオペランドに0を指定することで送信バッファのサイズが拡張され,性能向上を図れることがあります。
0を指定することを推奨する場合については,「3. システム共通定義」のipc_sendbuf_sizeオペランドの説明を参照してください。
なお,0を指定する場合,このノードと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。また,1〜8191は指定できません。1〜8191を指定した場合,0を仮定します。
ipc_sendbuf_sizeオペランドに指定した値よりも小さいデータをやり取りし合う通信処理の場合,ipc_tcpnodelayオペランドにYを指定することを推奨します。
- 注
-
このオペランドの値は,OSで使用できるTCP/IPの送信バッファのサイズ以下の値を指定してください。
ユーザサーバの場合,ここで指定を省略し,ユーザサービスデフォルト定義でも省略したときは,システム共通定義の値を仮定します。
●polling_control_data=Y|N
OpenTP1制御下のSPP,MHPで,サービス要求の受信待ちの状態のときに,定期的に待ち状態に割り込んで,一時クローズ処理要求が到着していないかどうかを検査することを指示します。
- Y
-
サービス要求の受信待ち状態に定期的に割り込み,一時クローズ処理要求が到着していないかどうかを検査します。
また,このほかにも,相手先のUAPプロセスとのコネクションが切断されているかどうかを監視できます。
コネクション切断監視の詳細については,マニュアル「OpenTP1 運用と操作」の障害対策の説明を参照してください。
- N
-
サービス要求の受信待ち状態に割り込まないで,サービス要求が到着するまで待ち状態を継続します。
クライアントからのサービス要求が長時間発生しない常駐UAPには,このオペランドにYを指定する必要があります。
また,時間帯によって業務トラフィックにばらつきのあるシステムでは,常駐UAPのユーザサービス定義のこのオペランドにYを指定する必要があります。
●thread_yield_interval=ソケットの再利用指示を受信できる契機を与えるインタバル時間
〜〈符号なし整数〉((1〜86400))(単位:秒)
OpenTP1制御下のSPP,MHPで,サービス要求の受信待ちの状態のときに,定期的に待ち状態に割り込んで,一時クローズ処理要求が到着していないかどうかを検査する場合の検査インタバル時間を秒単位で指定します。
また,サービス要求を待つことなく次々にサービスを受け付けている場合には,連続してサービス要求を受け付けた時間が一定時間を超えたところで,一時クローズ処理要求が到着していないかどうかを検査します。このオペランドは,このインタバル値としても使用されます(連続してサービス要求を受け付けた時間がこのオペランド指定値を超えたときの,一時クローズ処理要求到着検査には,シグナルによる割り込みは発生しません)。
なお,このオペランドに指定するインタバル時間を極端に短くすると,検査のための割り込みが多発し性能が低下するおそれがあります。そのため,指定するインタバル時間については,性能への影響を十分に検討してください。
このオペランドの指定値は,一時クローズ処理要求を送信したプロセスが応答を待つ時間(180秒:ipc_sockctl_watchtimeオペランドのデフォルト値)よりも小さい値を設定します。
サービス要求待ち状態に割り込んで,一時クローズ処理要求受信を検査する機能は,polling_control_dataオペランドにYを指定した場合にだけ動作します。連続してサービス要求を受け付けたときに一時クローズ処理要求受信を検査する機能は,polling_control_dataオペランドの指定に関係なく,動作します。
このオペランドに最大値を指定した場合は,polling_control_dataオペランドの指定に関係なく,一時クローズ処理要求が到着していないかどうかの検査を実行しません。
●groups=グループ識別子〔,グループ識別子〕
〜〈符号なし整数〉((0〜4294967294))
OSに登録されているグループIDを指定してください。このオペランドには16個まで指定できます。
最大値はOSに依存するので,使用しているOSのマニュアルを参照してください。
なお,このオペランドの指定値に関係なく,ユーザサーバプロセスの実効グループIDは,OpenTP1ディレクトリのグループIDと同じ値に設定されます。
●loadlevel_message=Y|N|A
サーバの負荷レベルを変更した場合に,KFCA00849-Wの負荷レベル通知メッセージを出力するかどうかを指定します。
- Y
-
サーバの負荷レベルが高負荷状態(LEVEL2)に上がった場合,および通常状態(LEVEL0)に下がった場合に,通知メッセージを出力します。
- N
-
サーバの負荷レベルを変更しても通知メッセージを出力しません。
- A
-
サーバの負荷レベルを変更した場合に,通知メッセージを出力します。
通知メッセージの出力タイミングは,loadcheck_intervalオペランドによって指定する負荷監視インタバルの値によって異なります。負荷監視インタバルを指定していない場合は,30秒を仮定します。
●ipc_backlog_count=コネクション確立要求を格納するキューの長さ
〜〈符号なし整数〉((0〜4096))
コネクション確立要求を格納するキューの長さ(listenシステムコールのバックログ数)を指定します。
0(デフォルト値)を指定した場合,listenシステムコールのバックログ数に設定する実数値はOSによって異なります。デフォルト値を指定した場合の実数値については,「リリースノート」を参照してください。
実際のキューの長さは,指定した値より長くなる場合があります。
キューの長さの上限値,下限値は,各OSによって異なります。OSによって,キューの長さの上限値,下限値が制限されている場合,設定した値が有効にならないことがあります。コネクション確立要求を格納するキューについての詳細は,OSのマニュアル,または,TCP/IPの文献を参照してください。
このオペランドで指定した値より多くの接続要求が瞬間的に発生すると,キューからあふれた接続要求は破棄されます。瞬間的に発生する接続要求の数を考慮した値を設定してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,システム共通定義の値を仮定します。
●rpc_buffer_pool_max=プーリングするバッファ数
〜〈符号なし整数〉((1〜64))
RPCによるメッセージ受信処理で,メッセージ組み立てなどでプーリングするバッファの数を指定します。
メッセージ受信処理で使用するバッファは,プロセス固有領域に確保し,バッファが不要となった時点でプーリングします。このとき,バッファプール内のプーリング数が,このオペランドで指定した数を超える場合は,新たにプーリングするバッファも含め,サイズのいちばん小さいバッファを解放します。
このオペランドにデフォルト値より小さな値を指定すると,メッセージ受信処理で使用するバッファの数が,このオペランドで指定した数を超えることになります。その場合の注意事項を次に示します。
-
不足分のバッファの確保/解放を行うため,メッセージ受信処理性能が低下するおそれがあります。
-
不足分のバッファの確保時にエラーが発生し,メッセージ受信処理が失敗するおそれがあります。
このオペランドは,ユーザサービスデフォルト定義でも指定できます。
ここで指定を省略した場合,ユーザサービスデフォルト定義の値を仮定します。
●schedule_delay_limit=スケジュール遅延限界経過時間
〜〈符号なし整数〉((0〜32767))(単位:秒)
スケジュールキューによるスケジューリングの遅延限界経過時間を指定します。
スケジュールキューにサービス要求が登録されているにもかかわらず,サービス要求が取り出されない状態が,このオペランドに指定した時間を超えた場合,該当サーバごとにKFCA00838-Wメッセージを出力します。この際,schedule_delay_abortオペランドでYを指定している場合には,SCDデーモンが異常終了してOpenTP1がシステムダウンします。
このオペランドを省略,または0を指定した場合,スケジュール遅延を監視しません。
スケジュールサービスは,10秒のインタバルでスケジュール遅延を監視するため,スケジュール遅延を検知するのに最大10秒掛かることがあります。
このオペランドには,該当サーバの起動処理時間およびサービス処理時間よりも大きい値を指定してください。
このオペランドは,MHP,ソケット受信型SPP,SUPに指定しても無視されます。
●schedule_delay_abort=Y|N
スケジュール遅延時にシステムダウンするかどうかを指定します。
- Y
-
スケジュール遅延時にシステムダウンします。
- N
-
スケジュール遅延時にシステムダウンしません。
スケジュールキューにサービス要求が登録されているにもかかわらず,サービス要求が取り出されない状態が,schedule_delay_limitオペランドに指定した時間を超えた場合,このオペランドでYを指定すると,KFCA00839-Eメッセージを出力したあと,SCDデーモンが異常終了してシステムダウンします。
schedule_delay_limitオペランドを省略,または0を指定した場合,このオペランドの指定は無視されます。
このオペランドは,MHP,ソケット受信型SPP,SUPに指定しても無視されます。
●rap_autoconnect_con_error_msg=Y|N
rapクライアントでオートコネクトモードを使用していて,一度rapサーバとのコネクションが確立されていても,以降のAPIの代理実行要求時,rapサーバとのコネクションの切断を検知した場合に,エラーメッセージを出力するかどうかを指定します。
このオペランドでYを指定するか,省略した場合は,メッセージを出力します。
- Y
-
APIの代理実行要求時,rapサーバとのコネクションが切断されていた場合に,エラーメッセージを出力します。
- N
-
APIの代理実行要求時,rapサーバとのコネクションが切断されていた場合に,エラーメッセージを出力しません。
なお,このオペランドで抑止されるメッセージは次のとおりです。
-
KFCA26971-Eメッセージの理由コード=36
●core_shm_suppress=Y|N
コアファイルへの共用メモリダンプの出力を抑止するかどうかを指定します。
- Y
-
コアファイルへのOpenTP1共用メモリダンプの出力を抑止します。
- N
-
コアファイルへのOpenTP1共用メモリダンプの出力を抑止しません。
KFCA00105-Eメッセージを出力して,プロセスが異常終了した場合,OSによっては,コアファイルにアタッチ中の共用メモリダンプを出力します。
このオペランドにYを指定すると,OSによるコアファイルへのOpenTP1共用メモリダンプの出力を抑止します。これによって,次の問題を回避できます。
-
コアファイルのサイズ増大によるディスク容量の圧迫
-
コアファイル出力時のI/O占有によるマシン負荷の増大
このオペランドが有効になる前に,KFCA00105-Eメッセージを出力して,プロセスが異常終了した場合は,コアファイルに,アタッチ中のOpenTP1共用メモリダンプが出力されます(コアファイルに,共用メモリダンプの出力が行われるOSだけが該当)。
また,このオペランドにYを指定した場合でも,KFCA00105-Eメッセージ(アボートコード=iprfex1)を出力してプロセスが異常終了したときは,コアファイルにアタッチ中のOpenTP1共用メモリダンプが出力されます(コアファイルに,共用メモリダンプが出力されるOSだけが該当)。Linux版OpenTP1では,このケースでもprc_coredump_filterオペランドに1を指定することで,コアファイルへの共用メモリダンプの出力を抑止できます。このため,Linux版OpenTP1でコアファイルへの共用メモリダンプの出力を抑止する場合は,core_shm_suppressオペランドではなく,prc_coredump_filterオペランドを指定することをお勧めします。prc_coredump_filterオペランドの詳細については,システム共通定義またはユーザサービス定義の説明を参照してください。
- 注
-
OpenTP1の共用メモリダンプは,システムダウン時にだけ出力されます。そのため,UAPが異常を検知し,終了した場合,共用メモリダンプは出力されません。OSがコアファイルに共用メモリダンプを出力する場合,コアファイルに出力された共用メモリダンプが有効な資料になります。このオペランドにYを指定すると,共用メモリダンプが出力されないため,トラブルシュートが困難になることがあります。
●xat_connect_resp_time=通信イベント処理用SPPのアソシエーション確立の最大応答待ち時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
プロトコルにOSI TPを使用する通信で,通信イベント処理用SPP内のアソシエーション確立要求(dc_xat_connect関数)の最大応答待ち時間を指定します。0を指定した場合は,応答を無限に待ちます。
putenv形式のXAT_CONNECT_RESP_TIMEオペランドでも同じ内容を指定できます。このオペランドとputenv形式のXAT_CONNECT_RESP_TIMEオペランドの関係を次の表に示します。
set形式のxat_connect_resp_timeオペランドの指定 |
putenv形式のXAT_CONNECT_RESP_TIMEオペランドの指定 |
有効になる値 (単位:秒) |
---|---|---|
○ |
× |
set形式のxat_connect_resp_timeオペランドの指定値 |
× |
○ |
putenv形式のXAT_CONNECT_RESP_TIMEオペランドの指定値 |
○ |
○ |
set形式のxat_connect_resp_timeオペランドの指定値 |
× |
× |
180※ |
- (凡例)
-
○:指定します。
×:指定しません。
- 注※
-
set形式のxat_connect_resp_timeオペランド,およびputenv形式のXAT_CONNECT_RESP_TIMEオペランドの両方の指定を省略した場合は,180秒が仮定されます。
●scd_poolfull_check_interval=KFCA00853-Eメッセージ出力インタバル時間
〜〈符号なし整数〉((0〜32767))(単位:秒)
メッセージ格納バッファプールのメモリ不足が連続して発生した場合,KFCA00853-Eメッセージを出力するインタバル時間を指定します。
メッセージ格納バッファプールのメモリ不足がscd_poolfull_check_intervalオペランドで指定したインタバル時間中にscd_poolfull_check_countオペランドで指定した回数に達すると,KFCA00853-Eメッセージが1回出力されます。
このオペランドで指定したインタバルは,メッセージ格納バッファプールのメモリ不足が発生した時点で開始されます。また,メッセージ格納バッファプールのメモリ不足がこのオペランドの指定値以上経過して発生した時点で再設定されます。
このオペランドに0を指定した場合は,メッセージKFCA00853-Eの出力を抑止します。
このオペランドは,キュー受信型SPPにだけ指定できます。キュー受信型SPP以外のユーザサーバに指定しても無視されます。
●scd_poolfull_check_count=KFCA00853-Eメッセージ出力判断値
〜〈符号なし整数〉((1〜32767))(単位:回)
メッセージ格納バッファプールのメモリ不足が連続して発生した場合,KFCA00853-Eメッセージを出力する判断値を指定します。
メッセージ格納バッファプールのメモリ不足がscd_poolfull_check_intervalオペランドで指定したインタバル時間中にscd_poolfull_check_countオペランドで指定した回数に達すると,KFCA00853-Eメッセージが出力されます。
このオペランドは,キュー受信型SPPにだけ指定できます。キュー受信型SPP以外のユーザサーバに指定しても無視されます。
●scd_pool_warning_use_rate=警告メッセージの出力判断値になるメッセージ格納バッファプール使用率の上限値
〜〈符号なし整数〉((0〜99))(単位:%)
警告メッセージを出力する判断値になるメッセージ格納バッファプールの使用率の上限値を指定します。
ユーザサービス定義のmessage_store_buflenオペランド,またはscdbufgrp定義コマンドで指定したメッセージ格納バッファプール長に占めるメモリの使用率を指定します。
警告メッセージ(KFCA00829-W)はサービス要求をスケジュールキューにキューイングした時点のメッセージ格納バッファプールの使用率を基に出力されます。一度表示されると使用率がこのオペランドの指定値を下回り,再びこのオペランドの指定値を上回らないかぎり出力されません。
このオペランドに0を指定した場合,または省略した場合には警告メッセージは出力されません。
スケジュールバッファグループによってメッセージ格納バッファプールを複数のユーザサーバで共用している場合は,共用している全ユーザサーバの使用中サイズで使用率が計算されます。したがって,ある特定のユーザサーバの使用中サイズがこのオペランドで指定した使用率を超えていない場合にも警告メッセージ(KFCA00829-W)が出力されることがあります。
このオペランドの指定に関係なく,メッセージ格納バッファプールが不足した場合は,警告メッセージ(KFCA00829-W)は出力されないで,エラーメッセージ(KFCA00854-E)が出力されます。
このオペランドは,キュー受信型SPPにだけ指定できます。キュー受信型SPP以外のユーザサーバに指定しても無視されます。
●scd_pool_warning_interval=メッセージ格納バッファプール使用率超過時の警告メッセージ出力インタバル時間
〜〈符号なし整数〉((0〜32767))(単位:秒)
メッセージ格納バッファプール使用率(scd_pool_warning_use_rateオペランドで指定)が超過したときの警告メッセージ(KFCA00829-W)を出力するインタバル時間を指定します。
このオペランドを指定した場合,警告メッセージ(KFCA00829-W)が出力された時点からこのオペランドの指定時間が経過するまでの間は,メッセージ格納バッファプール使用率が,scd_pool_warning_use_rateオペランドの指定値を超えても警告メッセージ(KFCA00829-W)は出力されません。
●ipc_tcpnodelay=Y|N
OpenTP1がノード間で使用する通信ソケット(INETドメイン)に,TCP_NODELAYオプションを使用するかどうかを指定します。
TCP_NODELAYオプションを使用すると(このオペランドにYを指定すると),Nagleアルゴリズムが無効になるので,送信済みデータの応答待ちの状態でも遅延させることなくデータを送信できます。ただし,TCP_NODELAYオプションを使用することで,INETドメイン通信時の送信効率が低下し,ネットワークの負荷が大きくなる場合があります。この場合は,ネットワークの帯域などを考慮してipc_sendbuf_sizeオペランド,ipc_recvbuf_sizeオペランドのチューニングを検討するか,このオペランドにNを指定してTCP_NODELAYオプションを無効にするかを検討してください。
●stay_watch_queue_count=スケジュールキューの滞留監視判定を開始する際の判断になるサービス要求滞留数
〜〈符号なし整数〉((0〜32767))
スケジュールキューの滞留監視判定を開始する際の判断になるサービス要求滞留数を指定します。
このオペランドの指定値以上のサービス要求がスケジュールキューに滞留している場合,スケジュールキューの滞留監視判定が始まります。スケジュールキューの滞留監視を開始するサービス要求滞留数をチェックする間隔は,stay_watch_start_intervalオペランドで指定します。スケジュールキューの滞留監視判定の開始以降は,stay_watch_check_intervalオペランドで指定した間隔でサービス要求の滞留監視をします。サービス要求滞留数がこのオペランドの指定値よりも少なくなった場合,いったんスケジュールキューの滞留監視判定は終了します。サービス要求滞留数がこのオペランドで指定した値以上になると,再びスケジュールキューの滞留監視判定が始まります。
このオペランドに0を指定した場合,スケジュールキューの滞留監視をしません。また,このオペランドを,RAP,MHP,ソケット受信型SPP,およびSUPに指定しても無視されます。
スケジュールキューの滞留監視機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
●stay_watch_check_rate=スケジュールキューの滞留監視判定処理で使用するサービス要求の処理率
〜〈符号なし整数〉((1〜100))(単位:%)
スケジュールキューの滞留監視判定で使用する,サーバが処理できるサービス要求の処理率を指定します。
スケジュールキューの滞留監視判定で,次の判定式を満たす場合には,該当サーバごとにKFCA00833-Wメッセージを出力します。
スケジュールキューの滞留監視判定式を満たし,かつstay_watch_abortオペランドでYを指定している場合は,SCDデーモンが異常終了(アボートコードhclen001を出力)してOpenTP1が停止します。
stay_watch_queue_countオペランドを省略,または0を指定した場合,このオペランドの指定は無視されます。
このオペランドを,RAP,MHP,ソケット受信型SPP,およびSUPに指定しても無視されます。
スケジュールキューの滞留監視機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
●stay_watch_abort=Y|N
スケジュールキューの滞留監視判定式を満たした場合に,OpenTP1システムをダウンさせるかどうかを指定します。
- Y
-
スケジュールキュー滞留監視判定式を満たした場合に,KFCA00833-Wメッセージ,およびKFCA00834-Eメッセージを出力します。そして,該当するユーザサーバを強制終了し,SCDデーモンを強制終了(アボートコードhclen001を出力)させてOpenTP1を停止させます。
- N
-
スケジュールキュー滞留監視判定式を満たした場合に,KFCA00833-Wメッセージを出力します。OpenTP1システムはダウンしません。
stay_watch_queue_countオペランドを省略,または0を指定した場合,このオペランドの指定は無視されます。また,このオペランドを,RAP,MHP,ソケット受信型SPP,およびSUPに指定しても無視されます。
スケジュールキューの滞留監視機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
●stay_watch_start_interval=スケジュールキューの滞留監視インタバル時間
〜〈符号なし整数〉((1〜32767))(単位:秒)
スケジュールキューに滞留しているサービス要求数を監視するインタバル時間を指定します。
stay_watch_queue_countオペランドを省略,または0を指定した場合,このオペランドの指定は無視されます。また,このオペランドを,RAP,MHP,ソケット受信型SPP,およびSUPに指定しても無視されます。
通常,SCDデーモンは10秒間隔で負荷監視をしています。このオペランドを指定した場合,SCDデーモンは,10,各ユーザサーバのstay_watch_start_intervalオペランドの指定値,および各ユーザサーバのstay_watch_check_intervalオペランドの指定値の最大公約数で負荷監視をします。OpenTP1システムに与える影響を少なくするために,このオペランドには5の倍数を指定することをお勧めします。
スケジュールキューの滞留監視機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
●stay_watch_check_interval=スケジュールキューの滞留監視判定インタバル時間
〜〈符号なし整数〉((1〜65534))(単位:秒)
スケジュール滞留監視判定式を基に判定処理を行うインタバル時間を指定します。
スケジュール滞留監視判定式による判定処理は,stay_watch_queue_countオペランドの指定値以上のサービス要求数がスケジュールキューに滞留した場合に開始されます。
stay_watch_queue_countオペランドを省略,または0を指定した場合,このオペランドの指定は無視されます。また,このオペランドを,RAP,MHP,ソケット受信型SPP,およびSUPに指定しても無視されます。
通常,SCDデーモンは10秒間隔で負荷監視をしています。このオペランドを指定した場合,SCDデーモンは,10,各ユーザサーバのstay_watch_start_intervalオペランドの指定値,および各ユーザサーバのstay_watch_check_intervalオペランドの指定値の最大公約数で負荷監視をします。OpenTP1システムに与える影響を少なくするために,このオペランドには5の倍数を指定することをお勧めします。
スケジュールキューの滞留監視機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
●trn_completion_limit_time=トランザクション完了限界時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
トランザクションブランチの開始から終了までの最大実行時間を指定します。指定時間を超えた場合,このトランザクションブランチのプロセスが異常終了したあとに,トランザクションブランチが回復プロセスによってコミットまたはロールバックのどちらかに決着して終了します。0を指定した場合は,トランザクションブランチの最大実行時間を監視しません。
UAPが異常終了した場合に閉塞するかどうかはholdオペランド,term_watch_timeオペランドの指定によります。詳細については,ユーザサービス定義のholdオペランドおよびterm_watch_timeオペランドの説明を参照してください。
このオペランドの監視対象区間は,dc_trn_begin関数などの呼び出しやサービス関数の開始によるトランザクションの開始から,トランザクションの同期点処理終了情報(TJ)の取得後であるトランザクションブランチの終了までです。ただし,トランザクションの最適化が行われた場合,サーバ側のトランザクションブランチに対する監視が終了するのは,クライアント側に応答を返したあとです。このオペランドの監視対象区間の詳細および各種タイマ監視との関係については,「付録A.2 トランザクションの時間監視」を参照してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも省略した場合,トランザクションサービス定義の値を仮定します。
- 注
-
トランザクション完了限界時間の精度は秒単位です。そのため,タイミングによっては,このオペランドに指定した値よりも最大約1秒長い時間でプロセスを強制停止することがあります。
●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を変更できます。
このオペランドの指定値と出力されるメッセージの対応についてはrapリスナーサービス定義のrap_message_id_change_levelオペランドを参照してください。
●log_audit_out_suppress=Y|N
このユーザサーバから出力される監査ログを抑止する場合に指定します。
- Y
-
このユーザサーバから出力される監査ログを抑止します。
- N
-
このユーザサーバから出力される監査ログを抑止しません。このオペランドはログサービス定義のlog_audit_outオペランドにYを指定した場合に有効です。
●log_audit_message=監査ログ取得メッセージID〔,監査ログ取得メッセージID〕…
〜〈符号なし整数〉((33400〜99999))
監査ログを取得する項目のメッセージIDの番号を33400〜99999の範囲で指定します。指定できるメッセージIDは最大2048個です。
次に示す監査ログのメッセージIDを指定できます。
-
OpenTP1が取得する監査ログのうちユーザサービス定義に指定できる監査ログのメッセージID
-
UAPで任意に取得する監査ログのメッセージID
このオペランドで指定できるメッセージIDについては,「付録C 監査イベントを取得する定義」を参照してください。
ここで指定を省略し,ユーザサービスデフォルト定義でも指定を省略した場合,ログサービス定義の値を仮定します。
このオペランドは,ログサービス定義のlog_audit_outオペランドにYを指定し,ユーザサービス定義のlog_audit_out_suppressオペランドにNを指定した場合に有効です。
●mcf_prf_trace=Y|N
ユーザサーバごとに,MCF性能検証用トレース情報を取得するかどうかを指定します。このオペランドの指定値を有効にするには,システムサービス共通情報定義のmcf_prf_trace_levelオペランドに00000001を指定してください。
- Y
-
MCF性能検証用トレース情報を取得します。
- N
-
MCF性能検証用トレース情報を取得しません。
このオペランドは,ユーザサービスデフォルト定義でも指定できます。
指定値の優先度は,次のとおりです(1.>2.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
オペランドの指定,または指定値に誤りがある場合は,ユーザサーバの開始処理中にユーザサーバが異常終了します。
ユーザサーバでのMCF性能検証用トレース情報取得有無とオペランドの指定値の関係を,次の表に示します。
システムサービス共通情報定義 mcf_prf_trace_levelオペランドの指定値 |
ユーザサービス定義 mcf_prf_traceオペランドの指定値 |
|
---|---|---|
Y |
N |
|
00000000 |
取得しない |
取得しない |
00000001 |
取得する |
取得しない |
このオペランドの使用は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。
●scd_refresh_process=Y|N
このサービスグループのプロセスを,一つのサービス要求を処理するごとに起動し直すかどうか(非常駐UAPプロセスのリフレッシュ機能を使用するかどうか)を指定します。
- Y
-
一つのサービス要求を処理するごとに新たなプロセスを起動します。既存のプロセスは終了します。
このオペランドにYを指定すると,1回のサービス要求で1つのプロセスを使用します。そのため,リエントラント構造ではないUAPでもサービスを要求できます。ただし,複数のサービス要求を処理する場合にプロセスの起動と停止がサービス要求数分発生するため,システム形態によってはサービス要求の処理性能が低下することがあります。
また,ユーザサービス定義のtermed_after_serviceオペランド,およびservice_wait_timeオペランドの指定は無視されます。
- N
-
スケジュールキューにサービス要求が存在する場合は,同一プロセスで続けてサービス要求を処理します。
次の場合,このオペランドの指定は無視されます。
-
ユーザサービス定義,またはユーザサービスデフォルト定義のparallel_countオペランドの常駐プロセス数に0以外を指定した場合
-
ユーザサービス定義,またはユーザサービスデフォルト定義のbalance_countオペランドに0以外を指定した場合
-
SPPのソケット受信型サーバ,およびSUPの場合
●rap_extend_function=リモートAPI機能の機能拡張レベル
〜〈16進数字〉((00000000〜00000001))
リモートAPI機能の機能拡張レベルを指定します。機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。
- 00000000
-
リモートAPI機能を機能拡張しません。
- 00000001
-
rapクライアントとrapサーバ間のdc_rpc_call関数の処理でタイムアウト事象が発生した場合のdc_rpc_call関数のリターン値を,DCRPCER_NET_DOWN(-306)からDCRPCER_TIMED_OUT(-307)に変更します。
リターン値が変更となるのは次の場合です。
-
rapクライアントに指定されたwatch_timeオペランドの指定時間内に,サービス要求先サーバからの応答が返らなかった場合
-
rapクライアントからトランザクショナルRPCを実行した時点でrapクライアントに指定されたtrn_limit_timeオペランドの指定値を満たした場合
●prc_coredump_filter=コアファイルに共用メモリを含めるかの判断値
〜〈符号なし整数〉((1,3,65,67))
コアファイルに共用メモリを含めるかどうかを設定します。このオペランドは,適用OSがLinuxの場合に指定できます。
- 1
-
共用メモリを含めません。
- 3
-
共用メモリを含めます。ただし,Hugepage機能が適用されている共用メモリは含みません。
- 65
-
Hugepage機能が適用されている共用メモリだけ含めます。
- 67
-
すべての共用メモリを含めます。
コアファイルに共用メモリを含めると,コアファイルのサイズが大きくなります。コアファイル出力時にディスクを圧迫するおそれがありますので,注意してください。コアファイルが出力されるディレクトリは,システム共通定義のprc_current_work_pathオペランドを参照してください。
コアファイルのサイズが大きくなると,次の処理時間に影響がありますので,注意してください。
-
dcsetupコマンドの実行時間
-
dcresetコマンドの実行時間
-
dccspoolコマンドの実行時間
-
dcrasgetコマンドの実行時間
また,コアファイルの出力に時間が掛かると,次の処理時間に影響がありますので,注意してください。
-
OpenTP1の再開始時間
-
系切り替え時間
-
dcstopコマンドの-fdオプション実行時間
-
dcsvstopコマンドの-fdオプション実行時間
OpenTP1が使用する共用メモリのHugepage機能に関しては,マニュアル「OpenTP1 運用と操作」のHugepage機能の適用(Linux限定)の説明を参照してください。
UAPが使用するOpenTP1以外の他製品で,共用メモリにHugepage機能が適用されているかどうかは,各製品のマニュアルや設定を確認してください。
共用メモリの属性と,このオペランドの関係は次のとおりです。
共用メモリのHugepage属性 |
prc_coredump_filter指定値 |
|||
---|---|---|---|---|
1 |
3 |
65 |
67 |
|
指定なし |
× |
○ |
× |
○ |
指定あり |
× |
× |
○ |
○ |
- (凡例)
-
○:共用メモリがコアファイルに含まれます
×:共用メモリがコアファイルに含まれません
このオペランドはシステム共通定義,ユーザサービスデフォルト定義,およびユーザサービス定義に指定できます。OpenTP1システム全体に有効にする場合は,システム共通定義に指定します。
指定値の優先順位は次のとおりです(1.>2.>3.)。
-
ユーザサービス定義
-
ユーザサービスデフォルト定義
-
システム共通定義
システム共通定義内のこのオペランドを変更した場合は,dcresetコマンドを実行してください。
このオペランドの指定値に従い,プロセス生成直後にOpenTP1がLinuxのコアファイルのフィルタリング(coredump_filter)へ設定します。指定値に誤りがあると,意図したとおりに動作しません。また,対応OS以外の環境で指定した場合は無視されます。
OpenTP1が提供する次のサービスでは,ユーザサービスデフォルト定義に指定した定義内容が有効になります。
-
MQCゲートウェイサービス
-
リポジトリ管理サーバ
-
リアルタイム統計情報サービス
-
rapクライアントマネジャ,rapリスナー,およびrapサーバ
- 注意事項
-
例えば,巨大な共用メモリを使用している環境で,コアファイルのサイズを極力抑えたい場合,このオペランドに67以外を指定することでコアファイルに共用メモリが含まれなくなり,コアファイルの大きさを抑えることができます。ただし,コアファイルに含まれている共用メモリは,そのコアファイルを出力したプロセスがその瞬間参照していた共用メモリであって,トラブルシュートに大変有益な情報です。コアファイルを出力する状態自体が何か問題がある場合であり,このコアファイルに含まれている共用メモリ情報はその問題を解決するのに必要な情報です。
このオペランドに67以外を設定することで,そのトラブルシュートに必要な情報が一部失われ,問題解決に時間が掛かるおそれがあります。特に,システムサーバがコアファイルを出力する状態は,システム的に異常な状態になっているおそれが高く,その瞬間の共用メモリがトラブルシュートに不可欠なケースがあります。
これらのことを踏まえた上で,このオペランドの指定値を決めてください。
●watch_time=最大応答待ち時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
RPCによってプロセス間で通信する場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。
OpenTP1の終了処理で,このオペランドで指定した時間だけ終了処理を待ち合わせる場合があります。したがって,大きな値を指定した場合,OpenTP1の終了処理に時間が掛かる場合があります。
指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。
0を指定した場合は,応答を受信するまで待ち続けます。0を指定した場合,OpenTP1が終了しない場合があります。
このオペランドは,システム共通定義のwatch_timeオペランドのデフォルト値で使用してください。
特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。
システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。
●scd_process_ctl_opt=0|1
このサービスグループ下のサーバプロセスが異常終了した場合に,サーバプロセスの再起動を抑止するかどうかを指定します。
サーバプロセスが異常終了した場合,サービスグループまたはサービスが閉塞する前に,タイミングによっては新たに起動されたプロセスが次のサービス要求を取り出してしまうことがあります。
これを抑止するには,このオペランドに1を指定します。
このオペランドが有効となるのは1回目のダウンでサービスグループ閉塞またはサービス閉塞となる(holdオペランドにYが指定された)ユーザサーバだけです。
- 0
-
サーバプロセスが異常終了してからサービスグループ,またはサービスが閉塞するまでの間,サーバプロセスの再起動を可能とします。
- 1
-
サーバプロセスが異常終了してからサービスグループ,またはサービスが閉塞するまでの間,サーバプロセスの再起動を抑止します。
この指定値は次の条件を満たすユーザサーバにだけ有効です。
-
holdオペランドにYを指定したキュー受信型SPP,またはMHP
-
parallel_countオペランドで最大プロセス数に1を指定
-
SPPのソケット受信型サーバ,およびSUPの場合は,指定する必要はありません。
●rpc_rap_inquire_time_check=Y|N
常設コネクションを使用し,かつオートコネクトモード※1の場合に,リモートAPI機能を使用してdc_rpc_call関数を呼び出すrapクライアント(SUP,SPP,MHP)で問い合わせ間隔最大時間をチェックするかどうかを指定します。
rapサーバが常設コネクションを解放するタイミングと,rapクライアントがRPCを実行するタイミングが重なった場合,RPCの実行に失敗してDCRPCER_NET_DOWNを返すことがあります。
この現象を回避するためには,rpc_rap_inquire_time_checkオペランドを指定します。
ユーザサービス定義やユーザサービスデフォルト定義への指定によって,rpc_rap_inquire_time_checkオペランドがYとなる場合は問い合わせ間隔最大時間に0以外を指定してください。
- Y
-
rapクライアントで,問い合わせ間隔最大時間をチェックします。
- N
-
rapクライアントで,問い合わせ間隔最大時間をチェックしません。
ユーザサービス定義とユーザサービスデフォルト定義の両方でrpc_rap_inquire_time_checkオペランドの指定を省略した場合は,rapクライアントでも問い合わせ間隔最大時間をチェックします。
rapクライアントで問い合わせ間隔をチェックするタイミングは,dc_rpc_call関数(サービス呼び出し処理)※2で行います。
問い合わせ間隔のチェックは次の計算式で求めた時間を使用します。この時間を超過した場合は,常設コネクションを解放して再接続しRPCを実行します。
チェック時間=問い合わせ間隔最大時間−T
- T:問い合わせ間隔最大時間の2%の値
-
ただし,250ミリ秒≦T≦3秒となります。
- 注※1
-
rpc_rap_auto_connect=Yの場合にオートコネクトモードとなります。rpc_rap_auto_connectオペランドはユーザサービス定義もしくはユーザサービスデフォルト定義で指定可能です。
- 注※2
-
連鎖型RPCの処理区間は対象外となります。ただし,連鎖型RPCの初回のdc_rpc_call関数は対象となります。
●stack_size_unlimited=Y|N
プロセス起動時にプロセスが使用するスタックサイズを無制限(unlimited)に設定するかどうかを指定します。
- Y
-
プロセススタックサイズを無制限(unlimited)に設定します。
- N
-
プロセススタックサイズを設定しません。OSに設定されているスタックサイズを使用します。
ユーザサーバプロセスでスタック領域をOSの設定値以上に使用する場合は,このオペランドにYを指定する必要があります。
OpenTP1が提供する次のサービスでは,ユーザサービスデフォルト定義に指定した定義内容が有効になります。
-
MQCゲートウェイサービス
-
リポジトリ管理サーバ
-
リアルタイム統計情報サービス
rapクライアントマネジャ,rapリスナー,rapサーバ
コマンド形式
次ページ以降に記述しています。
putenv形式
●環境変数名 環境変数値
〜〈文字列〉
このサービスグループのプロセスで,指定した環境変数に値を設定します。
COBOLの動作環境をOpenTP1が起動するため,COBOL環境の設定などに使用します。UAPの実行形式プログラムごとに,任意の環境変数を与えることができます。標準Cライブラリ'putenv'を参照してください。
ここで,PATHを設定するとプロセスサービス定義のprcsvpathオペランドおよび運用コマンドprcpathの指定は,このサービスグループに限り無効になり,PATHの値となります。PATHを設定する場合は,このサービスグループのロードモジュールが置かれているディレクトリも含めて設定してください。
なお,OpenTP1では,'dc'で始まる環境変数名は使用しないでください。
●DCFPL_CONNECT_RETRY_COUNT コネクション確立処理をリトライする回数
〜〈符号なし整数〉((8〜2147483647))
リモートAPI機能使用時の通信制御部のコネクション確立処理で,ECONNREFUSEDエラーが発生した場合,コネクション確立処理をリトライする回数を指定します。
このオペランドに8以上の値を指定し,通信制御部のコネクション確立処理でECONNREFUSEDエラーが発生した場合,DCFPL_CONNECT_RETRY_INTERVALオペランドに指定した時間を待ったあと,コネクション確立処理をリトライします。
なお,このオペランドの指定を省略した場合,または,8より小さい値を指定した場合は,8を仮定します。
●DCFPL_CONNECT_RETRY_INTERVAL コネクション確立処理のリトライ間隔
〜〈符号なし整数〉((10〜999))(単位:ミリ秒)
リモートAPI機能使用時の通信制御部のコネクション確立処理で,ECONNREFUSEDエラーが発生した場合,コネクション確立処理のリトライ間隔をミリ秒単位で指定します。
なお,このオペランドの指定を省略した場合,または,10〜999の範囲外の値を指定した場合は,100を仮定します。
●XAT_CONNECT_RESP_TIME 通信イベント処理用SPPのアソシエーション確立の最大応答待ち時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
プロトコルにOSI TPを使用する通信で,通信イベント処理用SPP内のアソシエーション確立要求(dc_xat_connect関数)の最大応答待ち時間を指定します。0を指定した場合は,応答を無限に待ちます。
set形式のxat_connect_resp_timeオペランドでも同じ内容を指定できます。このオペランドとset形式のxat_connect_resp_timeオペランドの関係については,表3-21を参照してください。