nameService
形式
<nameService port="ネームサービスのポート番号" cacheCapacity="ネームキャッシュの最大エントリ数" randomSelect="true|false" loadBalance="true|false" cacheTime="キャッシュの有効期限" multiHomedHost="true|false" usePriority="true|false" hostChangeMode="ホスト切り替え契機" sysWatchTime="サービス情報問合せ最大応答待ち時間"/>
説明
ネームサービスを使用したRPCに関する指定をします。
<rpc>要素のuse属性でnamを指定した場合,この要素は省略できません。その場合,必ず<common>要素内または<profile>要素内にこの要素を一つ以上指定してください。
属性
●port="ネームサービスのポート番号" 〜〈符号なし整数〉((5001〜65535))《10000》
クライアントが属しているOpenTP1のシステム共通定義のname_portオペランドで指定したネームサービスのポート番号を指定します。
<tp1Server>要素のport属性が省略された場合,この属性の値が有効になります。
この属性は省略できます。省略する場合,必ず<tp1Server>要素のport属性の値を指定してください。
●cacheCapacity="ネームキャッシュの最大エントリ数" 〜〈符号なし整数〉((2〜256))《8》
Client .NETで使用するサービス情報をキャッシュするためのキャッシュの最大エントリ数を指定します。
キャッシュのエントリはLRU方式で管理します。キャッシュのエントリ数が指定値を超える場合は,最も過去に呼び出されたサービス情報を削除します。
この属性は省略できます。
●randomSelect="true|false" 〜《false》
窓口となるTP1/Serverをランダムに選択するかどうかを指定します。
この属性は,窓口となるTP1/Serverを複数指定した場合にだけ有効です。
この属性は省略できます。
true:窓口となるTP1/Serverをランダムに選択します。
false:窓口となるTP1/Serverをランダムに選択しません。
●loadBalance="true|false" 〜《false》
ネームサーバから得た複数のサービス要求先スケジューラの情報から,負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納するかどうかを指定します。
true:負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納します。
false:負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納しません。
trueを指定した場合の処理を説明します。
キャッシュに格納されたサービス要求先スケジューラが複数ある場合,最初のサービス要求先スケジューラは,ランダムに選択されます。RPCでのサービス要求が2度目以降の場合,キャッシュに格納されたサービス要求先スケジューラが,ラウンドロビン方式で選択されます。
負荷レベルの詳細については,マニュアル「OpenTP1 解説」を参照してください。
この属性は省略できます。
●cacheTime="キャッシュの有効期限" 〜〈符号なし整数〉((0〜65535))《30》(単位:秒)
サービス要求先スケジューラの情報をキャッシュに格納した時点からの,キャッシュの有効期限を指定します。キャッシュの有効期限を満了したサービス要求先スケジューラの情報は,キャッシュから削除されます。その後,サービス要求先スケジューラの情報を再度取得して,その情報をキャッシュに格納することで,キャッシュを更新します。0を指定した場合は,キャッシュの有効期限は無しになります。
この属性は,<nameService>要素のloadBalance属性でtrueを指定したときだけ有効です。
この属性は省略できます。
●multiHomedHost="true|false" 〜《false》
マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うかどうかを指定します。
true:マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行います。RPCの要求先を複数定義している場合,またはマルチホームドホスト形態のTP1/Serverが一つ以上ある場合に指定してください。
false:マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行いません。マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うと,エラーが発生する場合があります。
詳細については,「2.1.4(2)(c) マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義」を参照してください。
この属性は省略できます。
●usePriority="true|false" 〜《false》
ネームサービスを使用したRPCで,そのサービス要求を受け付けたTP1/Serverが優先的にサービス処理を行うかどうかを指定します。
true:サービス要求を受け付けたTP1/Serverが優先的にサービス処理を行います。
false:サービス要求を受け付けたTP1/Serverが優先的にサービス処理を行いません。サービス要求を受け付けたTP1/Serverはノード間で負荷分散します。
この属性は省略できます。
この属性をサポートしていないTP1/Client. NETは,この属性にfalseを指定した場合と同じ動作となります。
TP1/Client/PおよびTP1/Client/Wのネームサービスを使用したRPCでは,サービス要求を受け付けたTP1/Serverが優先的にサービス処理を行います。TP1/Client/PあるいはTP1/Client/Wでネームサービスを使用したRPCを使用していたユーザがTP1/Client. NETに移行する場合,この属性はtrueを指定してください。
●hostChangeMode="ホスト切り替え契機〔,ホスト切り替え契機〕…"
ネームサービスを使用したRPCの場合に,窓口ホストの切り替え契機であるエラー種別を変更します。
この属性は,<tp1Server>要素を複数指定し,<rpc>要素のuse属性にnamを指定した場合に有効です。
この属性は省略できます。この属性を省略すると,次に示した場合に窓口ホストを切り替えます。
-
ネームサービスとのコネクション確立に失敗した場合
-
ネームサービスへサービス情報の問合せ電文送信に失敗した場合
-
ネームサービスからのコネクション確立待ちで通信障害が発生した場合
-
ネームサービスからのサービス情報電文受信で通信障害が発生した場合
この属性を指定すると,省略した場合のホスト切り替え契機に加えて,次に示すそれぞれのホスト切り替え契機にも,窓口ホストを切り替えます。
ホスト切り替え契機を複数指定する場合は,それぞれの指定値をコンマ区切りで指定してください。
namrcv:ネームサービスからエラー応答電文を受信した場合にも,窓口ホストを切り替えます。
- namtimeout:<nameService>要素のsysWatchTime属性に指定した時間を満了してもネームサービスから応答が返ってこなかった場合にも,窓口ホストを切り替えます。
-
namtimeoutは<nameService>要素のsysWatchTime属性を指定したときだけ有効です。
ネームサービスから応答が返ってこなかった場合に,<tp1Server>要素に指定したすべての窓口ホストを確実に切り替え対象とするには,<rpc>要素のwatchTime属性に次の計算式より大きい値を指定します。
SPPのサービス実行時間+<tp1Server>要素の数×(<nameService>要素のsysWatchTime属性指定値+<socket>要素のconnectTimeout属性指定値)
上記計算式以下の値を<rpc>要素のwatchTime属性に指定した場合,CUP.NETはすべての窓口ホストを切り替え対象とする前に,<rpc>要素のwatchTime属性で指定した時間が満了し,ErrClientTimedOutExceptionを返すことがあります。
各種タイマ監視機能の関係性についての詳細は,「図2-29 各種タイマ監視機能の関係性」を参照してください。
scdrcv:スケジュールサービスが開始処理中,終了処理中,または障害発生のため,スケジュールサービスからエラー応答電文を受信した場合にも,窓口ホストを切り替えます。
- all:上記すべての場合に,窓口となるホストを切り替えます。
-
allとall以外の値を同時に指定した場合,allが有効になります。
この属性に上記に示す値以外を指定した場合は,CUP.NET実行時にエラーになります。ただし,コンマの前後に何も指定していない場合,コンマは無視されます。
- 例:hostChangeMode=",namrcv"または"namrcv,"
-
ホスト切り替え契機はnamrcvになります。
また,コンマだけを指定した場合および空文字を指定した場合は省略値と解釈されます。
- 例:hostChangeMode=","または""
-
hostChangeMode属性を省略したときのホスト切り替え契機になります。
●sysWatchTime="サービス情報問合せ最大応答待ち時間" 〜〈符号なし整数〉((0〜65535))《0》(単位:秒)
窓口となるTP1/Serverのネームサービスにサービス情報を問い合わせてから,応答が返るまでの待ち時間の最大値を指定します。指定時間を過ぎても応答が返らない場合,CallメソッドはErrClientTimedOutExceptionを返します。ただし,<tp1Server>要素を複数指定し,かつ<nameService>要素のhostChangemode属性にnamtimeoutを指定していた場合は,窓口ホストを切り替えます。
この属性は,<rpc>要素のuse属性にnamを指定した場合に有効です。
この属性に<rpc>要素のwatchTime属性より大きい値または0を指定した場合は,watchTime属性の指定に従います。この属性とwatchTime属性との両方に0を指定した場合は,応答を受信するまで無限に待ち続けます。
この属性の指定が適用されるAPI(メソッド)を次に示します。
-
Callメソッド
この属性の監視時間には,ネームサービスとのコネクション確立時間を含みません。ネームサービスとのコネクション確立時間を監視するためには,<socket>要素のconnectTimeout属性の設定が必要です。
記述例
<nameService port="10000" cacheCapacity="8" randomSelect="false" loadBalance="true" cacheTime="30" multiHomedHost="true" usePriority="true" hostChangeMode="all" sysWatchTime="60"/>