異機種間サービスのデータ・ディクショナリ・ビュー
- ビューのタイプ
異機種間サービスのデータ・ディクショナリ・ビューです。 - データ・ディクショナリ情報のソース
異機種間サービスのデータベース・リンクで、特定の接続でデータ・ディクショナリ・コンテンツに使用される値のソースは、いくつものソースから取り込むことができます。 - 汎用ビュー
すべてのサービスに対する共通のビューがあります。 - トランザクション・サービス・ビュー
Oracle以外のシステムが分散トランザクションに関係する場合、分散トランザクションに関与できるかどうかは、そのシステムとエージェントのトランザクション機能により制御されます。 - SQLサービス・ビュー
SQLサービス固有のデータ・ディクショナリ・ビューがあります。
親トピック: 異機種間サービス・エージェントの使用
ビューのタイプ
異機種間サービスのデータ・ディクショナリ・ビューです。
異機種間サービスのデータ・ディクショナリ・ビューは、次のカテゴリに分類できます。ビュー名はすべて接頭辞HS_
で始まります。
データ・ディクショナリ・ビューのほとんどは、クラスとインスタンスの両方に対して定義されています。ほとんどのタイプのデータには、*_CLASS
ビューと*_INST
ビューがあります。詳細は、表4-2を参照してください。
表4-2 異機種間サービスのデータ・ディクショナリ・ビュー
ビュー | タイプ | 識別内容 |
---|---|---|
|
SQLサービス |
異機種間サービスでサポートされている全機能 |
|
SQLサービス |
異機種間サービスでサポートされている、すべてのデータ・ディクショナリ変換表名 |
|
トランザクション・サービス、SQLサービス |
各クラスの機能 |
|
SQLサービス |
各クラスのデータ・ディクショナリ変換 |
|
一般 |
各クラスの初期化パラメータ |
|
汎用 |
Oracleサーバーからアクセス可能なクラス |
|
汎用 |
Oracleサーバーからアクセス可能なインスタンス |
|
トランザクション・サービス、SQLサービス |
各インスタンスの機能(DBAが設定している場合) |
|
SQLサービス |
各クラスのデータ・ディクショナリ変換(DBAが設定している場合) |
|
汎用 |
各インスタンスの初期化パラメータ(DBAが設定している場合) |
|
バルク・ロード・プロシージャで作成した内部オブジェクトを追跡するためのデータ・ディクショナリ・ビュー。 |
すべてのOracleデータ・ディクショナリ表と同様に、これらのビューは読取り専用です。基礎となる表の内容は変更しないでください。
親トピック: 異機種間サービスのデータ・ディクショナリ・ビュー
データ・ディクショナリ情報のソース
異機種間サービスのデータベース・リンクで、特定の接続でデータ・ディクショナリ・コンテンツに使用される値のソースは、いくつものソースから取り込むことができます。
-
セッションの開始時に接続先異機種間サービス・エージェントによりアップロードされるインスタンス情報。この情報により、Oracleデータ・ディクショナリ内の対応する内容がオーバーライドされますが、Oracleデータ・ディクショナリには格納されません。
-
Oracleデータ・ディクショナリに格納されているインスタンス情報。このデータにより、接続先クラスの対応する内容がオーバーライドされます。
-
Oracleデータ・ディクショナリに格納されているクラス情報。
Oracleデータベース・サーバーの実行時にHS_AUTOREGISTER
サーバー初期化パラメータがFALSE
に設定されている場合、Oracleデータ・ディクショナリに情報が自動的に格納されることはありません。接続が確立されるたびに、接続ごとに異機種間サービス・エージェントにより等価のデータがアップロードされ、インスタンス固有の情報がクラス情報より優先されます。
注意:
エージェントがインスタンス情報をアップロードできる可能性があるため、特定のセッションに使用中の機能とデータ・ディクショナリ変換は明確に判断できません。
V$HS_PARAMETER
ビューのVALUE
列を問い合せると、異機種間サービスの初期化パラメータの値を判断できます。V$HS_PARAMETER
のVALUE
列では、実際の初期化パラメータ値が最大255文字から最大64文字に切り捨てられることに注意してください。パラメータ名は最大64文字から最大30文字に切り捨てられます。
親トピック: 異機種間サービスのデータ・ディクショナリ・ビュー
汎用ビュー
すべてのサービスに対する共通のビューがあります。
表4-3 すべてのサービスの一般的なビュー
ビュー | 次を含む |
---|---|
|
Oracleデータ・ディクショナリにアップロードされたクラスの名前 |
|
Oracleデータ・ディクショナリにアップロードされたインスタンスの名前 |
|
異機種間サービス初期化パラメータに関する情報 |
たとえば、Oracleデータベース・サーバーから複数のSybaseゲートウェイにアクセスできます。ゲートウェイに初めてアクセスすると、Oracleデータベース・サーバーにアップロードされた情報が次のように表示される場合があります。
SQL> SELECT * FROM HS_FDS_CLASS; FDS_CLASS_NAME FDS_CLASS_COMMENTS FDS_CLASS_ID --------------------- ------------------------------ ------------ Sybase816 Uses Sybase driver, R1.1 1 Sybase817 Uses Sybase driver, R1.2 21
2つのクラス(Sybase816にアクセスするクラスとSybase817にアクセスするクラス)がアップロードされています。Oracleデータベース・サーバーのデータ・ディクショナリには、Sybase816とSybase817の両方のための機能情報、SQL変換およびデータ・ディクショナリ変換が含まれます。
Oracleデータベース・サーバーのデータ・ディクショナリには、アクセス対象であるOracle以外の各システム・インスタンスに対するHS_FDS_INST
ビューのインスタンス情報も含まれます。
親トピック: 異機種間サービスのデータ・ディクショナリ・ビュー
トランザクション・サービス・ビュー
Oracle以外のシステムが分散トランザクションに関係する場合、分散トランザクションに関与できるかどうかは、そのシステムとエージェントのトランザクション機能により制御されます。
トランザクション機能は、HS_CLASS_CAPS
表に格納されます。
Oracle以外のシステムとエージェントが2フェーズ・コミット・プロトコルをサポートできるかどうかは、2PCタイプの機能により指定されます。次の表に示すタイプのいずれかを指定できます。
表4-4 トランザクション・サービス・ビュー
タイプ | 機能 |
---|---|
読取り専用(RO) |
Oracle以外のシステムに対して実行できるのは、SQLの |
単一サイト(SS) |
Oracle以外のシステムでリモート・トランザクションを処理できますが、分散トランザクションは処理できません。つまり、2フェーズ・コミット・プロトコルには関与できません。 |
コミット確認(CC) |
Oracle以外のシステムが分散トランザクションに関与できます。サーバーの2フェーズ・コミット・プロトコルには、コミット・ポイント・サイトとしてのみ関与できます。つまり、データを準備できませんが、グローバル・コーディネータから要求された場合は、特定のトランザクションの結果を記憶できます。 |
2フェーズ・コミット(2PC) |
Oracle以外のシステムが分散トランザクションに関与できます。サーバーの2フェーズ・コミット・プロトコルには、コミット・ポイント・サイトではなく通常の2フェーズ・コミット・ノードとして関与できます。つまり、データを準備できますが、グローバル・コーディネータから要求されても特定のトランザクションの結果を記憶できません。 |
2フェーズ・コミット確認(2PCC) |
Oracle以外のシステムが分散トランザクションに関与できます。サーバーの2フェーズ・コミット・プロトコルには、通常の2フェーズ・コミット・ノードまたはコミット・ポイント・サイトとして関与できます。つまり、データを準備でき、グローバル・コーディネータから要求された場合は、特定のトランザクションの結果を記憶できます。 |
異機種間サービスのHS_CLASS_CAPS
データ・ディクショナリ・ビューを使用すると、ドライバとOracle以外のシステムでサポートされているトランザクション・モデルを問い合せることができます。
次に、2PCタイプの機能の1つを示します。
SELECT cap_description, translation FROM hs_class_caps WHERE cap_description LIKE '2PC%' AND fds_class_name LIKE 'SYBASE%'; CAP_DESCRIPTION TRANSLATION ---------------------------------------- ----------- 2PC type (RO-SS-CC-PREP/2P-2PCC) CC
Oracle以外のシステムとエージェントが分散トランザクションをサポートするとき、Oracle以外のシステムは他のOracleサーバーと同様に扱われます。2フェーズ・コミット・プロトコルで障害が発生すると、トランザクションは自動的にリカバリされます。障害が続くとき、場合によってはデータベース管理者が手動でインダウト・トランザクションをオーバーライドする必要があります。
親トピック: 異機種間サービスのデータ・ディクショナリ・ビュー
SQLサービス・ビュー
SQLサービス固有のデータ・ディクショナリ・ビューがあります。
- 機能のトランザクションとビュー
HS_*_CAPS
データ・ディクショナリ表には、Oracle以外のデータ・ソースのSQL機能と必須のSQL変換に関する情報が含まれています。 - データ・ディクショナリ変換のビュー
Oracle以外のシステムがOracleデータベース・サーバーと同様にみえるように、異機種間サービス接続により、Oracleデータ・ディクショナリ・ビューの限定セットがOracle以外のシステムのデータ・ディクショナリにマップされます。
親トピック: 異機種間サービスのデータ・ディクショナリ・ビュー
機能とトランザクションのビュー
HS_*_CAPS
データ・ディクショナリ表には、Oracle以外のデータ・ソースのSQL機能と必須のSQL変換に関する情報が含まれています。
親トピック: SQLサービス・ビュー
データ・ディクショナリ変換のビュー
Oracle以外のシステムがOracleデータベース・サーバーと同様にみえるように、異機種間サービス接続により、Oracleデータ・ディクショナリ・ビューの限定セットがOracle以外のシステムのデータ・ディクショナリにマップされます。
このマッピングにより、アプリケーションでは、これらのビューがOracleデータ・ディクショナリに属している場合と同様に問合せを発行できます。このアクセスは、データ・ディクショナリ変換により可能になります。これらの変換は、名前に接尾辞_DD
を含む各異機種間サービス・ビューに格納されます。
たとえば、次のSELECT
文は、Sybaseのデータ・ディクショナリ表からemp
表の情報を取得するSybaseの問合せに変換されます。
SELECT * FROM USER_TABLES@remote_db WHERE UPPER(TABLE_NAME)='EMP';
データ・ディクショナリ表は、変換するかわりに疑似実行できます。必要な情報がOracle以外のデータ・ソースのデータ・ディクショナリにないために、データ・ディクショナリ変換ができない場合、異機種間サービスではデータ・ディクショナリ表が使用可能であるかのように表示されますが、表には情報が含まれていません。
Oracle以外のシステム用に変換または疑似実行されるOracleデータ・ディクショナリ・ビューまたは表の情報を取得するには、ユーザーSYS
として接続し、HS_CLASS_DD
ビューに対して次の問合せを発行します。
SELECT DD_TABLE_NAME, TRANSLATION_TYPE FROM HS_CLASS_DD WHERE FDS_CLASS_NAME LIKE 'SYBASE%'; DD_TABLE_NAME T ----------------------------- - ALL_ARGUMENTS M ALL_CATALOG T ALL_CLUSTERS T ALL_CLUSTER_HASH_EXPRESSIONS M ALL_COLL_TYPES M ALL_COL_COMMENTS T ALL_COL_PRIVS M ALL_COL_PRIVS_MADE M ALL_COL_PRIVS_RECD M ...
変換タイプT
は、変換が存在することを示します。変換タイプがM
の場合は、データ・ディクショナリ表が疑似実行されます。
親トピック: SQLサービス・ビュー