SYSRPC ユーティリティには、クライアントの呼び出し元プログラムをサーバーのサブプログラムに接続するためにサービスディレクトリをメンテナンスする場合に使用する機能があります。 サービス情報は、サブプログラム NATCLTGS および XML 形式ファイル SERVDIRX(Natural テキストオブジェクト)に保存されます。
サービスディレクトリメンテナンスの機能を適用する方法の詳細については、『Natural リモートプロシージャコール(RPC)』ドキュメントの「Natural RPC 環境の運用」で「RPC サーバーアドレスの指定」を参照してください。
以下では次のトピックについて説明します。
NATCLTGS が Natural システムライブラリ SYSRPC に保存されている場合、NATCLTGS をアプリケーションライブラリまたはその steplib のいずれかに移動することを強くお勧めします。
サービスディレクトリの主な項目は、ノード、サーバー、ライブラリ、およびサービス(サブプログラム)です。 これらの項目の階層構造は、[SYSRPC - Remote Procedure Call]ウィンドウにツリービューとして表示されます(「基本的な機能」の「サービスディレクトリツリー」も参照)。 ツリービューの最上位のレベル(ルートノード)は Service Directory で、最下位のレベルはサービス(サブプログラム)です。
サービスディレクトリに指定されたノードおよびサーバー名は、物理名または論理名と論理サービスです。
このセクションでは、次のトピックについて説明します。
物理ノードとサーバー名は、実際のノード(有効な TCP/IP または Entire Net-Work アドレス)とサーバーの名前を表します。
次の「サービスディレクトリの例」では、2 台のサーバーが 1 つのノードに対して定義されます。 両方のサーバーが同じノード ETB045
に接続されます。 サブプログラム SUB1
に対するリモート CALLNAT
がサーバー NRPC001
上で実行されます。一方、サブプログラム SUB2
および SUB3
はサーバー NRPC002
上で実行されます。
ここで指定するサーバー名は、プロファイルパラメータ SRVNAME
で指定したサーバー名と同一である必要があります。このパラメータについては、『パラメータリファレンス』ドキュメントを参照してください。 同じように、サービスディレクトリのノード名は、プロファイルパラメータ SRVNODE
でサーバーに指定したノード名と同一である必要があります。このパラメータの詳細については、『パラメータリファレンス』ドキュメントを参照してください。
ロケーショントランスペアレンシとは、物理ノード名を論理ノード名で置き換えることができ、物理ノードとサーバー名の組み合わせを論理サービスで置き換えることができるという概念です。
論理ノード名と論理サービスは EntireX で定義され、Natural ランタイム時に物理ノードとサーバー名に対して割り当てられます。
「サービスディレクトリの例」および「論理サービスと論理ノード名の使用」も参照してください。
『Natural リモートプロシージャコール(RPC)』ドキュメントの「Natural RPC 環境の運用」の「ロケーショントランスペアレンシの使用」。
EntireX ドキュメントの関連セクション。
上記のサービスディレクトリの例で、アイコンは、NRPC001-LOGICAL
が論理サービスであることを示します。 LOGBROKER=NODE
は、NODE
が論理ノード名であることを示します。
このセクションでは、サービスディレクトリツリービューに含まれるツリーノードについて説明します。 各ツリーノードは、異なるアイコンで識別されます。
「基本的な機能」で説明したメニューバー、ツールバー、およびコンテキストメニューで提供される機能を使用して、ツリーノードを操作できます。
アイコン | ツリーノード | 説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
サービス |
サービスディレクトリルートノードは、サービスディレクトリが読み込まれたライブラリの名前を示します(Service Directory [library-name])。 例:ライブラリ USERLIB から SYSRPC ユーティリティを呼び出した場合、ルートは Service Directory [USERLIB]を読み込みます。 生じる可能性のある他のルートノードの詳細については、「エラー状況のルートノード名」を参照してください。 |
|||||||||
ノード |
リモート 名前の最大長は次のとおりです。
ログオンオプションの設定に応じて、次のアイコンのいずれかが表示されます。
下記の「ログオンオプション」も参照してください。 |
|||||||||
サーバー |
名前の最大長:32 文字 ログオンオプションの設定に応じて、次のアイコンのいずれかが表示されます。
下記の「ログオンオプション」も参照してください。 |
|||||||||
論理サービス |
論理サービスの名前。 名前の最大長:192 文字 ログオンオプションの設定に応じて、次のアイコンのいずれかが表示されます。
下記の「ログオンオプション」も参照してください。 |
|||||||||
ライブラリ | SYSTEM、またはリモート CALLNAT の実行時にクライアントアプリケーションがログオンするライブラリの名前。
|
|||||||||
サービス |
クライアントからアクセスするリモートサブプログラムの名前。 最大エントリ数:500 個のサブプログラム。 |
以降のセクションでは、次の項目について説明します。
このセクションでは、サービスディレクトリに必要なサブプログラムまたはテキストオブジェクトが見つからない場合に生じる可能性があるルートノード名を示し、考えられる理由と解決方法について説明します。
ノード名 | 理由 | 解決 |
---|---|---|
Service Directory |
テキストオブジェクト SERVDIRX が見つかりません。 |
[オブジェクト]メニューの[名前を付けて保存]または[保存]を選択します。 SYSRPC が呼び出されたライブラリに SERVDIRX が生成され、ルートノードの名前が Service Directory [library-name]に変更されます。 |
Example Service |
サブプログラム NATCLTGS およびテキストオブジェクト SERVDIRX が見つかりません。 |
[オブジェクト]メニューの[名前を付けて保存]または[保存]を選択します。 SYSRPC が呼び出されたライブラリに NATCLTGS および SERVDIRX が生成され、ルートノードの名前が Service Directory [library-name]に変更されます。 |
Empty tree |
NATCLTGS、SERVDIRX、および Natural システムライブラリ SYSRPC に提供されるサブプログラム DEF-GS が見つかりません。 DEF-GS にはデータ例が含まれています。 |
|
Natural ランタイム時、ノードおよびサーバーの選択は、サービス(サブプログラム)とライブラリツリーノードの値によって異なります。 次の条件に従います。
CALLNAT
ライブラリツリーノードに、現在のアプリケーションライブラリの名前または SYSTEM が含まれている必要があります。
CALLNAT
ステートメントで参照されるサブプログラムは、ポイント(1)のライブラリツリーノードに属するサービス(サブプログラム)ツリーノードに含まれている必要があります。
CALLNAT
ライブラリツリーノードに、現在のアプリケーションライブラリの名前または SYSTEM が含まれている必要があります。
OPEN CONVERSATION
ステートメントに指定したサブプログラムは、ポイント(1)のライブラリツリーノードに属するサービス(サブプログラム)ツリーノードに含まれている必要があります。
非会話型または会話型 CALLNAT
に使用されるノードとサーバーは、上位ノードおよびポイント(1)のライブラリツリーノードのサーバーツリーノードから取得されます。
論理サービスと論理ノード名を定義できます。 論理サービスと論理ノード名の例については、「サービスディレクトリの例」を参照してください。
論理サービスを定義するには
[Service Directory]ルートノードを選択し、[Edit]メニューを開いて[New Item]および[Logical Service (EntireX)]を選択します。
または:
[Service Directory]ルートノードを選択し、コンテキストメニューから[New Item]および[Logical Service (EntireX)]を選択します。
論理ノード名を定義するには
必要なノードのツリーノードを選択し、コンテキストメニューから[Rename]を選択するか、F2 キーを押し、次の値で既存の値を置き換えます。
LOGBROKER=node-name
node-name は、論理 EntireX Broker 名を示します。
論理ノード名を削除するには
必要なノードのツリーノードを選択し、コンテキストメニューから[Rename]を選択するか、F2 キーを押し、EntireX Broker 名で文字列 LOGBROKER=
を置き換えます。
論理サービスまたはノードに定義された物理名を表示するには
ping コマンドを使用します(「サーバーコマンドの実行」セクションを参照)。
ping は、論理サービスに定義された物理ノードとサーバーの名前、または論理ノードに定義された物理ノード名を表示するウィンドウを呼び出します。
[Logon Option]を設定すると、サービスディレクトリに指定されたライブラリに関係なく、CALLNAT
要求ごとに、クライアントでは、クライアントの現在のライブラリ名を使用してサーバーへの Natural ログオンを開始します。 アプリケーションプログラミングインターフェイス USR4008N を使用して、異なるライブラリを指定できます(『Natural リモートプロシージャコール(RPC)』ドキュメントの「ログオンオプションの使用」の「異なるライブラリへのログオン」も参照)。
リモート CALLNAT
が実行された(正常または失敗)後、サーバーライブラリは前の状態にリセットされます。 詳細については、『Natural リモートプロシージャコール(RPC)』ドキュメントの「ログオンオプションの使用」を参照してください。
[Logon Option]はサーバーまたはノードレベルで設定し、階層の下位レベルで行われたすべての定義に適用できます。 [Logon Option]を特定のサーバーに設定した場合、すべての関連ライブラリとサブプログラムの定義に適用されます。
[Logon Option]を設定するには
[Service Directory]ツリービューで、ノード、サーバー、または論理サービスのツリーノードを選択し、コンテキストメニューから[Logon Option]を選択します。
[Yes]を選択してサーバーに[Logon Option]を設定します (デフォルトは[No]です)。
選択したノードに対して[Logon Option]が正常に設定されると、ノードを示すアイコンが から に変わります。
論理サービスに対して[Logon Option]が正常に設定されると、論理サービスを示すアイコンが から に変わります。
選択したサーバーに対して[Logon Option]が正常に設定されると、ノードを示すアイコンが から に変わります。
トランスポートプロトコルを指定するには
[Service Directory]ツリービューで、ノード、サーバー、または論理サービスのツリーノードを選択し、コンテキストメニューから EntireX Broker ACI に[Transport Protocol]および[ACI]を選択します。