簡単シリーズDpropR編最終回は、7月末にプレビュー発表されたDB2 UDB V8で実装される新機能について簡単にご紹介しましょう。
DB2 UDB V8でのDpropRは主にCapture機能と管理ツールでの機能拡張がなされています。Capture機能では、パフォーマンスの向上を図って大きく3点の機能拡張がありました。
まず、1点目ですが、未コミットのトランザクションが処理中(Inflight状態)のデータの扱いが変わります。第一回目でご説明したように、現在は、Inflight状態のデータもCD表に書き込んでいき、コミットされた変更データはUOW表とのJOIN操作によって抽出しています。V8では、コミットされた変更データだけが、CD表に書き込まれます。次図はそのしくみを模式的にあらわしたものです。
- トランザクションTx1はコミットされたので、UOW表とCD表に情報が書き込まれます。
- トランザクションTx2は未コミット状態で処理が続けられているので、何も処理されません。
- トランザクションTx3はロールバックされたので、CD表には情報が書き込まれず、メモリ上から削除されます。
この新しいアーキテクチャーは、将来的には、CD表を経由せずにトランザクションデータをターゲット表に伝播するようなしくみを可能にします。不要なオーバーヘッドを抑えられるため、さらなるパフォーマンスの向上が期待できます。

2点目の機能拡張は、Captureの各タスクをマルチスレッド化したという点です。Captureのメインのプロセススレッドは、他のタスクのスレッドを開始したり、Captureに対するコマンドを処理したりします。Captureの各タスクは主に次のような処理をします。
- DB2ログを読みとる
- CD表にコミットされたデータを挿入する
- メモリー内の統計情報を更新する
- CD表・UOW表・トレース表などから処理済みの不要なデータを削除する
- レプリケーション状況のモニターをする
次図はCaptureのスレッド群の働きを模式的に表したものです。
このマルチスレッド化によって、例えば、不要なデータの消しこみ処理(プルーニング処理)を随時実行することができ、CD表やUOW表のスペースサイズの増大を抑え、Applyプログラムの効率的な処理を可能にします。

3点目の機能拡張は、1つのデータベースに対して複数のCaptureを動かすことができるようになったということです。それぞれのCaptureはユーザーが任意で指定可能な固有の”スキーマ名”を持ちます。Captureが使用する制御表はこのユーザー定義のスキーマ名を持ちます。各サブスクリプションセット内に指定する全てのソース表は同一のCaptureスキーマ名を持っていることが必要です。複数のCaptureで同一表を指定することも可能です。
ちなみに、Applyが使用する制御表は単一のスキーマ名”ASN”です。固有の適用修飾子を指定することで、複数のApplyプログラムを実行することができるからです。
次図はこの新しい機能のしくみを模式的に表したものです。
複数のCaptureプログラムを稼動させることによるオーバーヘッドも考慮にいれなければなりませんが、CPUを複数搭載しているマシンでの実行ならば、かなりのパフォーマンス向上を見込めます。また、連合データサーバーで、ニックネーム経由で複数のソース表にアクセスするような環境においては、実表が書き出すログはそれぞれ異なるので、固有のスキーマ名をもつCaptureを各ソース表に対して稼動させて変更情報を収集するといったシステムをデザインすることが可能になります。
Captureの複数稼動のしくみ

DB2 UDB V8では、さまざまな管理ツールがGUIで提供され、DB管理者にとって扱いやすくなりました。DpropRについても、新しく、レプリケーションセンターというGUIツールが用意されています。これまでご紹介してきましたように、現行のバージョンでは、レプリケーション仕様の定義および管理を、ソース表・ターゲット表がすべてDB2の場合は、コントロールセンターを用いて、また、非DB2データベースが含まれる場合はDJRAを用いて行っていますが、この両者が持っている機能を統合し、さらに拡張しています。
次図は、レプリケーションセンターを立ち上げたときの初期画面です。

従来と同様に、ソース表の定義や、サブスクリプションの定義をおこなう、「レプリケーションの定義」メニューとともに、「操作」メニューが提供されています。操作メニューから、CaptureおよびApplyの開始・停止・監視などが実行できます。また、V8から提供いたしますレプリケーション処理のモニタリングも、この画面から操作することができます。

一方、レプリケーション定義においても、次図のようなランチパッドを用意しているので、初めての方でも、対話式にレプリケーションのしくみを理解しながら、定義を容易に実行していくことができます。

V8では新しくレプリケーション処理のモニタリング機能が実装されました。モニタープログラムはUnix、Windows、z/OSプラットフォーム上で稼動します。中央にモニタリング用のサーバーを置き、監視したい対象のサーバーでモニタープログラムを実行して情報を収集し、レポートを作成することができます。また、事前に設定した閾値や警戒値に達すると、モニターサーバーからeメールを送信してDB管理者に知らせたり、ユーザー定義のExitを実行したりすることもできます。

以上、4回にわたってDpropRの機能についてご紹介してまいりましたが、ご理解いただけたでしょうか?データの整合性を保ちつつレプリケーションするためのしくみは複雑なのですが、レプリケーションの定義や操作はとても簡単ですので、是非、試してみてください。
最後にまとめのクイズです。
【問題】DpropRを構成する3つのコンポーネントをあげてください。
【回答】次の3つです。
- Capture− ソース表に加えられた変更情報を収集するコンポーネントでした。DB2がソースの場合は、LOGを読み、変更情報を収集します。非DB2がソースの場合は、対象の表にトリガーを設定し、変更が発生するたびに、変更情報がCD表に書き出されます。
- Apply− ターゲット表に変更情報を適用するコンポーネントでした。ApplyはCaptureが収集した変更情報を抽出し、一定間隔あるいはイベント起動でターゲット表に反映します。
- 管理ツール− レプリケーション仕様の定義や管理を行うGUIのツールでした。ソース表およびターゲット表がすべてDB2で構成される場合は、コントロールセンターが、非DB2が含まれる場合はDJRAがその役割を果たします。
| 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|---|---|---|
| PDF形式 | dpropr04.pdf | 160KB | HTTP |
ダウンロード形式について Adobe® Reader® が必要
-
developerWorks Japan: Information Management :
Information Managementの日本語技術情報サイトです
-
developerWorks: Information Management(US)
: Information Managementの英語の技術情報サイトです