プライマリ・コンテンツに移動
Oracle® Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72465-07
目次へ移動
目次
索引へ移動
索引

前
次

25 XStream用OCIインタフェースの概要

この章はXStream用OCIインタフェースの概要です。

Oracle Call Interface (OCI)にはXStream用のインタフェースが含まれています。この章はXStream用OCIインタフェースの概要です。

この章は、次の項目で構成されています。

関連項目:

  • XStream Outの概念の詳細は、Oracle Database XStreamガイドを参照してください

  • XStream Outの構成の詳細は、Oracle Database XStreamガイドを参照してください

  • OCI XStream関数の詳細は、「OCI XStream関数」を参照してください

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 Outの概要は、Oracle Database XStreamガイドを参照してください

  • LCRの基本は、『Oracle Streams概要および管理』を参照してください

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

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

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

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

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

ハンドラおよび記述子の属性

この章では、OCIのハンドルおよび記述子の属性について説明します。この属性はOCIAttrGet()関数で読み取り、OCIAttrSet()関数で変更することができます。

表記規則

それぞれのハンドル・タイプで読取りまたは変更が可能な属性をリストします。各属性リストには、次の情報が含まれています。

モード

有効なモードは次のとおりです。

READ: OCIAttrGet()を使用して属性を読み取ります。

WRITE: OCIAttrSet()を使用して属性を変更します。

READ/WRITE: OCIAttrGet()を使用して属性を読み取り、OCIAttrSet()を使用して属性を変更します。

説明

これは、属性の用途の説明です。

属性のデータ型

これは、属性のデータ型です。必要に応じて、READモードとWRITEモードのデータ型が区別されます。

サーバー・ハンドル属性

次のサーバー・ハンドル属性を使用できます。

OCI_ATTR_XSTREAM_ACK_INTERVAL

モード

READ/WRITE

説明

XStream Outの場合、ACK間隔はアウトバウンド・サーバーがクライアント・アプリケーションから処理済最低位置を受信する最小間隔(秒)です。各ACK間隔後、アウトバウンド・サーバーですべての実行中のOCIXStreamOutLCRReceive()またはOCIXStreamOutLCRCallbackReceive()コールが終了されるため、クライアント・アプリケーションでキャッシュされた処理済最低位置をアウトバウンド・サーバーに送信できます。

XStream Inの場合、ACK間隔はインバウンド・サーバーがクライアント・アプリケーションに処理済最低位置を送信する最小間隔(秒)です。各ACK間隔後、インバウンド・サーバーでクライアント・アプリケーションに新しい処理済最低位置が送信されるように、すべての実行中のOCIXStreamInLCRSend()またはOCIXStreamInLCRCallbackSend()コールが終了されます。

OCI_ATTR_XSTREAM_ACK_INTERVALのデフォルト値は30秒です。この属性は、OCIXStreamOutAttach()またはOCIXStreamInAttach()のコール時にのみチェックされます。このため、APIを呼び出す前に設定する必要があります。設定しない場合は、デフォルト値が使用されます。

属性のデータ型

ub4 */ub4

OCI_ATTR_XSTREAM_IDLE_TIMEOUT

モード

READ/WRITE

説明

アイドル・タイムアウトは、アウトバウンド・サーバーがOCIXStreamOutLCRReceive()またはOCIXStreamOutLCRCallbackReceive()コールを終了する前にLCRを待機する間アイドル状態となる秒数です。

OCI_ATTR_XSTREAM_IDLE_TIMEOUTのデフォルト値は1秒です。この属性は、OCIXStreamOutAttach()またはOCIXStreamInAttach()のコール時にのみチェックされます。このため、APIを呼び出す前に設定する必要があります。設定しない場合は、デフォルト値が使用されます。

属性のデータ型

ub4 */ub4