ネームサービス定義

形式

set形式

〔set name_total_size=サービス情報領域の大きさ〕
〔set name_cache_size=サービス情報キャッシュ領域の大きさ〕
〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕
〔set name_global_lookup=Y|N
〔set name_service_extend=1|0
〔set name_audit_conf=2|1|0
〔set name_audit_interval=監視間隔時間〕
〔set name_audit_watch_time=ノードダウンを検知するまでの最大待ち時間〕
〔set name_rpc_control_list=Y|N〕
〔set name_nodeid_check_message=Y|N〕
〔set name_cache_validity_time=他ノードのサービス情報の有効時間〕
〔set watch_time=最大応答待ち時間〕
〔set name_start_watch_time=OpenTP1起動時のノードリスト要求応答待ち時間〕
〔set name_start_retry_count=OpenTP1起動時のノードリスト要求リトライ回数〕
〔set name_start_retry_interval=OpenTP1起動時のノードリスト要求リトライ間隔〕
〔set name_start_error= stop|continue
〔set name_sync_ready_time=ノードリスト同期待ち時間〕

コマンド形式

namnlfil ‐{r|n} ノードリストファイル名〕

機能

RPCを可能にするサービス名とアドレスの対を管理するための実行環境を定義します。

ネームサービスは,ここで指定するサービス情報領域とサービス情報キャッシュ領域の大きさを加算した領域を,システム環境定義で指定した静的共用メモリの中から確保します。

説明

set形式のオペランド

name_total_size=サービス情報領域の大きさ

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

自ノードのネームサービスが確保するサービス情報領域の大きさを指定します。ノード自動追加機能を使用する場合は,必ず指定します。

サービス情報領域の大きさは,システムサービスとユーザサーバで登録するサービス情報の数を基に計算します。計算式については,「付録B.1 TP1/Server Base用の共用メモリの見積もり式」を参照してください。

ノード自動追加機能を使用する場合の計算式を次に示します。

システム共通定義のname_service_modeオペランドにmanager,またはagentを指定した場合

name_total_size=↑(7936+all_node_exのノード数×284
                +all_node_ex_extend_numberオペランドの指定値
                   ×284
                +163840
                +((SPP数※1+rapサーバ数※2+XATMI数※3)×264)
                +MCF※4+DAM※5+TAM※6+CLT※7)/1024↑

システム共通定義のname_service_modeオペランドを省略,またはnormalを指定した場合

name_total_size=↑(7616+(all_nodeのノード数×384
                +all_node_exオペランドの指定値
                   ×284
                +all_node_extend_numberオペランドの指定値×384
                +all_node_ex_extend_numberオペランドの指定値
                   ×284)
                +((SPP数※1+rapサーバ数※2+XATMI数※3)×264)
                +MCF※4+DAM※5+TAM※6+CLT※7)/1024↑

(凡例)
↑↑:小数点以下を切り上げます。
注※1
サービスグループの数になります。
注※2
rapサーバを起動する場合は,rapサービス数を指定します。
注※3
XATMIインタフェースの関数を使用する場合は,XATMIのSPPで定義したサービスの総数になります。
注※4
TP1/Message Controlを使用する場合は,次の算出式で求めた値になります。
(1+MCF通信サーバの数+MHP数)×264
注※5
TP1/FS/Direct Accessを使用する場合は,936になります。
注※6
TP1/FS/Table Accessを使用する場合は,1424になります。
注※7
クライアント拡張サービス機能を使用する場合は,936になります。

name_cache_size=サービス情報キャッシュ領域の大きさ

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

自ノードのネームサービスが確保するサービス情報キャッシュ領域の大きさを指定します。

サービス情報キャッシュ領域の大きさは,他ノードに登録されているサービス情報のうち,自ノードから検索を要求するサービス情報の数を基に計算します。計算式については,「付録B.1 TP1/Server Base用の共用メモリの見積もり式」を参照してください。

ノード自動追加機能を使用する場合の計算式を次に示します。

システム共通定義のname_service_modeオペランドにmanager,またはagentを指定した場合

name_cache_size=↑(ノードリストに登録されているノードおよび
                all_node_exオペランドに指定したノード※1で起動する
                SPP数※2の総計
               ×224)/1024↑

システム共通定義のname_service_modeオペランドを省略,またはnormalを指定した場合

name_cache_size=↑(all_nodeオペランドおよび
                all_node_exオペランドに指定したノード※3で起動する
                SPP数※2の総計
               ×224)/1024↑

(凡例)
↑↑:小数点以下を切り上げます。
注※1
システム共通定義のall_node_exオペランドに指定したノードか,またはドメイン定義ファイルに指定したノードです。
注※2
サービスグループの数になります。
注※3
システム共通定義のall_nodeオペランド,およびall_node_exオペランドに指定したノードか,またはドメイン定義ファイルに指定したノードです。

ネームサービスは,サービス情報領域が不足したとき,サービス情報キャッシュ領域をサービス情報領域として使用することがあります。逆に,サービス情報領域をサービス情報キャッシュ領域として使用することはありません。

サービス情報キャッシュ領域を大きくすると,他ノードのサービス情報を検索するときの応答性能が向上します。

ただし,必要以上に大きくすると,OpenTP1システム全体のメモリを圧迫します。

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

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

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

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

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

 

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

システム共通定義のname_service_modeオペランドにmanager,またはagentを指定した場合
2032を指定してください。
システム共通定義のname_service_modeオペランドを省略,またはnormalを指定した場合
↑(A+B+C)/0.8↑

計算式の凡例を次に示します。

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

A:自ノード内で,次の値の合計値です。

  1. OpenTP1の開始から終了までに起動するUAPのプロセス数
  2. クライアントサービス定義のparallel_countオペランド指定値
  3. システムサービスプロセス数
    システムサービスプロセス数については,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造の記述を参照してください。
  4. 次のどちらかの値
    システム共通定義のname_domain_file_useオペランドにNを指定している場合
    システム共通定義のall_nodeオペランドとall_node_exオペランドに指定しているノードの数
    システム共通定義のname_domain_file_useオペランドにYを指定している場合
    ドメイン定義ファイル($DCCONFPATH/dcnamnd,および$DCCONFPATH/dcnamndexディレクトリ下のファイル)に指定しているノードの数
  5. 自ノードで稼働するUAPで,dc_rpc_call_to関数を実行する場合のあて先に指定しているノード数
    ただし,Aの4.と重複したノードは除きます。

B:他ノードのOpenTP1システムで,次の1.~2.に該当するノードの数の合計値です。

  1. 次のどちらかの値
    システム共通定義のname_domain_file_useオペランドにNを指定している場合
    自ノード名をシステム共通定義のall_nodeオペランド,またはall_node_exオペランドに指定しているノードの数を4倍した値
    システム共通定義のname_domain_file_useオペランドにYを指定している場合
    自ノード名をドメイン定義ファイル($DCCONFPATH/dcnamnd,および$DCCONFPATH/dcnamndexディレクトリ下のファイル)に指定しているノードの数を4倍した値
  2. 自ノード名をdc_rpc_call_to関数のあて先に指定したUAPが稼働する他ノード数
    ただしAの4.および5.,Bの1.のどれかと重複したノードを除きます。

C:自ノードのネームサービスのポート番号に接続するCUPプロセス数,およびスレッド数

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

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

  1. ネームサービス定義
  2. システム共通定義

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

name_global_lookup=Y|N

 ~《N》

グローバル検索機能を使用するかどうかを指定します。

グローバル検索機能とは,all_nodeオペランドで指定された各ノード上のネームサービスがキャッシュしている他ノードのサービス情報を取得する機能です。

Y
グローバル検索機能を使用します。
N
グローバル検索機能を使用しません。

グローバル検索機能使用時のシステム構成例を次の図に示します。

図3-4 グローバル検索機能使用時のシステム構成

[図データ]

この図で示したシステム構成例の場合に,各OpenTP1ノードで指定するオペランドの値を次の表に示します。

表3-1 グローバル検索機能を使用したシステムのオペランドの指定値

OpenTP1ノード名all_nodeオペランドの指定値name_global_lookupオペランドの指定値
OpenTP1-AB,CY
OpenTP1-BA,C,D,EN
OpenTP1-CA,B,F,GN
OpenTP1-DB,EN
OpenTP1-EB,DN
OpenTP1-FC,GN
OpenTP1-GC,FN

OpenTP1-Aからの検索範囲は,OpenTP1-B~OpenTP1-Gとなります。つまり,OpenTP1システム1だけでなく,OpenTP1システム2および3までのサービスと通信できるようになります。

グローバル検索機能を使用した環境では,DCRPC_BINDTBL_SET関数の引数portnoにネームサービスのポート番号を指定した,dc_rpc_call_to関数は使用できません。

DCRPC_BINDTBL_SET関数の引数nidにノード識別子を指定した,dc_rpc_call_to関数を使用する場合は,必ずグローバル検索機能の検索範囲(図のOpenTP1システム1~3)内のすべてのOpenTP1ノードのノード識別子を一意に定義してください。

サービス情報(閉塞,負荷状態など)は,検索元OpenTP1(図のOpenTP1-A)まで通知されないため,図のように水平分散を利用したサービス要求を行うことをお勧めします。

ネームサービス定義のname_cache_sizeオペランドの指定値は,自ノードから検索を要求するサービス情報の数に,all_nodeオペランドで指定されたノードにキャッシュされるサービス情報の数まで含めて算出する必要があります。

グローバル検索機能を使用したOpenTP1(図のOpenTP1-A)に対し,TP1/Client/P,TP1/Client/WまたはTP1/Client/Jからサービス要求が送信された場合,OpenTP1システム1だけでなく,OpenTP1システム2および3のサービス情報まで取得します。

グローバル検索機能の詳細については,マニュアル「OpenTP1 解説」を参照してください。

name_service_extend=1|0

 ~《0》

ネームサービスで管理するサーバUAPの取得数を拡張します。このオペランドに1を指定した場合,RPC先の各ノードで起動する同一サービスグループ名のサーバUAPに対し,RPC先の対象を最大512にできます。ただし,RPC先の各ノードは,all_nodeオペランドで指定したOpenTP1システムに含まれている必要があります。このオペランドに0を指定した場合,または指定を省略した場合,RPC先の対象は,最大128のままになります。

name_audit_conf=2|1|0

 ~《0》

ノード監視機能を使用するかどうかを指定します。ノード監視機能の詳細については,マニュアル「OpenTP1 解説」を参照してください。

2
送受信型ノード監視機能を使用します。
1
一方送信型ノード監視機能を使用します。
0
ノード監視機能を使用しません。

このオペランドを指定する場合,次の点に注意してください。

ノード自動追加機能を使用する場合,次の点に注意してください。

name_audit_interval=監視間隔時間

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

監視サービスのノード監視が終了したあと,次の監視を開始するまでの時間を指定します。

ノード自動追加機能を使用する場合の動作は次のとおりです。

このオペランドには,マネジャノードのネームサービス定義のname_sync_ready_timeオペランドの指定値と同じ値を指定してください。指定値が異なると,エージェントノードのノードリストから不当にノード情報が削除されることがあります。また,マネジャノードとエージェントノードとの間で,ノードリストの整合性が取られるまでに時間が掛かるおそれがあります。

name_audit_watch_time=ノードダウンを検知するまでの最大待ち時間

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

name_audit_confオペランドに2(送受信型ノード監視)を指定した場合,監視対象のノードから応答が返るまでの待ち時間の最大値を指定します。なお,name_audit_confオペランドに1を指定した場合,システム共通定義のipc_conn_intervalオペランドに指定した値がノードダウンを検知するまでの時間となります。

ノード自動追加機能を使用する場合は,次の動作をします。

name_rpc_control_list=Y|N

 ~《Y》

RPC抑止リストに登録されたノードの監視機能を使用するかどうかを指定します。

Y
RPC抑止リストに登録されたノードの監視機能を使用します。監視する時間の間隔は180秒です。
N
RPC抑止リストに登録されたノードの監視機能を使用しません。

ネームサービスでは,ノード監視機能とは別に180秒ごとにRPC抑止リストに登録されたノードの起動状況を確認できます。この機能の使用有無を,このオペランドで指定します。

ノードの監視機能の設定を考慮して,この機能を使用してください。例えば,次に示す状態の場合,RPC抑止リストに登録されたノードの監視機能を無効にする必要があります。

RPC抑止リストに登録されたノードの監視機能を無効にした場合で,name_audit_intervalオペランドに指定した時間が180秒以上のとき,障害から復旧したノードがRPC抑止リストから削除されるまでの時間は,RPC抑止リストに登録されたノードの監視機能を使用した場合よりも長くなります。

次に示す条件を満たす場合は,このオペランドにNを指定することをお勧めします。

name_audit_confオペランドを省略するか,または0を指定した場合,name_rpc_control_listオペランドにNを指定したときは,ノード監視機能およびRPC抑止リストへの監視機能は無効になるので次に示す状態になります。

上記の状態を防ぐためには,name_audit_confオペランドを省略するか,または0を指定した場合,name_rpc_control_listオペランドを省略するか,Yを指定することをお勧めします。

name_nodeid_check_message=Y|N

 ~《Y》

自ノードと同じノード識別子を指定したノードから通信を受信した場合に,KFCA00677-Wメッセージを出力するかどうかを指定します。

Y
KFCA00677-Wメッセージを出力します。
N
KFCA00677-Wメッセージを出力しません。

name_cache_validity_time=他ノードのサービス情報の有効時間

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

他ノードから取得したサーバUAPのサービス情報の有効時間を指定します。ネームサービスでは,次に示す場合に,他ノードで起動しているサーバUAPのサービス情報を取得します。

他ノードからサービス情報を取得した時点からこのオペランドに指定した時間内は,他ノードに対してサービス情報を検索しないでRPCを実行します。RPC実行時に,サービス情報の有効時間がこのオペランドに指定した時間を超過していた場合,システム共通定義のall_nodeオペランドに指定したノードからサービス情報を新たに取得し,すでに登録されているサービス情報を更新します。また,サービス情報の有効時間内でも,他ノードからサービス情報の更新通知を受けると,サービス情報は更新されます。

name_cache_validity_timeオペランドの指定値を変更する場合の注意事項を次に示します。

watch_time=最大応答待ち時間

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

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

クライアントUAPが他ノードのサーバUAPにサービスを要求する形態の場合,このオペランドを指定してください。他ノードのサーバUAPへサービスを要求する概要と,このオペランドが適用されるRPC通信個所を次の図に示します。

図3-5 他ノードのサーバUAPへのサービス要求概要

[図データ]

このオペランドには,クライアントUAPの最大応答待ち時間よりも小さい値を指定してください。クライアントUAPの最大応答待ち時間と同じか,それよりも大きい値を指定した場合,他ノードのネームサービスの処理遅延によって,先にクライアントUAPプロセスのサービスの検索要求が送受信タイムアウトになります。

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

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

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

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

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

name_start_watch_time=OpenTP1起動時のノードリスト要求応答待ち時間

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

エージェントノードはOpenTP1の起動時に,マネジャノードに対してノードリスト要求をします。ノードリスト要求を送信してから,応答を受信するまでの待ち時間の最大値を指定します。指定時間を過ぎても応答がない場合は,ノードリスト要求はエラーとなります。エラー発生後の動作は,name_start_errorオペランドの指定値に従います。

このオペランドは,ノード自動追加機能を使用する場合に,エージェントノードで指定します。

0を指定した場合,応答を受信するまで無限に待ち続けます。

大きな値を指定した場合,マネジャノードの動作状況によっては,OpenTP1の開始処理に時間が掛かるおそれがあります。

name_start_retry_count=OpenTP1起動時のノードリスト要求リトライ回数

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

エージェントノードはOpenTP1の起動時に,マネジャノードに対してノードリスト要求をします。このノードリスト要求でエラーが発生した場合のリトライ回数を指定します。発生したエラーの回数が,指定した値を超えたときは,name_start_errorオペランドの指定に従った処理を実行します。

このオペランドは,ノード自動追加機能を使用する場合に,エージェントノードで指定します。

0を指定した場合,リトライしません。

大きな値を指定した場合,マネジャノードの動作状況によっては,OpenTP1の開始処理に時間が掛かるおそれがあります。

name_start_retry_interval=OpenTP1起動時のノードリスト要求リトライ間隔

 ~〈符号なし整数〉((1~60))《10》(単位:秒)

エージェントノードはOpenTP1の起動時に,マネジャノードに対するノードリスト要求をします。このノードリスト要求でエラーが発生した場合のリトライ間隔を指定します。

このオペランドは,ノード自動追加機能を使用する場合に,エージェントノードで指定します。また,ネームサービス定義のname_start_retry_countオペランドに1以上を指定した場合に有効となります。

大きな値を指定した場合,マネジャノードの動作状況によっては,OpenTP1の開始処理に時間が掛かるおそれがあります。

name_start_error=stop|continue

 ~《continue》

エージェントノードがOpenTP1の起動時に,マネジャノードからノードリストを正常に受信できなかった場合の処理を指定します。

stop
OpenTP1の開始処理を中止します。
このとき,アボートコードnamdmnUを出力します。ただし,再開始(リラン)時は,OpenTP1の開始処理を続行します。
continue
OpenTP1の開始処理を続行します。
OpenTP1開始完了後,ネームサービス定義のname_audit_intervalオペランドに指定した間隔で,定期的にノードリスト要求を送信します。このときの応答待ち時間は,ネームサービス定義のname_audit_watch_timeオペランドに指定した値となります。マネジャノードからノードリストを受信するまでの間は,オペランドを指定したノードだけで動作します。

このオペランドは,ノード自動追加機能を使用する場合に,エージェントノードで指定します。

name_sync_ready_time=ノードリスト同期待ち時間

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

エージェントノードからRPCメッセージが受信できる状態になってから,エージェントノードとノードリストの整合性を取るまでの待ち時間を指定します。

このオペランドは,ノード自動追加機能を使用する場合に,マネジャノードで指定します。ただし,ノードリストを引き継ぐ場合,このオペランドの指定は無視します。

マネジャノードは,このオペランドに指定した時間が経過するまで,エージェントノードとノードリストの整合性を取りません。ただし,OpenTP1システム内に新たに追加されたエージェントノードに対してはノードリストを返します。

このオペランドには,エージェントノードのネームサービス定義のname_audit_intervalオペランド指定値と同じ値を指定してください。指定値が異なると,エージェントノードのノードリストから不当にノード情報が削除されることがあります。また,マネジャノードとエージェントノードとの間で,ノードリストの整合性が取られるまでに時間が掛かるおそれがあります。

コマンド形式

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