Syniti DR -IBM DB2 for AS/400
AS/400のレプリケーションで「レプリケーション検証機能」を使用すると文字変換が正しくないとのエラーが出ます。
DBMotoの機能に、レプリケーションのソースとターゲット双方のテーブル間で差異が生じていないかを確認するレプリケーション検証機能があります。
AS/400のテーブルで、VARGRAPHIC型もしくはGRAPHIC型があるテーブルで検証を行うと、「CCSID 65535とCCSID 13488の間の文字変換は正しくない」とのエラーメッセージが出力されることがあります。
このエラーメッセージは通常のレプリケーション中には発生せず、データは問題なくレプリケーションできていることが多いです。
これは、このレプリケーション検証機能使用時に限り、DBMotoの「検証のソート・シーケンステーブル」設定が有効であるため、GRAPHIC型が文字変換を行おうとして失敗しています。
対処法は、この設定個所の部分を空欄にすることです。(設定変更時はData Replicatorの停止が必要です。)
なお、通常のレプリケーションは、前述の通りこの設定を使用していないので、問題なく変換され動作します。
マルチメンバーファイル(テーブル)からレプリケーションができません。
AS400上のマルチメンバーファイルとなっているテーブルからレプリケーションしようとすると、ステータスは成功なのに処理件数が0件のまま動かないことがあります。
これはマルチメンバーファイルの仕様上の制限でSELECTクエリが実行できないためです。
テーブルのエイリアスを作成していただければSELECTクエリで結果が取得できるため、レプリケーションできるようになります。
エイリアスを作成するクエリの一例は以下の通りです。
CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1)
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)
古いジャーナルは削除しても問題ないですか?
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ジャーナル・プロシージャ作成手順書
AS/400のエラー「資源の限界を超えた」が発生しましたが原因はなんでしょうか?
下記ブログ記事をご参照ください。
ジャーナルが切り替わった場合、DBMotoもちゃんと切り替えて追ってくれますか?
はい、AS/400側のジャーナルに合わせてDBMotoが参照するジャーナルも自動で切り替わります。
レコードの全消去時に他データべースへのレプリケーションをどのように行いますか?
AS/400でレコードの全消去を含む操作(CLRPFMやCPYF(REPLACEオプション))を行った場合、他データベースに対してこの変更をTRUNCATEとして他データベースに反映します。しかしレコードが対象ではなく、ファイルそのものを置き換えている場合など(RSTOBJ等)の場合、変更は他データベースへ反映されません。