[DBMoto] ジャーナルの起動イメージが「*AFTER」の場合にミラーリングを行う方法


DBMotoを使用し、AS/400からミラーリングを行う場合、
ジャーナルを参照して変更点をターゲットDBに対して転送を行います。

AS/400のジャーナル起動イメージが「*BOTH」の場合は問題なくミラーリングを行うことができますが、
「*AFTER」で起動している場合、そのままではミラーリングが実行できないため、
追加で下記の設定を実施する必要があります。

・ターゲットテーブルに対してINT系のカラムを追加
・DBMotoのフィールドマッピング設定にて、AS/400のRecord IDと追加したカラムをマッピング

ターゲットテーブルに対してINT系のフィールドを追加する

ターゲットテーブルに対してINT系のカラムを追加する必要があります。
※Syniti DR(DBMotoのVersion 9.6以降)をご利用の場合、Decimal型、サイズ:15でカラムを追加する必要があります。

DBMotoのテーブル作成画面から作成する際には、下記画面のようにSQLで指定します。
※SPL_IDというINT型のカラムを作成しました。

すでにテーブルが作成されている場合は、クライアントツールなどを使用しターゲットテーブルに対して直接カラムを追加してください。

カラムを追加後、DBMotoコンソールより対象テーブルを右クリック、主キーの設定をクリックします。

すでにテーブルに定義されている主キーをDBMotoコンソールより解除し、
追加したSPL_IDカラムを主キーとして設定します。

上記のようにSPL_IDカラム主キーとして設定されていることを確認します。

DBMotoのフィールドマッピング設定にて、AS/400のRecord IDと追加したカラムをマッピング

DBMotoでレプリケーションを作成します。
トランザクションIDを取得する際に以下の警告メッセージが表示されますが、「はい」をクリックします。

フィールドをマッピングする時に追加したSPL_IDカラムを右クリックし、
関数へのマッピングをクリックします。

関数プログラム画面にて、左下ペインの「値」より、「ログフィールド」を選択、
右下ペインより「!RecordID」 をダブルクリックし設定が赤枠内に反映されていることを確認します。

下記画面のように設定ができていれば完成です。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください