以下の現象について、情報をお持ちの方がいらっしゃいましたら是非ともご教示お願いいたします。
<環境>
RedHutとOracle 11g Express Edition
<動作内容>
①最大ミリ秒単位でOracleに対してInsertを実行(随時接続)
②別コネクションスレッドにて5秒間隔で接続/切断を繰り返しInsertを実行
<エラー内容>
java.sql.SQLRecoverableException: IO Error: Socket read timed out
…(省略)
Caused by: oracle.net.ns.NetException: Socket read timed out
<現状>
Oracleに対するタイムアウトは3秒にしています。
上記は、3秒以上応答がなかったため、発生しており、正しい動きなのですが何故タイムアウトが起きたのかがわかりません。
発生した処理は毎日同じことを同じInsert分だけ行っており、毎日起きていません。
ですが、現在、2ヶ月に1回の頻度で発生している状態です。
一度、上記エラーが発生後、再接続を行うと問題なく動作をし続けます。
また、Insert内容自体は実行出来ており、応答だけが帰ってきていない状態です。
何故、毎日ではなく数ヶ月に1回なのか、発生条件がわからずテスト環境では再現が出来ずにいます。
過去にセッション数やプロセス数、CPU使用率なども調べてみましたが、異常になるような数値ではありませんでした。
<質問>
何故タイムアウトが発生したのか分かる方がいらっしゃいましたら、
①発生条件
②対策
をご教示頂きたいです。
または、同じような事象にあった方がいらっしゃいましたら、どのように暫定対策されているのかご教示いただければ幸いです。
以上、よろしくお願い致します。