アクティベーション(activate config)実行時に SharePlex がテーブルのロックを獲得する条件について説明します。
acticate config実行時、以下いずれかの場合に対象テーブルのロックを獲得します。
これらのテーブルへのロックはソース側でのみ獲得されすぐに解放されます(獲得・解放)。ターゲット側でのロックは行われません。
具体的な例を挙げて説明します。
■ 対象テーブル追加時の例
1. 構成ファイルを設定します。
datasource:o.orcl
sp1.sptest1 sp1.sptest1 rhel6tgt@o.orcl2
2. アクティベートします。
sp_ctrl> activate config testconfig1
このとき、ソースのテーブルsp1.sptest1 に対してロックが行われます。
■ テーブル追加時の既存テーブルについて
3. 構成ファイルをコピーします。
sp_ctrl> copy config testconfig1 to testconfig2
4. 複製に追加するテーブルを設定します。
datasource:o.orcl
sp1.sptest1 sp1.sptest1 rhel6tgt@o.orcl2
sp1.sptest2 sp1.sptest2 rhel6tgt@o.orcl2
5. アクティベートします。
sp_ctrl> activate config testconfig2
このとき、ソースのテーブルsp1.sptest2 (既存から追加)のみに対してロックが行われます。
すでに複製中のテーブルsp1.sptest1 にたいしてロックは行われません。
■ テーブルを複製対象から除外する時について
6. 構成ファイルをコピーします。
sp_ctrl> copy config testconfig2 to testconfig3
7. 複製から除外するテーブル設定を削除します。
datasource:o.orcl
sp1.sptest2 sp1.sptest2 rhel6tgt@o.orcl2
8. アクティベートします。
sp_ctrl> activate config testconfig3
このとき、sp1.sptest1 を複製対象から削除するために sp1.sptest1 のロックが行われます。※
※ 複製対象から除外する時には整合性を取る必要がなくロックが不要であるため、ロックを行わないnolockオプションを使用することもできます。
sp_ctrl> activate config configname nolock
■ 複製対象テーブルのルーティング変更の例
9. 構成ファイルをコピーします。
sp_ctrl> copy config testconfig3 to testconfig4
10. デフォルトPostキュー(ソースホスト名が既定)から名前付き Post キューに変更します。(この例ではqueue01と命名)
datasource:o.orcl
sp1.sptest2 sp1.sptest2 rhel6tgt:queue01@o.orcl2
11. アクティベートします。
sp_ctrl> activate config testconfig4
このとき、"複製先のルート"を変更するためにテーブル sp1.sptest2 に対するロックが行われます。
ルート変更時のロックについての詳細については以下の記事もお読みください。
アクティベートにて複製先のルートを変更した場合のロック獲得について(4332023)
以下の記事もあわせてご参考ください。
4325690 activate config時のロックの取得及び開放の流れ
4324941 activate config時のテーブルロックのロックモードについて
4324913 activate configにおける各テーブルのロック時間について