2.8.4 接続障害軽減機能を使用する場合の注意事項
接続障害軽減機能を使用する場合の注意事項を次に示します。
-
接続障害軽減機能は接続先のTP1/Serverが複数存在する場合に有効です。接続先が一つの場合にこの機能を使用しても効果はありません。
-
ネームサービスを使用する場合,TP1/Serverの設定で必ずスケジュールサービスのポート番号を指定してください。ポート番号を指定しない場合,不要な障害情報が残り,メモリリソースを圧迫するおそれがあります。
-
復旧確認動作時に接続先が障害から復旧していない場合,接続を試みるコネクションには再度接続障害が発生します。また,再度接続障害が発生した時刻から復旧確認間隔の経過後に次の復旧確認動作が実行されます。
-
復旧確認動作を行わない場合,接続先を切り替えたコネクションを障害発生前の接続先へと戻すためには,アプリケーションを再起動する必要があります。
-
リモートAPI機能を使用したRPCの場合,常設コネクションの確立時(コネクションの生成時や問い合わせ間隔の経過によるrapサーバから常設コネクション解放後の再接続時など)にだけ,接続障害軽減機能が適用されます。常設コネクションの確立後,サーバ側で障害が発生した場合は,同じ接続先への常設コネクションを持つすべてのコネクションで,サービス要求時に通信障害が検知される場合があります。サーバ側の電源切断などサーバ側で障害が発生した場合,障害検知にはRPCの最大応答待ち時間(Client .NET構成定義の<rpc>要素のwatchTime属性で指定した値)が掛かります。
-
構成定義に指定されているすべての接続先が接続障害情報に登録されている場合,再度指定された接続先の順に接続を試みます。すべての接続先に対する接続に失敗した場合はエラーとなります。
-
Client .NET構成定義の<tp1Server>要素に同じ接続先を表すホスト名とIPアドレスを用いて複数定義している場合,それぞれ別の接続先として接続障害情報に登録されます。そのため,同じ接続先を表していても,それぞれの定義を使用したコネクションが一度ずつ接続障害を検知するまでは,接続障害情報として共有されません。
-
接続障害情報にはコネクションが接続障害を検知した時点で登録されます。そのため,一つのコネクションが接続障害を検知するまでの間にほかのコネクションが同じ接続先に対して接続を試みた場合,それぞれのコネクションで障害を検知するまでの時間が掛かります。
-
一時的な障害によって接続先が接続障害情報に登録されると,TP1/Serverが正常に稼働している場合でも接続先の切り替えが行われ,コネクションの接続先に偏りが発生します。この場合,Connector .NET構成定義の<connection>要素のfailureCheckInterval属性の値を小さくしたり,TP1/Serverのシステム共通定義などでipc_backlog_countの値を大きくしたりして,偏りの継続時間や発生頻度を軽減することができます。
-
接続障害情報に登録される情報の単位は,マシンやOpenTP1のノードではありません。ホスト名と,rapリスナー,ネームサーバ,およびスケジューラのプロセスごとに設定されたポート番号の組み合わせで管理されます。接続障害情報に登録される接続先を次の表に示します。
表2‒15 接続障害情報に登録される接続先 接続先種別
接続障害情報に登録される接続先
登録数
ホスト名
rapリスナー
0〜Client .NET構成定義の<tp1Server>要素の数。
Client .NET構成定義の<tp1Server>要素のhost属性に指定した文字列。
ネームサーバ
1〜Client .NET構成定義の<tp1Server>要素の数。
ただし,Client .NET構成定義の<tp1Server>要素の数は,TP1/Serverごとに一つとなります。
Client .NET構成定義の<tp1Server>要素のhost属性に指定した文字列。
スケジューラ(スケジューラダイレクト機能を使用したRPC)
1〜Client .NET構成定義の<tp1Server>要素の数。
マスタスケジューラ以外にマルチスケジューラのポートを指定できます。
Client .NET構成定義の<tp1Server>要素のhost属性に指定した文字列。
スケジューラ(ネームサービスを使用したRPC)※
1〜ネームサーバへの問い合わせで得られた接続先となるスケジューラの数。
ネームサーバへの問い合わせで得られた接続先となるスケジューラの数は,TP1/Serverがマルチスケジューラ機能を使用しているか使用していないかで次のように異なります。
- マルチスケジューラ機能を使用している場合
-
各TP1/Serverで,マスタスケジューラ一つに加えて,マルチスケジューラの数も含まれます。
- マルチスケジューラ機能を使用していない場合
-
各TP1/Serverで,マスタスケジューラの一つだけになります。
ネームサーバから通知されたIPアドレス。
- 注※
-
スケジューラダイレクト機能を使用したRPCで,Client .NET構成定義の<tp1Server>要素のhost属性にIPアドレスを指定した場合だけ,同じ接続先として扱われます。