クライアントとサーバ間にファイアウォールが存在する環境で、WebOTXのCORBA通信時に
org.omg.CORBA.COMM_FAILUREやorg.omg.CORBA.BAD_PARAMというエラーが不定期に発生します。
原因と回避方法を教えてください。
org.omg.CORBA.COMM_FAILURE: java.net.SocketException: Connection reset vmcid: 0x1000 minor code: 911
(中略)
org.omg.CORBA.BAD_PARAM: string_to_object conversion failed due to bad address. vmcid: OMG minor code: 8
(中略)
CORBA通信のタイミングで、ファイアウォールの無通信監視によりクライアントとサーバ間のTCP/IP接続が切断されたために発生したエラーです。
「クライアント無通信監視タイマ」を設定することで、クライアント側から一定時間送受信要求の無いコネクションを切断することができます。
クライアント側にファイアウォールの無通信監視時間より小さい値を設定することにより、当該エラーを解消できます。
ドメインへの設定方法は、マニュアルの以下を参照してください(WebOTX AS V6.4以降)
V6.4~V7 [運用編 > コンフィグレーション > Object Brokerに関する設定 > Object Broker設定項目・設定方法 > Objct Broker設定項目一覧]
V8.1、V8.2 [運用編 > コンフィグレーション > Object Brokerに関する設定 > Object Broker設定項目・設定方法 > Objct Broker共通の設定項目一覧]
V8.3~V9 [リファレンス集 運用管理・設定編 > コンフィグレーション > Object Broker > Object Broker共通の設定項目一覧]
V10以降 [リファレンス > 設定 > CORBA通信基盤(Object Broker) > Object Broker設定項目・設定方法 > Object Broker共通の設定項目一覧]
WebOTX AS V6.4より前のObject Broker Javaでは、アプリケーションに対して以下のJavaシステムプロパティを指定して
クライアント無通信監視タイマを設定することができます。
-Djp.co.nec.orb.RequestTimeout=<タイムアウト時間(秒)>
WebOTX AS V6.4より前のObject Broker C++では、クライアント無通信監視タイマは使用できません。
CORBA::ORB::__reuse_socket (FALSE)を呼び出して毎回接続を行うことで回避できます。
その場合は、TIME_WAITのソケットが大量に残らないよう注意が必要です。
【対象製品】Application Server
【確認済みのバージョン】すべて
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】Object Broker
【カテゴリー】運用/設定