IBM i 7.6版!ジャーナル・レシーバーの簡単な消し方は?
Question
当社ではIBM i (AS/400)のデータベースジャーナルのレシーバーを過去1か月分残すようにしています。
その仕組みは、以下を参考に組み込みました。
https://www.e-bellnet.com/category/technology/1907/1907-990.html
ですが、スプールを出力しての方法となり、あまりきれいな仕組みではないように思います。
もっとステップ数が少ない方法があれば教えてほしいです。
Answer
実はレシーバー削除に関する新しいIBM i サービス(SQL)が発表されています。
それを使用することで、簡単に削除することができるようになります。
SYSTOOLS.DELETE_OLD_JOURNAL_RECEIVERS
https://www.ibm.com/docs/en/i/7.6.0?topic=services-delete-old-journal-receivers-procedure
サンプルとして以下を組み込んでみました。
CALL SYSTOOLS.DELETE_OLD_JOURNAL_RECEIVERS(DELETE_OLDER_THAN => CURRENT DATE - 10 DAYS,
JOURNAL_RECEIVER_LIBRARY => 'TESTY', PREVIEW => 'NO')
※CCSIDが65535の場合変換エラーが発生したため、CCSIDは固定値(5026や5035など)に変更してから実行してください。
コマンド実行前のレシーバー状況:
コマンド実行後のレシーバー状況:
このように、以前のような多くのステップを踏まずとも、簡単にレシーバーの削除ができました。
レシーバー削除を手動で行う場合、今までですとSTRPDMで一覧表示させたり、WRKJRNAからレシーバー一覧を表示させて消したりと、それなりに手間がかかったかと思いますが、コマンド一つで一気に削除ができるのは助かりますね。
またプログラムに組み込んでいる場合でも、今までのやり方ではAPIだと難しく、出力したスプールを使うのもスマートではありませんでしたが、コマンドを組み込むだけでいいのは非常に分かりやすいのではないでしょうか。
なお、V7.6の新機能としてご案内していますが、V7.5でもSF99950(Db2 for iのグループPTF)の Level 9 以上を適用すれば使用することができます。
※V7.4以前ではサポートされていません
IBM i (AS/400)の7.5、7.6をお使いであれば、この機能を使用してみるのもよいかと思います。
by . かんぴょう木綿さん
