NATやスイッチなどの通信機器の設定で無通信時のタイムアウト制限を設けている場合に、制限時間を超過し、接続が無効になったためです。
通信機器のタイムアウトの運用方法を見直すか、JDBCデータソースの無通信時間の上限 [maxIdleTime]を指定することで通信機器のタイムアウト発生前にJDBCコネクションを切断するようにしてください。
maxIdleTimeの設定方法は次の通りです。
・統合運用管理ツール/Webコンソールの場合
[<ドメイン名>]
-[リソース]
-[JDBCデータソース]
-[<データソース名(例:jdbc/A)>]
「コネクションプール」タブの「無通信時間の上限」に通信機器のタイムアウトより短い値(秒)を設定
・運用管理コマンドの場合
otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインの管理ポート>
otxadmin> get server.resources.jdbc-datasource.<データソース名(例:jdbc/A)>.maxIdleTime=<通信機器のタイムアウトより短い値(秒)>
変更内容を動作に反映するためには、V8.4以降の場合、下記の「設定変更内容の反映」
の操作を行うか、アプリケーショングループの再起動、もしくは、ドメインの再起動が必要です。
・統合運用管理ツール/Webコンソールの場合
[<ドメイン名>]
-[リソース]
-[JDBCデータソース]
-[<データソース名(例:jdbc/A)>]
このMOを右クリックもしくは[操作]タブの「設定変更内容の反映」を実行
・運用管理コマンドの場合
otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインの管理ポート>
otxadmin> publish-jdbc-datasource <データソース名(例:jdbc/A)>
また、データベースサーバの状態監視オプション[checkServerOption](既定値は"データベースサーバの監視なし"[none])に
"定期的にデータベースサーバの状態を確認"[monitor]の指定を行うことをご検討ください。
監視間隔[checkServerInterval](デフォルトは3分)毎に、監視コマンド[checkServerCommand](デフォルトは"commit")
を発行するだけ、という比較的低負荷な監視により、無効となったJDBCコネクションを取り除くことができます。
なお、障害が発生した後は、次の監視まで待ってからでないと取り除かれません。
checkServerOptionの設定方法は次の通りです。変更内容の反映については、maxIdleTimeと同じ方法で実施してください。
・統合運用管理ツール/Webコンソールの場合
[<ドメイン名>]
-[リソース]
-[JDBCデータソース]
-[<データソース名(例:jdbc/A)>]
「拡張」タブの「データベースサーバの状態監視コマンド 」で "定期的にデータベースサーバの状態を確認" を選択
・運用管理コマンドの場合
otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインの管理ポート>
otxadmin> set server.resources.jdbc-datasource.<データソース名(例:jdbc/A)>.checkServerOption=monitor
【対象製品】Application Server
【確認済みのバージョン】V6以降
【確認済みのエディション】 すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】JDBCデータソース
【カテゴリー】開発/設計(性能チューニング)