1 Oracle Database Gateway for ODBCの概要

Oracle Database Gatewayは、Oracle以外のシステム内に存在するデータにOracle環境から透過的にアクセスするための機能を提供します。次の各項では、Oracle Database Gateway for ODBCのベースとなっているテクノロジである異機種間サービスについて簡単に説明します。

関連項目:

汎用ゲートウェイ・テクノロジ、異機種間サービス、およびOracle Database Gatewayとの連携の詳細は、Oracle Database Heterogeneous Connectivityユーザーズ・ガイドを参照してください。

Oracle Database Gatewaysの概要

ゲートウェイ・テクノロジは、2つの部分から構成されます。1つはOracle以外のシステムに接続するための汎用テクノロジです。これはすべてのOracle以外のシステムに共通で、異機種間サービスと呼ばれます。もう1つは、ゲートウェイが接続するOracle以外のシステムに固有のコンポーネントです。異機種間サービスとOracle Database Gatewaysが連動して、Oracle環境からOracle以外のシステムへの透過的なアクセスを可能にします。

異機種間データ・アクセスは、多くの企業に影響する問題です。多くの企業は複数の異なるデータベース・システムを運用しています。これらの各システムにはデータが格納されており、それに対して一連のアプリケーションが実行されます。多くの場合、1つのデータベース・システムでこのデータを統合することは困難です。あるデータベースに対して実行されるアプリケーションの多くには、他のデータベースに対して実行される同等のアプリケーションがない場合があるため、これは大きな課題です。1つに連結されたデータベース・システムへの移行が実現可能になるまでは、様々な異機種間データベース・システムを相互運用する必要があります。

Oracle Database Gatewayは、Oracle以外のシステム内に存在するデータにOracle環境から透過的にアクセスするための機能を提供します。この透過性により、アプリケーション開発者がアプリケーションをカスタマイズしてOracle以外の他のシステムのデータにアクセスできるようにする必要はなくなるため、開発の労力は減り、アプリケーションの移動性は高まります。OracleとOracle以外のシステムの両方に対して一貫したOracleインタフェースを使用し、アプリケーションを開発できます。

異機種間サービスのテクノロジについて

異機種間サービスは、Oracle以外のシステムに接続するための一般的なテクノロジを提供します。データベースの統合コンポーネントとして、異機種間サービスは、強力なSQL分析機能や分散最適化機能などのデータベースの機能を利用できます。

異機種間サービスでは、Oracle SQLエンジンを拡張して、Oracle以外のリモート・システムのSQLおよびプロシージャ機能と、必要なデータ・ディクショナリ情報の取得に必要なマッピングを認識します。異機種間サービスにより、Oracle SQLをOracle以外のシステムの適切な言語に変換する機能と、Oracle以外のシステムのメタデータをローカル書式で表すデータ・ディクショナリ変換の2種類の変換が提供されます。変換が使用できない状況では、異機種間サービスのパススルー機能を使用してOracle以外のシステムにシステム固有のSQLを発行できます。

異機種間サービスは、OracleとOracle以外のリモート・システムとの間でトランザクションの調整も維持します。

関連項目:

異機種間サービスの詳細は、『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。

Oracle Database Gateway for ODBCについて

Oracle Database Gateway for ODBCは、OracleデータベースからOracle以外のシステムに接続するための動的問合せ機能を必要とするローエンド・データ統合ソリューションを対象としています。

この章で説明するODBC標準と互換性のあるデータソースは、Oracle Database Gateway for ODBCを使用してアクセスできます。

ゲートウェイには、SQLマッピング、データ型変換、およびOracle以外のリモート・システムとのインタフェースなど、様々な機能があります。ゲートウェイは、異機種間サービスと対話することにより、OracleとOracle以外のシステムを透過的に接続します。

Oracle Database Gateway for ODBCのアーキテクチャ

ゲートウェイはODBCドライバと連携して、Oracle Database Gateway for ODBCを使用してOracle以外のデータ・ストアにアクセスします。使用するドライバは、ゲートウェイと同じマシン上に存在する必要があります。Oracle以外のシステムは、Oracleデータベースと同じマシンまたは別のマシンに存在できます。

ゲートウェイは、Oracle以外のシステムを実行しているマシン、Oracleデータベースを実行しているマシンまたはスタンドアロンとしての第3のマシンにインストールできます。各構成には、それぞれメリットとデメリットがあります。ゲートウェイをインストールする場所を決定する際の考慮事項は、ネットワーク・トラフィック、オペレーティング・システム・プラットフォームの可用性、ハードウェア・リソースおよび記憶域です。

注意:

ODBCドライバは、Oracle以外のデータベースが同じマシンにある場合でも、Oracle以外のクライアント・ライブラリを必要とすることがあります。ODBCドライバの要件については、ODBCドライバのドキュメントを参照してください。

別々のマシン上のOracleとOracle以外のシステム

図は、OracleとOracle以外のデータベースが別々のマシン上にあり、Oracle Database Gateway for ODBCを通じて通信している構成の例です。クライアントは、ネットワークを通じてOracle以外のシステムに接続します。

図1-1は、Oracleシステムとは異なるコンピュータ上のOracle以外のシステムを示しています。

図1-1 別々のマシン上のOracleとOracle以外のシステム

図1-1の説明が続きます
「図1-1 別々のマシン上のOracleとOracle以外のシステム」の説明

この構成では、次のことが行われます。

  • クライアントがOracle Netを通じてOracleデータベースに接続します。

  • Oracleデータベースの異機種間サービス・コンポーネントがOracle Netを通じてゲートウェイに接続します。

  • ゲートウェイがOracle以外の次のコンポーネントと通信します。

    • ODBCドライバ・マネージャ

    • ODBCドライバ

  • 各ユーザー・セッションが、Oracle以外のシステムへのデータベース・リンクのユーザー・セッションでの初回使用時に生成された独自の専用エージェント・プロセスを受信します。ユーザー・セッションの終了時にエージェント・プロセスが終了します。

注意:

ODBCドライバは、Oracle以外のデータベースが同じマシンにある場合でも、Oracle以外のクライアント・ライブラリを必要とすることがあります。ODBCドライバの要件については、ODBCドライバのドキュメントを参照してください。

同じマシン上のOracleとOracle以外のシステム

図は、OracleとOracle以外のデータベースが同じマシン上にあり、Oracle Database Gateway for ODBCを通じて通信している構成の例です。

図1-2は、異機種間サービスを使用してOracleデータベースと同じコンピュータに存在するOracle以外のデータベースにアクセスしているクライアントを示しています。

図1-2 同じマシン上のOracleとOracle以外のシステム

図1-2の説明が続きます。
「図1-2 同じマシン上のOracleとOracle以外のシステム」の説明

この構成では、次のことが行われます。

  • クライアントがOracle Netを通じてOracleデータベースに接続します。

  • Oracleデータベースの異機種間サービス・コンポーネントがOracle Netを通じてゲートウェイに接続します。

  • エージェントがOracle以外の次のコンポーネントと通信します。

    • ODBCドライバ・マネージャ

    • ODBCドライバ

    ドライバがOracle以外のデータ・ストアへのアクセスを許可します。

  • 各ユーザー・セッションが、Oracle以外のシステムへのデータベース・リンクのユーザー・セッションでの初回使用時に生成された独自の専用エージェント・プロセスを受信します。ユーザー・セッションの終了時にエージェント・プロセスが終了します。

注意:

ODBCドライバは、Oracle以外のデータベースが同じマシンにある場合でも、Oracle以外のクライアント・ライブラリを必要とすることがあります。ODBCドライバの要件については、ODBCドライバのドキュメントを参照してください。

ODBC接続性要件

Oracle Database Gateway for ODBCを使用するには、ODBCドライバがゲートウェイと同じマシンにインストールされている必要があります。

ODBCドライバ・マネージャおよびドライバは次の要件を満たす必要があります。

  • 次のODBCカタログ関数がトランザクション内で機能する必要があります。

    • SQLColumns

    • SQLForeignKeys

    • SQLGetFunctions

    • SQLGetInfo

    • SQLGetTypeInfo

    • SQLPrimaryKeys

    • SQLProcedureColumns

    • SQLProcedures

    • SQLStatistics

    • SQLTables

  • Windowsの場合:

    • ODBCドライバにはODBC標準3.0へのコンプライアンス・レベルが必要です。マルチバイト・サポートのために、ドライバはODBC標準3.5を満たす必要があります。

    • ODBCドライバおよびドライバ・マネージャは、ODBCアプリケーション・プログラム・インタフェース(API)準拠レベル1以上に準拠する必要があります。ODBCドライバまたはドライバ・マネージャが複数のアクティブなODBCカーソルをサポートしない場合は、Oracle Database Gateway for ODBCを使用して実行できるSQL文の複雑さが制限されます。

  • UNIXの場合:

    • ODBCドライバ・マネージャが同じマシンにインストールされている必要があります。

    • ODBCドライバにはODBC標準3.0へのコンプライアンス・レベルと、準拠レベル1以上が必要です。ODBCドライバがODBCドライバ・マネージャと連携する場合、ODBCドライバ・マネージャはODBC標準3.0以上に準拠する必要があります。ODBCドライバにはODBC標準3.0へのコンプライアンス・レベルが必要です。マルチバイト・サポートのために、ドライバはODBC標準3.5を満たす必要があります。

    関連項目:

    ODBCドライバ・マネージャの依存関係についてはODBCドライバのドキュメントを、トランザクション分離レベルの詳細は『Oracle Database概要』を参照してください。

  • 使用するODBCドライバは、すべてのコアSQL ODBCデータ型と、SQL文法レベルSQL_92をサポートする必要があります。ODBCドライバは、次のODBC APIを公開する必要もあります。

    • SQLAllocHandle

    • SQLBindCol

    • SQLBindParameter

    • SQLCancel

    • SQLColAttribute

    • SQLColumns

    • SQLConnect

    • SQLDescribeCol

    • SQLDisconnect

    • SQLDriverConnect

    • SQLEndTran

    • SQLExecDirect

    • SQLExecute

    • SQLFetch

    • SQLForeignKeys

    • SQLFreeHandle

    • SQLFreeStmt

    • SQLGetConnectAttr

    • SQLGetData

    • SQLGetDiagField

    • SQLGetDiagRec

    • SQLGetEnvAttr

    • SQLGetFunctions

    • SQLGetInfo

    • SQLGetStmtAttr

    • SQLGetTypeInfo

    • SQLMoreResults

    • SQLNumResultCols

    • SQLParamData

    • SQLPrepare

    • SQLPrimaryKeys

    • SQLProcedureColumns

    • SQLProcedures

    • SQLPutData

    • SQLRowCount

    • SQLSetConnectAttr

    • SQLSetEnvAttr

    • SQLSetDescField

    • SQLSetDescRec

    • SQLSetStmtAttr

    • SQLStatistics - 統計をサポートする場合

    • SQLTables