対象DBMoto:すべてのバージョン
対象データベース:DB2(Windows, Linux, AIX, z/OS)
レプリケーションモード:ミラーリング・シンクロナイゼーションでトリガーモード使用時
発生条件:レプリケーション作成完了時にエラー発生
●エラー内容:
ログリーダーに新しいレプリケーションを追加する際にエラー。
コマンド’CREATE TRIGGER …; END’の実行にエラーが発生しました。
SqlDb2DRDA: DRDA Execute exception occurred.execute: Too many transition tbles: “2” – STATE:54040 – CODE:-1424
execute: Too many transition tbles: “2” – STATE:54040 – CODE:-1424
●エラー発生理由
DBMotoはトリガーを使用した差分レプリケーションの際に、レプリケーション定義作成と同時に該当テーブルに対してトリガーを作成します。
本エラーはそのトリガー作成するために必要な「システム一時表スペース」がDB2側で不足していることが原因です。
テーブルのカラム数が多い場合に発生することがあります。
●対処法
対処法は以下の通りとなります。
(1)バッファープールのサイズを 32KB で作成する
(2)(1)を使用するようにシステム一時表スペースを作成する
以下はDB2クライアントアクセスツール「IBM Data Studio」での対処手順です。
1. バッファー・プールを右クリックし「バッファー・プールの作成」を選択します。

4. 表スペースを右クリックし「システム一時表スペースの作成」を選択します。

5. バッファー・プールを先ほど選択したものへ変更し保存します。

以上で設定は完了です。
DBMotoにて正常にレプリケーションを作成できることをご確認ください。
※バッファプールはCLPにて以下のコマンドで確認可能です。
SELECT BPNAME, BUFFERPOOLID, NPAGES, BLOCKSIZE, PAGESIZE FROM SYSCAT.BUFFERPOOLS

※表スペースはCLPにて以下のコマンドで確認可能です。
LIST TABLESPACES SHOW DETAIL

関連したトピックス
- Oracle RAC One Node環境を構成してみました 補足 Syniti Replicateを使用して異種DBへ連携
- SQL Serverのビューをレプリケーションする場合の注意点【リアルタイムレプリケーションツールDBMoto】
- DBMotoレプリケーションに必要なOracle 12c(PDB/CDB)権限
- Oracleトランザクションセットアップ例(Log ReaderまたはLog Server Agent)[Syniti Data Replication]
- DBMotoレプリケーションに必要なOracleユーザ権限
- Teradataを構築してDBMotoでOracle等からTeradataへのリアルタイム・レプリケーション
- SAP HANA から他RDBからのレプリケーション(クライアント準備編、AWSを利用)
- DBMotoのレプリケーションパフォーマンスを向上させる方法
- AWSデータベースの新たなレベルとしてのAurora
- DBMotoレプリケーションに必要なSQL Serverユーザ権限








RSSフィードを取得する