【入門編】ジャーナルやジャーナル・レシーバーって何ですか?
Question
IBM i (AS/400)上の物理ファイルに対してSQLが発行できずエラーになってしまいました。
どうやら物理ファイルに対してジャーナルを仕掛ける必要があるとわかり、色々調べてジャーナルを仕掛けてみました。
しかし、そもそもジャーナルやジャーナル・レシーバーとは何でしょうか?
基本的な事かもしれませんがご教示ください。
Answer
大まかに説明しますと、ジャーナルは物理ファイル等のファイルへの変更履歴を記録する機能です。
その変更履歴からデータをリカバリーしたりする事を目的として仕掛けます。
この記事では例として、物理ファイルへジャーナルを仕掛ける事を想定してご説明します。
物理ファイルへジャーナルを仕掛けると、そのファイルへの変更(レコードの追加、更新、削除など)を記録することができます。
実際の変更内容はジャーナル・レシーバー(以下、レシーバー)へ記録されます。
ジャーナルを仕掛けて物理ファイルの操作を記録する場合、おおよそ以下のような手順になります。
- レシーバーの作成
CRTJRNRCV JRNRCV(ライブラリー/レシーバー名) ジャーナルの作成
CRTJRN JRN(ライブラリー/ジャーナル) JRNRCV(ライブラリー/レシーバー名)物理ファイルへのジャーナル処理の開始
STRJRNPF FILE(ライブラリー/物理ファイル) JRN(ライブラリー/ジャーナル)変更内容を確認
DSPJRN JRN(ライブラリー/ジャーナル)
変更内容のデータはレシーバーへ記録されますので、まずはレシーバーを作成します。
次にジャーナルを作成して、この時に作成したレシーバーを指定します。
物理ファイルに対してジャーナルを仕掛ける場合は STRJRNPF コマンドを実行してジャーナルを開始します。
これにより、その物理ファイルへの操作がレシーバーへ記録されるようになります。
確認の際 DSPJRN コマンドをそのまま実行するのも良いですが、 パラメーター OUTPUT(*OUTFILE) を指定してデータを出力する事もできます。
出力したデータをExcelファイル等にダウンロードしてソート機能を活用すると更に内容が確認し易くなります。
また、ジャーナルやレシーバーについてよくご相談いただくのは、その管理の仕方です。
今までジャーナルに触れた事のない方にとって疑問が出てきやすいのはここからの内容かと思います。
ジャーナル処理自体は仕掛ける(ex. STRJRNPF)か、停止する(ex. ENDJRNPF)かになりますが、レシーバーには順序番号やサイズといった制限があるため管理が必要になります。
例えば、順序番号(レシーバーの書き込み件数)が満杯になると、ジャーナル処理しているファイルへの操作ができなくなります。
この場合は新しいレシーバーへの切り替えと併せて順序番号のリセットを行います。
また、古いレシーバーがシステムに残ったままですとディスク使用率を圧迫してしまうので、定期的に削除する必要があります。
このような管理を、システムにて自動的に行うか、ユーザーにて手動で行うかを設定できます。
現在どのような設定になっているかは以下のコマンドで確認できます。
WRKJRNA JRN(ライブラリー/ジャーナル)
レシーバーの管理 | 新しいレシーバーへの切り替えや順序番号のリセットをシステムで行うか、ユーザーにて行うかを設定します。 |
レシーバーの削除 | 古いレシーバーの削除をシステムで行うか、それともユーザーにて行うかを設定します。 |
もし、レシーバーの切り替え、順序番号のリセット、古いレシーバーの削除をシステムにて自動的に実施させたい場合には、以下のコマンドのように変更してみてください。
CHGJRN JRN(ライブラリー/ジャーナル) SEQOPT(*RESET) MNGRCV(*SYSTEM) DLTRCV(*YES)
SEQOPT(*RESET) | 新しいレシーバーへの切り替え時に順序番号をリセットします。 |
MNGRCV(*SYSTEM) | システムにて新しいレシーバーへ切り替えます。 |
DLTRCV(*YES) | システムにて古いレシーバーを削除します。 |
※レシーバーの切り替えや順序番号のリセット等を全てシステムにて管理するように変更しても、何らかの理由でエラーとなり処理が失敗する事もあります。
その際にはエラーの原因を確認して別途対応が必要です。
ここでご案内したのは本当に初歩的な部分のみですが、いかがでしたでしょうか。
メーカーのナレッジを見てもイマイチわからない、そもそもジャーナルに触れたことがない。という方にジャーナルやレシーバーを"何となく"でも知って頂けたら幸いです。
弊社サイトでは、他にもジャーナルに関連した記事を掲載していますので、サイト内で「ジャーナル」と検索してみて頂ければと思います。
『e-bellnet.com』AS/400 技術情報サイト https://www.e-bellnet.com/
by 槻樹