DBMotoでAS/400(i Series)からの差分レプリケーション(ミラーリング)を行う際にはジャーナル・レシーバ(以下ジャーナル)を参照します。
ジャーナルは「レシーバーの管理」が「*SYSTEM」の場合、最大値(しきい値)を超えると以下のように自動で連番を振って次のジャーナルを作成して切り替えます。
DBMJ0001
DMBJ0002
DMBJ0003
DBMJ0004
DBMJ0005・・・・・
ジャーナルが切り替わった場合には、DBMotoも自動で参照するジャーナルを切り替えます。一方のDBMotoは定期間隔(デフォルト60秒)おきにAS/400のジャーナルを参照します。
例えばAS/400側でジャーナルDBMJ0001からDBMJ0002へ切り替わった場合、次にDBMotoがジャーナルを参照するタイミングではまず、切り替え前のDBMJ0001を参照し最後尾まで確認後、自動的にDMBJ0002を参照しに行きます。
この際に1点注意が必要です。
ジャーナルを自動で切り替える際に元のジャーナルを自動で削除するかしないかの設定がジャーナル作成時に可能です。
「レシーバーの削除」が「*NO」の場合は自動では削除しませんが、「*YES」の場合には切り替わった直後に自動で削除します。
この設定にしている場合、例えばジャーナルDBMJ0001がDMMJ0002に切り替わったタイミングでDBMJ0001が削除されてしまうため、DBMotoがDBMJ0001を参照しに行ったタイミングでジャーナルDBMJ0001が見つからないという下記のエラーメッセージがAS/400から返されます。
エラーメッセージの例:
「ライブラリーFURUJRNにオブジェクトDBMJ0001が見つからない。」
このようなエラーを回避するために、AS/400のジャーナルは自動ですぐに削除しないよう下記の対策を検討する必要があります。
・自動削除はせず手動削除対応とする
・自動削除する場合は削除するタイミングを遅らせる(ようなプログラムを作成する)
⇒1つまでのジャーナルを削除するのではなく2つ前までのジャーナルを削除する等
関連したトピックス
- AS/400でレプリケーションに必要なジャーナルが起動済みかを確認するためには?
- System i/iSeries/AS400上のDB2用DBMotoのインストールについて【リアルタイムレプリケーション】
- [Ritmo/i] AS/400データ登録・更新・削除用サンプルC#プログラム
- ・フェラーリ・アメリカ:DBMoto導入事例
- [Ritmo/i] AS/400接続用サンプルC#プログラム
- AS/400でのジャーナルレシーバー作成手順【リアルタイムレプリケーションツールDBMoto】
- [DBMoto]暗号化したデータを復号し保存するデータ連携方法
- [DBMoto]データを暗号化し保存するデータベース移行方法
- 任意のデータ型でターゲットテーブル作成[DBMoto]
- [DBMoto API]外部からレプリケーションやグループを開始・停止するサンプルC#プログラム