チェンジ・データ・キャプチャ(CDC)は、エンタープライズ・データソースに加えられた変更内容を取得し、Oracle Fusion Middlewareなどの統合ミドルウェアに送信して処理することによって、リアルタイムに近い効率的な統合を可能にする統合テクノロジです。CDCアダプタは、Oracle SOA Suite(BPEL Process Manager、Oracle Enterprise Service Bus)およびOracle Data Integrator(ODI)で使用できます。
OracleAS CDC Adapter for IMS/DBでは、DFSFLGX0 IMSユーザー・イグジットに渡される変更されたIMS/DBセグメントが取得され、MVSログ・ストリームに保存されます。IMS/DB CDCエージェントによって、ログ・ストリームで変更内容がポーリングされます。
OracleAS CDCアダプタ OracleAS CDCアダプタこの章では、OracleAS CDC Adapter for IMS/DBの機能とアーキテクチャの概要について説明します。内容は次のとおりです。
OracleAS CDC Adapter for IMS/DBでは、IMS/DBデータソース内のデータに加えられた変更内容(挿入操作、更新操作、削除操作など)が取得されて配信されます。CDCアダプタを使用すると、IMS/DBデータを使用する効率的なデータ統合ソリューションの構築、システムを同期化することによるデータの整合性の保証、データ・ウェアハウスおよび運用データストアのリアルタイムに近い更新、ビジネス・アクティビティのイベント・ドリブンの監視や処理が可能になります。
OracleAS CDC Adapter for IMS/DBには、次の機能が備わっています。
非侵入型のチェンジ・キャプチャ: OracleAS CDC Adapter for IMS/DBは、ログ・ベースのCDCテクノロジです。CDCエージェントは、ログ・ストリームをポーリングして、変更内容にアクセスします。エージェントによるポーリングは、ストリーム位置(またはエージェント・コンテキスト)と呼ばれる特定のポイントから開始されます。最後に読み取られた位置がストリーム位置として保存されます。次回、情報を取得するためにエージェントによってログ・ストリームがポーリングされるときは、保存されたストリーム位置から開始されます。
リアルタイムのデータ・キャプチャ: OracleAS CDC Adapter for IMS/DBでは、待機時間をゼロにする必要があり、最新のデータを必要とするアプリケーション用に、リアルタイムに近いチェンジ・データ・キャプチャが行われます。スケジュールされたCDCソリューションとは異なり、リアルタイムに近いデータ・キャプチャによって、変更イベントを変更後数秒でコンシューマが利用できることが保証されます。非アクティブ期間後に数秒たつと変更内容が利用可能になるため、リアルタイムに近いデータ・キャプチャという表現を使用しています。
変更内容の保存: Oracle CDC Adapter for IMS/DBには、取得された変更内容がアクセスおよび処理しやすい形式で保存されるステージング領域が用意されています。ステージング領域によって、変更内容が処理されるまではそれらが永続的に保存されることが保証されます。また、ステージング領域には、古い変更レコードをクリーン・アップする機能が備わっています。
変更内容のアクセスおよび配信: Oracle CDC Adapter for IMS/DBにはJCAリソース・アダプタが含まれています。このアダプタは、BPELおよびESBでインバウンド・エンドポイントとして構成でき、XML形式で変更内容を配信します。
フィルタリング: OracleAS CDC Adapter for IMS/DBでは、操作のタイプ(INSERT、UPDATE、DELETE)、列選択、特定の列値に基づいて、取得されたデータをフィルタリングできます。
信頼性のある配信とリカバリ: Oracle CDC Adapter for IMS/DBでは、変更内容は信頼性のある永続記憶域に保存され、正常に移動および処理された変更ストリーム内の場所を示すストリーム位置という概念が使用されます。ストリーム位置を保存することによって、CDCアダプタは常に停止位置から障害後の再開、リカバリ、変更内容の移動と配信を行うことができます。
使いやすさ: OracleAS CDC Adapter for IMS/DBには、Oracle Studioを使用して直観的に理解できる簡単な方法でCDCソリューションを構成することができます。
OracleAS CDC Adapter for IMS/DBを使用すると、ETL(抽出、変換、ロード)処理がより効率的になります。また、従来必要であったETLのための停止時間が不要になるため、ソース・データベース・システムの操作を中断することが少なくなります。
次の図に、OracleAS CDC Adapter for IMS/DBを使用したチェンジ・データ・キャプチャに使用されるシステム・コンポーネントを示します。
OracleAS CDC Adapter for IMS/DBのコンポーネント・アーキテクチャには、次のコンポーネントが含まれています。
データベース・プラットフォーム: データベース・プラットフォームは、取得するデータを含むデータソースです。
データベース・ログ: データベース・ログは、生の変更データを含むログ・ストリームです。
Oracle Connect: Oracle Connectはバックエンド・システム上で実行され、Oracle Application Server上で実行される特別なJ2CAアダプタの処理を行います。
CDCエージェント: これはOracleAS CDC Adapter for IMS/DBのコンポーネントであり、バックエンド・データが存在するコンピュータ上のデーモン(リスナー・プロセス)の制御下で実行されます。キャプチャ・エージェントによって、変更ルーターからトランザクション・ログ内の変更イベントへのアクセスが可能になります。
エージェントは、取得する変更と同じコンピュータ上に配置されます。これによってジャーナル内の最後の読取り位置(ストリーム位置またはコンテキスト)が管理され、ジャーナルの次回ポーリング時にはこのポイントからポーリングが開始されます。コンテキストは、アダプタ定義が保存されているリポジトリに保存されます。アダプタ定義には、適切なジャーナルにアクセスするために使用される単一の主要な相互作用および変更を監視するための表のリストが含まれています。
BPELおよびESB: ESBまたはBPELで構成されたエンドポイントに変更レコードを送信するJCAプロバイダによって変更イベントが利用される場所です。
JC2Aリソース・アダプタ: これはJ2CA 1.5 IMS/DBアダプタの特別なバージョンで、ステージング領域から変更レコードを読み取ることができます。変更イベントをステージング領域から取得し、XML変更文書として配信する、BPELおよびESBのインバウンド・エンドポイントを実装します。各エンドポイントでは、ソース・データベースにおける単一の取得対象の表に対する変更レコードが処理されます。
J2CAアダプタでは、ステージング領域に対して複数の接続が使用され、複数の表の変更内容が並列して処理されます。
JDBCドライバ: SQL問合せを使用した、ステージング領域内の変更へのアクセスを可能にします。
WebLogicおよびBPELコンポーネント: JC2Aアダプタからのメッセージをホストおよび取得するOracleASコンポーネントです。
ステージング領域: BPELまたはESBに送信される前に変更レコードが保存される、変更表のセットです。ステージング領域の古いレコードは、指定されたエージング・ポリシーに基づいて削除されます。
ステージング領域には、SQLアクセスのためのDISAMデータソース、およびXMLアクセスのためのデータベース・イベント・アダプタが含まれています。詳細は、「ステージング領域」を参照してください。
ステージング領域には、次のコンポーネントが含まれています。
変更ルーター: これは、Oracleプラットフォーム上のデーモン(リスナー・プロセス)の制御下で実行されるOracleAS CDC Adapter for IMS/DBサービスです。変更ルーターでは、CDCエージェントから変更ストリームが読み取られ、それらがトランザクションおよびコミットの順序にソートされて、変更内容が様々な変更表に配信されます。
取得対象のデータベースに対して、同時に1つの変更ルーターのインスタンスのみがアクティブになります。また、変更ルーターでは、構成可能なエージング・ポリシーに従って、変更表から古い変更内容が削除されます。エージング・ポリシーのデフォルトは48時間です。つまり、ステージング領域に48時間を超えて存在するレコードは削除されます。
変更表: これはステージング領域内に存在する表で、ソース・データベース内の1つの取得対象の表に対する変更内容が含まれます。これらの各変更表では、トランザクションの順序で取得対象の各表の変更イベントが管理されています。トランザクション内では発生順に変更イベントが管理されます。変更表はDISAMファイルです。このファイルは変更データに迅速にアクセスできるように索引が作成されており、ストリーム位置を使用して直接アクセスできます。
変更アクセス・サービス: これは、BPELやESBとは異なるコンピュータまたは同じコンピュータ上にインストールされるOracle Connectのインスタンスであり、変更表へのアクセスを可能にします。このOracle Connectのインスタンスは、ステージング領域として構成されます。
Oracle Studio: 直観的に理解できるウィザードを使用して開発者または管理者がCDCエージェントおよびステージング領域を設定できる、グラフィカル・ユーザー・インタフェースを備えています。Oracle Studioは、Linux、UNIXまたはWindowsにインストールできます。
ステージング領域はOracle Connectによって使用され、ジャーナルから取得したデータが保存されます。ジャーナルは1回のみスキャンされ、そのスキャン中に読み取られたすべての対象表に対する変更内容がステージング領域に渡されて保存されます。そのため、ジャーナルは、ポーリングされるたびに1回のみスキャンされます。変更内容がステージング領域に書き込まれた後、これらの変更内容の処理は、ジャーナルとは独立して実行されます。
ステージング領域は、トランザクションを使用している場合に役立ちます。変更データは、トランザクションがコミットされるまでは変更キューに書き込まれません。したがって、トランザクションが失敗した場合でも、失敗したトランザクションの手順について行われた処理を取り消すオーバーヘッドは発生しません。
ステージング領域は、Oracle Application Serverが実行されている任意のコンピュータ(Windows、LinuxまたはUNIXオペレーティング・システム)に配置でき、IMS/DB CDCアダプタと同じサーバー上で実行する必要はありません。ジャーナルから情報が抽出されて、ステージング領域に書き込まれた後、ステージング領域上でのみ変更内容の処理が行われます。したがって、ステージング領域は、ネットワーク構成およびコンシューマ・アプリケーションの実行場所を考慮して設定する必要があります。
ステージング領域では、コンシューマ・アプリケーションによって読み取られた最後の位置(ステージング領域コンテキスト)が管理されて、次にコンシューマ・アプリケーションからのリクエストを受信したときには、このポイントから読取りが開始されます。コンテキストは、ステージング領域が管理されているリポジトリに保存されます。
ステージング領域には索引が作成されているため、特定のストリームを目的としてステージング領域に迅速にアクセスできます。
ステージング領域は、自動的に48時間ごとに消去されます。ステージング領域に48時間を超えて存在するすべてのイベントは削除されます。