10.1 通信障害
TP1/Clientの通信障害に関する注意事項および対処方法について次に示します。
-
通信障害発生時のエラーメッセージの出力
TP1/Clientでは,コネクション型の通信プロトコルであるTCPを使用し,これをソケットインタフェースで実現しています。そのため,TP1/Clientでは通信障害をソケットインタフェースのシステムコールエラーとして検知します。システムコールエラーが発生した場合,TP1/Clientは障害原因を究明するためのエラーメッセージを出力します。
エラーメッセージは,エラーログファイルに出力されます。エラーログファイルの詳細については,「2.11.1 エラーログ機能」を参照してください。
-
ポートに関する通信障害
TP1/Clientでは,通信が発生するたびに,コネクションの確立・解放が発生します。このため,複数のCUPでdc_clt_cltin_s関数およびdc_clt_cltout_s関数を繰り返したり,dc_rpc_call_s関数を繰り返し行う処理を連続して発行したりすると,OSのポートを一時的に使い切り,通信に失敗することがあります。このような場合,ポートの拡張などを行って運用に耐えられる数値にチューニングしてください。または,ポートが解放され,使用可能状態になるまで時間を置いたあとで,再度通信を行ってください。
-
dc_rpc_call_s関数使用時の通信障害
dc_rpc_call_s関数発行時に,通信先のスケジュールサービスが開始処理中,または終了処理中であった場合,ホストを切り替えて処理します。dc_clt_cltin_s関数の引数target_host,またはクライアント環境定義DCHOSTに指定された複数のホストのうち,どれかが起動されていない場合,dc_rpc_call_s関数がリターンするまで時間が掛かることがあります。
常設コネクション確立中,またはトランザクションの範囲内でdc_rpc_call_s関数を発行した場合,エラー応答受信時のホストの切り替えは行いません。