sqlnet.ora(プローブ・パケット送信設定)

DB接続をするアプリで初回アクセス時、又は一定時間経過してアクセスした場合エラーになる。

↑のような事象が発生しました。
こんなことってよくあるのでしょうか?

理由は一定時間アクセスがないとコネクションが切断してしまうことがある。
とのことでした。

で、以下の対応をしました。
$ORACLE_HOME/network/admin 配下にある「sqlnet.ora」を編集しました。
以下の内容を追記及び修正する。(sqlnet.ora)
----------------------------------------------------
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES=(サーバ1, サーバ2, サーバ3)
SQLNET.EXPIRE_TIME=送信間隔
----------------------------------------------------
上記の対応により、一定時間ごとにプローブ・パケットを送信しコネクションが切断されることを防ぎました。送信間隔は10分(推奨値)にしました。
どのシステムも上記のような設定をしているのでしょうか・・・。

以下の制限もありますが、あまり気にせずに・・・。


•Bequeathed接続には使用できません。
•プローブ・パケットはわずかながら通信量が増加するため、ネットワーク・パフォーマンスが低下する可能性があります。
•使用しているオペレーティング・システムによっては、サーバーで接続プローブ・イベントとその他のイベントを区別するための処理が必要になることがあります。

これも、ネットワーク・パフォーマンスの低下につながる可能性があります。

[補足]
TCP.VALIDNODE_CHECKING
 TCP.INVITED_NODESおよびTCP.EXCLUDED_NODESをチェックし、アクセス権を付与または拒否するクライアントを決定します。
   デフォルトはno(アクセス権を付与しない)です。

TCP.INVITED_NODES
 データベースへのアクセスを許可するクライアントを指定します。

・SQLNET.EXPIRE_TIME
 このパラメータはサーバ/クライアント間でのプローブ・パケットの送信間隔(分)。

 デフォルトは0(送信しない)です。

さらに詳しくは以下を参照して下さい。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/network.102/B19209-01/sqlnet.htm