6.5.8 通信障害によるメッセージ消失
サーバとのコネクション確立後にサーバを再起動した場合や,通信障害が発生した場合,RPC要求メッセージが通信回線上で消失することがあります。非応答型RPCの場合,メッセージの消失を検知できないため,ユーザによる送達確認の実施が必要になります。
また,TP1/EEを再起動したあとに,再起動前と同じポート番号を使用すると,通信障害が発生してメッセージが通信回線上で消失することがあります。この場合,RPC応答待ちタイムアウトが発生するか,RPC要求先でサービスが実行されない現象が発生します。この現象が発生する頻度を軽減する機能を,ポート番号自動割り当て機能といいます。ポート番号自動割り当て機能を使用すると,TP1/EEを起動するたびに,異なるポート番号を使用します。
ポート番号自動割り当て機能を使用することで回避できる通信障害を次に示します。
-
TP1/EEとキュー受信型サーバとでRPC通信をする場合
次に示す流れで通信した場合に,3.のキュー受信型サーバのメッセージ送信で発生するおそれのある通信障害です。
-
TP1/EEとキュー受信型サーバとでRPC通信をします。
-
TP1/EEを終了して再起動します。
-
再起動後のTP1/EEとキュー受信型サーバとで再度RPC通信をします。
なお,この通信障害は,TP1/EE同士,またはTP1/EEとソケット受信型とのRPC通信では発生しません。
-
-
TP1/EE同士またはTP1/EEとTP1/Server BaseとでRPC通信をする場合
次に示す流れで通信した場合に,3.のTP1/EEまたはTP1/Server Baseのメッセージ送信で発生するおそれのある通信障害です。
-
TP1/EE同士またはTP1/EEとTP1/Server BaseとでRPC通信をします。
-
ノードに障害が発生し,ダウンしたノードをTP1/EEを含めて再起動します。
-
障害が発生していないノードのTP1/EEまたはTP1/Server Baseで,再度RPC通信をします。
-
ポート番号自動割り当て機能を使用するかどうかは,サービスグループ情報関連定義のmysvgdef定義コマンド,およびRPC関連定義のrpc_reply_port_autoオペランドで指定します。次の表に従って定義を指定してください。
ポートの種別 |
定義の指定方法 |
ポート番号の割り当て方法 |
---|---|---|
RPC要求メッセージ受信用のポート |
mysvgdef定義コマンドの-hオプションのポート番号に0以外を指定 |
mysvgdef定義コマンドの指定値 |
mysvgdef定義コマンドの-hオプションのポート番号に0を指定 |
OS自動割り当て |
|
RPC応答メッセージ受信用のポート |
rpc_reply_port_autoオペランドの指定を省略するか,Nを指定 |
サービスグループ情報関連定義のmyreplydef定義コマンドの指定値 |
rpc_reply_port_autoオペランドにYを指定 |
OS自動割り当て |
定義の指定方法の詳細については,「8. TP1/EEサービス定義の詳細」を参照してください。