XStreamインタフェースについて

Oracle Database 11gリリース2以降、XStream OutおよびXStream Inと呼ばれるAPIを利用できるようになりました。

このテクノロジにより、Oracle DatabaseとOracle以外のデータベース、非RDBMS Oracle製品、ファイル・システム、サード・パーティのソフトウェア・アプリケーションなどとの間で高パフォーマンスで、ほぼリアルタイムの情報共有インフラストラクチャを実現できます。XStreamはOracle Streamsで使用されるインフラストラクチャ上に構築されます。

関連項目:

「OCI XStream関数」のOCI XStream関数

XStream Out

XStream Outは、リモート・クライアントのアウトバウンド・サーバーへの連結、および論理変更レコード(LCR)形式での行変更の抽出を可能にします。

XStream Outを使用するには、取得プロセスおよびアウトバウンド・サーバーを作成する必要があります。LOB、LONGおよびXMLTypeなど、Oracle Streamsでサポートされるすべてのデータ型がXStreamsでサポートされます。取得プロセスおよびアウトバウンド・サーバーは、同一のデータベース・インスタンス上にある必要はありません。取得プロセスおよびアウトバウンド・サーバーの開始後、行変更が取得され、アウトバウンド・サーバーに送信されます。外部クライアント・アプリケーションは、OCIを使用してこのアウトバウンド・サーバーに接続できます。接続の確立後は、アウトバウンド・サーバーからのLCRの待機中、クライアント・アプリケーションをループさせることができます。クライアント・アプリケーションでは、クライアント側のコールバックがLCRが受信されるたびに起動されるように登録できます。必要に応じていつでもクライアント・アプリケーションをアウトバウンド・サーバーから連結解除できます。再起動時には、アウトバウンド・サーバーはREDOストリームのどの位置でクライアント・アプリケーションへのLCRのストリームを開始するか認識しています。

関連項目:

XStream In

非OracleデータをOracle Databaseにレプリケートするには、XStream Inを使用します。

このテクノロジにより、リモート・クライアント・アプリケーションのインバウンド・サーバーへの連結、およびLCR形式での行およびDDL変更の送信が可能になります。

外部クライアント・アプリケーションは、OCIを使用してこのインバウンド・サーバーに接続されます。接続の確立後、クライアント・アプリケーションは、LCRをストリームすることによりインバウンド・サーバーの取得エージェントとして機能します。クライアント・アプリケーションは、データベース接続ごとに1つのインバウンド・サーバーにのみ連結でき、各インバウンド・サーバーには1つのクライアント・アプリケーションのみを連結できます。

関連項目:

Oracle Database XStreamガイドのXStream Inの概念

位置の順序とLCRストリーム

各LCRには位置属性があります。

LCRの位置により、トランザクション内のLCRのストリームにおける配置が識別されます。

関連項目:

Oracle Database XStreamガイドのLCRにおける位置順序

XStreamと文字セット

XStream Outの場合は、一般的にクライアント・アプリケーションの文字セットをアウトバウンド・サーバー・データベースの文字セットに設定することがベスト・プラクティスです。

XStream Outでは、LCRの文字データがアウトバウンド・サーバー・データベースの文字セットからクライアント・アプリケーションの文字セットに暗黙的に変換されます。XStream Inでは、LCRの文字データがクライアント・アプリケーションの文字セットからインバウンド・サーバー・データベースの文字セットに暗黙的に変換されます。

パフォーマンス向上のために、次のタスクを実行します。

  • ソースから宛先へのLCRデータ・フローを分析します。

  • OCIクライアント・アプリケーションのクライアントの文字セットを、文字変換が最小限となり、データ損失がなく、XStreamまたは宛先での暗黙的な変換を利用する形式に設定します。