1.6 ゲートウェイの動作方法
ゲートウェイには、独自のデータベース機能はありません。 かわりに、OracleデータベースがSQL操作の一部またはすべてをDRDAデータベースに送信できるインタフェースを提供します。
DRDAサーバーをサポートするゲートウェイは、データベース・リンクの使用によりOracle Databaseに識別されます。 データベース・リンクは他のOracleデータベースを識別するために使用される同じ構成要素です。 DRDAサーバーの表は、SQLで次のように参照されます。
table_name@dblink_name
または
owner.table_name@dblink_name
Oracle Databaseにシノニムまたはビューを作成すると、DRDAサーバーの表を、その表がOracle Databaseに対してローカルであるかのように単純名を使用して参照できます。
Oracle DatabaseによってDRDAサーバー上の表に対する参照が検出されると、SQL文の適用可能な部分が処理のためにゲートウェイに送信されます。 SQL文に関連付けられたすべてのホスト変数は、ゲートウェイに(したがってDRDAサーバーに)バインドされます。
ゲートウェイは、実行のために、およびレスポンスの処理と返信のためにこれらのSQL文をDRDAサーバーに送信します。 レスポンスは、データまたはメッセージです。 Oracleデータ型とDRDAデータ型の間の変換は、ゲートウェイにより実行されます。 Oracle Databaseとアプリケーションの両方とも、Oracleデータ型のみを読み取って処理します。
SQLの相違
SQL実装はすべて同じではありません。 Oracleデータベースでは、ゲートウェイを通じて現在アクセスされるデータベースより多くの組込み関数のセットをサポートしています。 Oracle Databaseとゲートウェイは、連携してSQLを特定のDRDAサーバーと互換性のある形式に変換します。
この変換中に、Oracleデータベース関数は、特定のDRDAサーバーに認識可能な関数に変換されます。 たとえば、OracleデータベースのNVL
関数は、DB2 VALUE
関数に変換されます。
または、Oracleデータベースでは、DRDAサーバーで実行できない関数が保持され、DRDAデータベースから行がフェッチされた後に実行されます。 この処理は、SELECT
文にのみ適用されます。 Oracleデータベースおよびゲートウェイは、トランザクション・セマンティクスを変更するため、UPDATE
、INSERT
またはDELETE
文に対してこの種の操作を実行できません。