IISで800a01fbエラー → IISのアプリケーションプールをリサイクル

不定期的にIISログに以下のエラーが吐かれるようになった。

800a01fb|例外が発生しました。:_'GetDatabaseFromPool'

環境は、windows2003Server + ASP(.netじゃない) + Oracle10.2


「GetDatabaseFromPool」でググってもあんまり情報が出てこない。
「800a01fb」で調べると似たような事例が見受けられる。
が、原因は不明。


ミドルウェアはoo4oを使っているので、オラクルに問い合わせると、
有効な情報はない、MSにも聞いてくれ、とのこと。


とりあえず、IISを再起動すると現象が回復するという情報を得たので、
手始めにアプリケーションプールのリサイクルをしてみたら、現象回復。


原因は分からないが、対処としてログを監視し、発生したらリサイクルすることとした。
tailコマンドはWindows OSの標準コマンドではないので、リソース・キット導入。
参考:http://www.atmarkit.co.jp/fwin2k/win2ktips/423tail/tail.html

参考:http://technet.microsoft.com/ja-jp/library/cc737438%28WS.10%29.aspx


エラーコードを検索してあったら、指定したプール(fuga)をリサイクル。

tail -f \\hogehoge\Z$\IIS\W3SVC1\ex091231.log | find "800a01fb" && iisapp /a "fuga" /r


が、動かない。。。


処理を分けて

tail -f \\hogehoge\Z$\IIS\W3SVC1\ex091231.log | find "800a01fb"

find "800a01fb" && iisapp /a "fuga" /r

は、それぞれ動くんだけど、3つ連結させると find で止まってリサイクルされない。


何故?
そもそも発生する原因を特定出来ていないし。。。


ダレカタスケテ。