Faqs

Syniti DR -IBM DB2 for AS/400

AS/400のレプリケーションで「レプリケーション検証機能」を使用すると文字変換が正しくないとのエラーが出ます。

DBMotoの機能に、レプリケーションのソースとターゲット双方のテーブル間で差異が生じていないかを確認するレプリケーション検証機能があります。
AS/400のテーブルで、VARGRAPHIC型もしくはGRAPHIC型があるテーブルで検証を行うと、「CCSID 65535とCCSID 13488の間の文字変換は正しくない」とのエラーメッセージが出力されることがあります。
このエラーメッセージは通常のレプリケーション中には発生せず、データは問題なくレプリケーションできていることが多いです。

sort_sequence_table_error

これは、このレプリケーション検証機能使用時に限り、DBMotoの「検証のソート・シーケンステーブル」設定が有効であるため、GRAPHIC型が文字変換を行おうとして失敗しています。
対処法は、この設定個所の部分を空欄にすることです。(設定変更時はData Replicatorの停止が必要です。)

sort_sequence_table

なお、通常のレプリケーションは、前述の通りこの設定を使用していないので、問題なく変換され動作します。

マルチメンバーファイル(テーブル)からレプリケーションができません。

AS400上のマルチメンバーファイルとなっているテーブルからレプリケーションしようとすると、ステータスは成功なのに処理件数が0件のまま動かないことがあります。

これはマルチメンバーファイルの仕様上の制限でSELECTクエリが実行できないためです。
テーブルのエイリアスを作成していただければSELECTクエリで結果が取得できるため、レプリケーションできるようになります。
エイリアスを作成するクエリの一例は以下の通りです。

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1)
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)

どのようにして差分レプリケーションが行われますか?

AS/400のミラーリングではトランザクションログとして「ジャーナル・レシーバ」を参照しますので、予め物理ファイルに対してジャーナルを起動しておく必要があります。
また、DBMotoからジャーナルを参照するためのプロシージャをAS/400のライブラリに対して作成する必要がありますが、DBMotoでAS/400の接続設定を行う際に簡単に作成することができます。

古いジャーナルは削除しても問題ないですか?

DBMotoから参照しているジャーナルより前のものについては削除して問題ありません。

AS/400にはどのドライバで接続するのでしょうか?

Ritmo/iというドライバを使用します。DBMotoに同梱されております。

ジャーナルレシーバはテーブル単位で作成する必要がありますか?それともまとめて1つでも問題ないですか?

1つにまとめても問題ありません。DBMotoではテーブル単位でレプリケーション定義を作成し、定義ごとにトランザクションIDを管理することが可能なためです。

DBMOTOLIBにジャーナルレシーバを作成してもよいですか?

可能ですが非推奨です。DBMOTOLIBにはDBMotoからAS/400のジャーナルを参 照するためのプロシージャが存在しますので、DBMOTOLIBにプロシージャ以外のデータが存在するとレプリケーションのパフォーマンスに影響が出る場合があります。

AS/400からのミラーリングでトランザクションID取得のためにReadボタンを押下するとエラーになります

DBMotoからAS/400のジャーナルレシーバを参照するためのプロシージャを手動で作成した場合に、正しく作成されていない可能性があります。

カタログ・技術資料一覧から以下をご参照ください。
[DBMoto共通]AS400ジャーナル・プロシージャ作成手順書

ジャーナルが切り替わった場合、DBMotoもちゃんと切り替えて追ってくれますか?

はい、AS/400側のジャーナルに合わせてDBMotoが参照するジャーナルも自動で切り替わります。

レコードの全消去時に他データべースへのレプリケーションをどのように行いますか?

AS/400でレコードの全消去を含む操作(CLRPFMやCPYF(REPLACEオプション))を行った場合、他データベースに対してこの変更をTRUNCATEとして他データベースに反映します。しかしレコードが対象ではなく、ファイルそのものを置き換えている場合など(RSTOBJ等)の場合、変更は他データベースへ反映されません。