きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

FORCE APPLICATIONを楽にしたい

LIST APPLICATIONSでアプリケーションハンドルを出して、
FORCE APPLICATIONする流れを手でやったりしてるんだけども、それをもうちょっと楽にしたい。
LIST APPLICATIONSで出た情報をテキストエディタで加工して
FORCE APPLICATIONするのが手間で仕方ない。


これはあくまで開発中の段階での話。
そもそもそこに残ってもらっては困るんだけどね…。


このプロシージャを内部で使うイメージ。(※番号は本来アプリケーションハンドル)
CALL SYSPROC.ADMIN_CMD( 'force application ( 41408, 55458 )' )


APPLICATIONS管理ビューから殺したいアプリを取得する。
条件はAPPL_IDカラムについての前方一致検索。
結果のカラムに必要なのはAGENT_ID。
複数ヒットしたAGENT_IDを用いて、上述のプロシージャを呼ぶという感じだろうな。
ループさせるのか、文字列連結して1つにするか。


おや?まてよ。あのプロシージャ使わなくても、SQLで命令作ってしまえばいいか。
SELECT 'FORCE APPLICATION (' || AGENT_ID || ')' FROM APPLICATIONS
WHERE APPL_ID LIKE 'IPアドレス%'
こんなイメージかな。


CONCATにしてみるとこんなイメージ。
SELECT CONCAT(CONCAT('FORCE APPLICATION (',AGENT_ID),')') FROM APPLICATIONS
WHERE APPL_ID LIKE 'IPアドレス%'


動いてくれるか分からないけど今度試してみよ。