DBとの接続が切断したときの覚書

データベースに接続しているマシンがネットワーク断、マシンダウンなどした場合

Oracle
デフォルトではTCP・IPのKeepAliveで接続を確認する。
デフォルトでは2時間なので、これはまずい。

いちいちv$sessionから落ちたマシンからの接続を拾って
ALTER SYSTEM KILL SESSION
するのも面倒。

であれば
sqlnet.oraに
SQLNET.EXPIRE_TIME = n
を指定すればまぁいい。
nは分で指定なので注意。

10gであれば
SQLNET.RECV_TIMEOUT
というのもあるらしいが、まぁいいか。(試してない)

SQLServer
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/trblsql/tr_rptconsetup_5gmr.asp
http://support.microsoft.com/kb/137983/ja
TCP・IPのKeepAliveで切断を検知するしかなさそうに書いてある。SqlServer2005も対象と書かれている。
デフォルトは2時間だからこれもなんとかしないとならないが、レジストリでの設定を変えるのも気が進まない。
が、
http://msdn2.microsoft.com/ja-jp/library/ms190771.aspx
ではSQL Server 構成マネージャでKeepAliveの設定を変更できそうなことが書いてある。
実際に試してみたらちゃんと短時間で切れたから、SQLServer2005ならたぶん大丈夫