ADM9000Wが出たときの1つの対処法

DB2(9.5)でADM9000Wがでまくって少し不安定な状態に陥ったのですが
どうもBufferPoolがおかしなQueryのせいで食いつぶされて
そのままメモリーを確保したまんまになってしまった様子。

で、解決方法がわからなかったんですが、
http://db2.jugem.cc/?eid=1341
を見て気がついたのは
「「db2 activate db db名」で動かしているとBufferPoolの解放はしない」
ということ。
もしかすると強制的にdeactivate dbを実行してしまえば解放してくれるんじゃないか、、
と思い

「deactivateしてまたactivateをする」

db2 terminate;db2 force application all; db2 terminate;db2 deactivate db DB名;db2 activate db DB名;

を一気にやってみたら、
出まくっていたADM9000Wもでなくなり、思いのほか、うまくいった!!
モリーが空いたからか、STMMも動き出し、
sortheapなどに割り当てもできるようになった様子が
sqllib/db2dump/db2diag.logから見て取れた。

DBに接続しているアプリケーションがphpなのでできる術かも知れないけど*1
ADM9000Wでまくってたら試す価値あると思います。
ADM9000Wの対策の情報ってほとんどないしね*2

*1:WASやTOMCATなどコネクションプーリングをしているとむつかしいのかな・・

*2:この記事を書いている時点ではググってもリファレンスの2件しかない状況。http://www.google.co.jp/search?hl=ja&rlz=1B3GGGL_jaJP298JP298&q=ADM9000W&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja