Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 システム定義


プロセスサービス定義

〈このページの構成〉

形式

set形式

〔set prc_process_count=最大同時起動サーバプロセス数〕
〔set prc_recovery_resident=Y|N〕
〔set prc_take_over_svpath=Y|N〕
〔set prc_take_over_dlpath=Y|N〕
〔set term_watch_time=連続異常終了限界経過時間〕
〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕
〔set term_watch_count=連続異常終了限界回数〕
〔set prc_prf_trace=Y|N〕
〔set prc_coresave_path=コアファイル格納パス〕
〔set prc_corecompress=Y|N〕
〔set watch_time=最大応答待ち時間〕
〔set prc_hugepage_group_id=グループ識別子〕

コマンド形式

prcsvpath パス名〕

機能

OpenTP1システム環境下で実行するサーバプロセスを管理するための実行環境を定義します。

プロセスサービス定義を変更した場合,OpenTP1を正常終了してdcresetコマンドを実行してください。

説明

set形式のオペランド

prc_process_count=最大同時起動サーバプロセス数

 〜〈符号なし整数〉((1〜10000))《64》

同一OpenTP1ノード内で同時に起動するサーバプロセス数の最大値を指定します。ただし,実際に起動できる最大プロセス数は,OpenTP1を起動しているマシンに依存します。

なお,このオペランドを指定する場合は,実装するメモリ量やマシンで起動できる最大プロセスを考慮して,指定してください。

ここで指定するプロセス数は,OpenTP1システムで動作する常駐,および非常駐の全サーバ(ユーザサーバ,およびシステムサービス)プロセス数を指定します。プロセス数には,次のコマンドが含まれます。

  • dcstart

  • dcstop

  • dcsvstart

  • dcsvstop

  • dcstats

なお,ユーザサービス構成定義のdcsvstart定義コマンドは含まれません。

マルチサーバの場合は,起動する本数を加算します。

非常駐プロセスを指定しているユーザサーバや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コマンドの説明を参照してください。

システムサービスの場合は,ログサービス,ジャーナル関連(チェックポイントダンプ,システムジャーナルなど),MCF,およびMQシステムの数を指定します。

prc_recovery_resident=Y|N

 〜《Y》

UAPが異常終了したときに部分回復するプロセスを常駐にするか,非常駐にするかを指定します。非常駐にすると,UAPがダウンするたびに部分回復するプロセスが起動されます。OpenTP1を動作させるときにメモリに余裕がない場合は,Yを指定,またはこのオペランドを省略してください。Yを指定,またはこのオペランドを省略した場合は,部分回復する常駐プロセスの数は一つです。

Y

部分回復するプロセスを常駐化します。

N

部分回復するプロセスを非常駐化します。

prc_take_over_svpath=Y|N

 〜《N》

ノード内で,ユーザサーバおよびコマンドのパスをリラン時に引き継ぐかどうかを指定します。

Y

リラン時にユーザサーバおよびコマンドのパスを引き継ぎます。

N

リラン時にユーザサーバおよびコマンドのパスを引き継ぎません。

Yを指定すると,ユーザサーバおよびコマンドのパスを変更したあと,OpenTP1が正常開始するまでその変更が引き継がれます。

ユーザサーバおよびコマンドのパスの引き継ぎは,ノード内に限定されるので,系切り替え機能で切り替わった系には引き継がれません。

ユーザサーバおよびコマンドのパスの引き継ぎに失敗した場合は,警告メッセージを出力し,前回のオンライン中のユーザサーバおよびコマンドのパスの変更を引き継がないで処理を続行します。

prc_take_over_dlpath=Y|N

 〜《N》

ノード内で,prcdlpathコマンドで設定したUAP共用ライブラリのサーチパスをリラン時に引き継ぐかどうかを指定します。

Y

リラン時にUAP共用ライブラリのサーチパスを引き継ぎます。

N

リラン時にUAP共用ライブラリのサーチパスを引き継ぎません。

Yを指定すると,prcdlpathコマンドでUAP共用ライブラリのサーチパスを変更したあと,OpenTP1が正常開始するまでその変更が引き継がれます。prcdlpathコマンドを複数回実行した場合は,最後に実行したprcdlpathコマンドで設定されたサーチパスだけが引き継がれます。

UAP共用ライブラリのサーチパスを変更したあと,OpenTP1を正常開始した場合は,その変更は引き継がれません。そのため,正常開始後に変更後のサーチパスに指定したディレクトリからUAP共用ライブラリを読み込みたい場合は,環境変数でライブラリサーチパスを設定してください。

UAP共用ライブラリのサーチパスの引き継ぎは,ノード内に限定されるので,系切り替え機能で切り替わった系には引き継がれません。

UAP共用ライブラリのサーチパスの引き継ぎに失敗した場合は,KFCA00734-Wメッセージを出力し,前回のオンライン中に行ったUAP共用ライブラリのパスの変更を引き継がないで処理を実行します。

前回のオンライン中に,何度もprcdlpathコマンドでサーチパスを変更しながらユーザサーバを開始していた場合,サーチパスは引き継がれていても,リラン時にユーザサーバが正常に開始できないことがあります。

term_watch_time=連続異常終了限界経過時間

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

OpenTP1が異常終了した回数を監視する限界経過時間を指定します。0を指定した場合は,時間監視をしません。

指定時間内に3回連続してOpenTP1がシステムダウンした場合,プロセスサービスはKFCA00715-Eメッセージを出力して,システムの開始または再開始を中断します。この場合は,システムダウンをした要因を取り除いてから,dcsetupコマンドで一度OSへの登録を削除,再度登録するか,またはdcresetコマンドを入力してください。

システム環境定義のmode_confオペランドが「MANUAL2」の場合,プロセスサービスの連続ダウン以外はこのオペランドの指定は無効となります。

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

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

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

指定値の範囲は,適用OSがAIX,HP-UXまたはWindowsの場合は32〜2032,適用OSがSolarisまたはLinuxの場合は32〜1008です。

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

注※

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

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

↑(自ノード内UAPプロセス数※1+プロセスサービスに対してサービスを要求してくるノード数※2+システムサービスプロセス数※3)/0.8↑

↑↑:小数点以下を切り上げます。

注※1

自ノード内UAPプロセス数は,次に示す値の合計です。

  • 自OpenTP1内のUAPプロセス数

  • CUPから同時に起動するトランザクション数(クライアントサービス定義のparallel_countオペランドの指定値)

注※2

プロセスサービスに対してサービスを要求してくるプロセス数とは,TP1/Multiを使用した場合だけ加算してください。このノード数は,次に示す値の合計です。

  • 自ノードに対してdc_adm_get〜関数を呼び出す,他ノード内UAPプロセス数

  • 自ノードを構成要素とするマルチノードエリアおよびマルチノードサブエリアに対して入力するdcmstart,dcmstop,dcndlsコマンドの数

注※3

システムサービスプロセス数とは,自OpenTP1内のシステムサービスプロセスの数です。自OpenTP1内のシステムサービスプロセスは,rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスをカウントしてください。

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

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

  1. プロセスサービス定義

  2. システム共通定義

ここで指定を省略した場合,システム共通定義の値を仮定します。

term_watch_count=連続異常終了限界回数

 〜〈符号なし整数〉((1〜3))《3》

このオペランドに1〜3の値を指定すると,OpenTP1システム連続異常終了限界回数指定機能を使用できます。

term_watch_timeオペランドは,このオペランドの指定値が3,または省略された場合に有効となります。このオペランドとterm_watch_timeオペランドの関係を次の表に示します。

表3‒4 term_watch_countオペランドとterm_watch_timeオペランドの関係

term_watch_count

オペランドの指定値

term_watch_timeオペランドの指定値

0

0以外

1または2

term_watch_timeオペランドの指定値に関係なく,term_watch_countオペランドの指定値で開始,再開始を中断します。

term_watch_timeオペランドの指定値に関係なく,term_watch_countオペランドの指定値で開始,再開始を中断します。

3または省略

開始,再開始を中断しません。

term_watch_timeオペランドの指定値に従い,3回で開始,再開始を中断します。

このオペランドで指定した回数まで連続してOpenTP1がシステムダウンした場合,プロセスサービスはKFCA00715-Eメッセージを出力して,システムの開始または再開始を中断します。この場合は,システムダウンした要因を取り除いてから,dcsetupコマンドで一度OSへの登録を削除して再登録するか,またはdcresetコマンドを入力してください。

システム環境定義のmode_confオペランドが「MANUAL2」の場合,プロセスサービスの連続ダウン以外はこのオペランドの指定は無効となります。

prc_prf_trace=Y|N

 〜《Y》

プロセスサービスのイベントトレースを取得するかどうかを指定します。

Y

プロセスサービスのイベントトレースを取得します。

N

プロセスサービスのイベントトレースを取得しません。

このオペランドでYを指定した場合,プロセスサービスの動作を検証するためのイベントトレースが取得されます。イベントIDの詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。

イベントトレースは次に示すファイルに取得されます。

  • 0xb001〜0xb003:$DCDIR/spool/dcprfinfの下のトレースファイル

  • 0xb010以降:$DCDIR/spool/dcprcinfの下のトレースファイル

イベントトレースのうち,プロセスの生成と消滅については次に示すタイミングで情報が取得されます。

  1. プロセス生成時に子プロセスで取得(イベントIDは0xb001)

  2. プロセス消滅時に取得(イベントIDは0xb002)

  3. プロセス生成時に親プロセスで取得(イベントIDは0xb003)

prfedコマンド実行時に-dオプションを指定すると,1.では生成したプロセスのサーバ名を,2.では消滅したIDとその終了状態を,また3.では生成したプロセスIDを,表示されるデータとして取得します。したがって,取得したトレース情報をprfedコマンドで出力する場合は,-dオプションを指定してください。-dオプションを指定すると次のようにトレース情報が出力されます。

1.の場合
Offset  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f  ASCII_code
 +0000  aa aa aa aa aa aa aa aa                          AAAAAAAA
  • aa:生成したプロセスのサーバ名(16進数字)

  • AA:生成したプロセスのサーバ名(ASCIIコード)

2.の場合
Offset  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f  ASCII_code
 +0000  bb bb bb bb cc cc cc cc                          BBBBCCCC
  • bb:消滅したプロセスID(16進数字)

  • BB:消滅したプロセスID(ASCIIコード)

  • cc:消滅したプロセスの終了状態(16進数字)

  • CC:消滅したプロセスの終了状態(ASCIIコード)

3.の場合
Offset  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f  ASCII_code
 +0000  dd dd dd dd                                      DDDD
  • dd:生成したプロセスID(16進数字)

  • DD:生成したプロセスID(ASCIIコード)

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

なお,システム共通定義のprf_traceオペランドにNを指定した場合,このオペランドの指定は無効となります。

prc_coresave_path=コアファイル格納パス

 〜〈パス名〉《$DCDIR/spool/save》

OpenTP1プロセスのコアファイルを格納するディレクトリを絶対パス名で指定します。

ユーザサーバの場合は,UAPトレース編集結果もこのオペランドで指定したディレクトリに格納されます。

パス名に指定できる文字数は,最大63文字です。

このオペランドで指定したパス名に誤りがある場合や,このオペランドの指定を省略した場合は,コアファイルの格納先に$DCDIR/spool/saveを仮定します。

OpenTP1管理者は,このオペランドで指定したディレクトリにコアファイルを書き込める権限を持っている必要があります。そうでない場合は,コアファイルが書き込まれないことがあります。

プロセスサーバのコアファイルの場合は,このオペランドの指定に関係なく,$DCDIR/spool/saveに出力されることがあります。

このオペランドの指定値を変更した場合は,dcresetコマンドを実行する必要があります。

prc_corecompress=Y|N

 〜《N》

OpenTP1プロセスのコアファイルの格納時にOpenTP1で自動的に圧縮するかどうかを指定します。

Y

OpenTP1プロセスのコアファイルの格納時に,OpenTP1で自動的に圧縮します。

N

OpenTP1プロセスのコアファイルの格納時に,OpenTP1で自動的に圧縮しません。

このオペランドの指定を省略した場合は,圧縮しません。

圧縮処理は,OSが標準提供するコマンドを使用して,OpenTP1がオンライン中にUAPがダウンした場合などに行います。そのため,このオペランドでYを指定した場合で,UAPがダウンしたときは,OSが標準提供する圧縮処理用コマンドの性能に依存して,全体の性能が低下することがあります。

このオペランドでYを指定した場合,コアファイルを格納するディレクトリに,圧縮処理前のファイル名が付いた0バイトのファイルが作成されます。このファイルは,退避した情報ファイルの世代管理に使用することがあるため,削除しないでください。

このオペランドの指定値を変更した場合は,dcresetコマンドを実行する必要があります。

watch_time=最大応答待ち時間

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

RPCによってプロセス間で通信する場合,サービス要求を送ってからサービスの応答が返るまでの待ち時間の最大値を指定します。

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

指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。

0を指定した場合は,応答を受信するまで待ち続けます。0を指定した場合,OpenTP1が終了しないときがあります。

省略した場合は,システム共通定義のwatch_timeオペランドの値を仮定します。

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

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

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

prc_hugepage_group_id=グループ識別子

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

Hugepage機能を適用するときに,使用可能なグループ識別子を指定します。

このオペランドには,カーネルパラメタvm.hugetlb_shm_groupに指定する値と同じ値を指定してください。

OpenTP1が使用する共用メモリにHugepage機能を適用する場合,このオペランドを必ず指定してください。

共用メモリにHugepage機能を適用するのは,次に示すオペランドにhugepageを指定している場合です。

  • システム環境定義のshmpool_attributeオペランド

  • DAMサービス定義のdam_cache_attributeオペランド

  • TAMサービス定義のtam_pool_attriオペランド

この指定値はLinux版の64ビット版の場合だけ指定できます。

<注意事項>

このオペランドの指定値が適切でなくても,OSのバージョンによってはOpenTP1の共用メモリにHugepage機能を適用できる場合があります。ただし,OSのアップデートなどによりHugepage機能を適用できなくなる場合があるため,適切な値を指定してください。

コマンド形式

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