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アドレス%'
動いてくれるか分からないけど今度試してみよ。