本日のお題です。
IBM i のスプール出力した枚数をカウントしたい
Q.
・プリンター(OUTQ)、ユーザーID、日別に印刷枚数(ページ数)を把握したい。
・現状の設定(運用)では、IBM iからの帳票印刷はWindowsサーバを経由しており、IBM i 上のスプールはWindowsサーバーへ送信されると同時にIBM iから消去されている。(スプールの属性が SAVE(*NO)になっている)
対応案1. スプール属性をSAVE(*YES)に変更可能な場合
この場合、IBM i 上に印刷後もスプールが残存しますので、その情報を何らかの方法で集計すればよい事になります。当然ですがスプールの削除も定期的に実施する必要があります。
スプールのページ数やユーザー数など明細情報を取得する方法 その1
こちらの記事で紹介した IBM i サービス SYSTOOLS.DELETE_OLD_SPOOLED_FILES プロシージャーを使用すれば様々な条件で、SQL一発でスプールの出力情報を取得できます。
SQLでPREVIEW(*YES)にすればスプールを削除せずに何度も検索ができます。
検索結果をDB化する、ユーザーへ返答するアプリ画面に組み込む等できると思います。
この方法の場合、SQLのPREVIEW(*NO)を指定すれば削除もできますので、シンプルだと思います。
スプールのページ数やユーザー数など明細情報を取得する方法 その2 SPOOLED_FILE_INFO 表関数
IBM i サービスの一つとしてSPOOLED_FILE_INFO 表関数というのもあります。
このSQLでも上記と同様に個々のスプールファイルのページ数、その他属性を取得できます。
対応案2. スプール属性をSAVE(*NO)のままにしたい
この場合は、IBM i OSの監査ジャーナル機能でスプール関連のユーザー操作を監査ジャーナルとして出力できます。
参考:SF (スプール・ファイルに対する処置) ジャーナル項目
https://www.ibm.com/docs/ja/i/7.3?topic=entries-sf-action-spooled-file-journal
監査ジャーナルを使う場合の考慮点
・スプールファイルの属性 SAVE(*YES)への変更は不要です。
・監査ジャーナルをかけた場合、一般にはシステム負荷が追加になりますので、システムパフォーマンスに影響ないかの検証が必要です。
・監査ジャーナルが生成される分のストレージ消費量の検証(検討)も必要と思われます。
監査ジャーナルの確認のしかた
次の記事 で監査ジャーナルの設定の仕方、監査レコードの検索の仕方などを説明しています。