22 Oracle XML DBリポジトリの構成
Oracle XML DBリポジトリの構成全体が、すべてのリポジトリ・リソースに適用されます。これには、イベント処理やXLinkおよびXInclude処理の管理に関するパラメータの構成は含まれていません。リソース構成ファイルを使用して、リソースを構成します。
関連項目:
リポジトリ専用の表領域の使用方法の詳細は、パッケージDBMS_XDB_ADMINを参照してください。
- リソース構成ファイル
Oracle XML DBリポジトリ・リソースは、リソースについて構成可能なパラメータを定義するリソース構成ファイルと関連付けて、あらゆる目的で構成します。リソース構成ファイル自体がOracle XML DBリポジトリのリソースです。 - リソースの構成
Oracle XML DBリポジトリ・リソースの構成には、構成ファイルを作成し、そのファイルを構成リソースとしてリポジトリに追加し、および構成リソースをそれが構成するリソースまたはリポジトリ全体にマッピングすることが含まれます。 - 共通の構成パラメータ
共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。
関連トピック
親トピック: Oracle XML DBリポジトリ
22.1 リソース構成ファイル
Oracle XML DBリポジトリ・リソースは、リソースについて構成可能なパラメータを定義するリソース構成ファイルと関連付けて、あらゆる目的で構成します。リソース構成ファイル自体がOracle XML DBリポジトリのリソースです。
リソース構成ファイルは、パス/sys/schemas/PUBLIC/xmlns.oracle.com/xdb/XDBResConfig.xsd
にあるOracle XML DBリポジトリでアクセスできるXML Schema XDBResConfig.xsd
に準拠するXMLファイルです。このXML SchemaはOracle XML DBで定義されているため、変更できません。
PL/SQLプロシージャDBMS_RESCONFIG.addResConfig
を使用して、構成ファイルにリソースをマップします。1つのリソース構成ファイルをリポジトリ内のすべてのリソースに適用することもできます。その場合は、PL/SQLプロシージャDBMS_RESCONFIG.addRepositoryResConfig
を使用して、リソースをまとめてリポジトリにマップします。
同じリソース構成ファイルを使用して、必要に応じて複数のリソースを構成できます。同一の構成が有効である場合は、このようにリソース間で構成ファイルを共有させることをお薦めします。これにより実行時のパフォーマンスを向上させることができます。また、1箇所で構成を更新した場合に変更が複数のリソースに適用されることにより、リポジトリ管理が簡略化されます。
複数の、同一のリソース構成ファイルを作成しないでください。パフォーマンスに悪影響を与える可能性があります。Oracle XML DBにより重複したリソース構成ファイルが検出されると、エラーが発生します。
通常、1つのアプリケーションに対して使用するリソースを1つ構成します。1つのリソースを複数のアプリケーションで共有するには、異なるアプリケーションがリソースを様々な方法で構成できることが必要です。そのためには、複数のリソース構成ファイルを作成し、それらを同じリソースにマップします。これにより、各リソースはリソース構成リストという構成リストに関連付けられます。構成リストに含まれる構成は、リストに記載された順番に処理されます。
リポジトリ自体が、リポジトリ内のすべてのリソースの構成を意味する、リポジトリ全体の構成に対するリソース構成ファイルのリストを持っています。同じ構成ファイルをリポジトリ自体と特定のリソースの両方で使用しないでください。そうでない場合は、エラーが発生します。また、同じリソース構成ファイルが任意のリソース構成リストに複数回表示される場合にもエラーが発生します。
注意:
リポジトリ全体の構成で125を超えるリソース構成ファイルを作成しようとすると、エラーが発生します。
新規リソースのリソース構成リストは、新規リソースの親フォルダのすべてのリソース構成ファイルのconfiguration
要素に記述された情報に基づいています。該当する情報がない(構成ファイルがない、またはファイルにdefaultChildConfig
要素がない)場合は、リポジトリのリソース構成リストのconfiguration
要素が使用されます。その情報も欠落している場合は、新規リソースのリソース構成リストは空になります。
特定リソースの構成リストを表示する場合は、ビューRESOURCE_VIEW
の列RES
から要素/Resource/RCList
を抽出するか、PL/SQLプロシージャDBMS_RESCONFIG.getResConfigPath
を使用します。リポジトリの構成リストをまとめて表示する場合は、PL/SQLプロシージャDBMS_RESCONFIG.getRepositoryResConfigPath
を使用します。リポジトリ全体の構成リストを変更するには、ロールXDBADMIN
が必要です。
親トピック: Oracle XML DBリポジトリの構成
22.2 リソースの構成
Oracle XML DBリポジトリ・リソースの構成には、構成ファイルを作成し、そのファイルを構成リソースとしてリポジトリに追加し、および構成リソースをそれが構成するリソースまたはリポジトリ全体にマッピングすることが含まれます。
個々のリソースまたはリポジトリ全体(すべてのリソース)を構成するには、次のステップに従ってください。
- 構成を定義するリソース構成ファイルを作成します。このXMLファイルは、XML Schema
XDBResConfig.xsd
に準拠している必要があります。 - リソース構成ファイルを、それ自体をリソースである構成リソースとしてリポジトリに追加します。これを行うには、PL/SQL関数
DBMS_XDB_REPOS.createResource
を使用できます。 - この構成リソースを、この構成リソースが構成するリソースに、あるいはすべてのリソースに適用される場合はリポジトリにマップします。PL/SQLプロシージャ
DBMS_RESCONFIG.addResConfig
またはDBMS_RESCONFIG.appendResConfig
を使用して、個々のリソースをマップします。DBMS_RESCONFIG.addRepositoryResConfig
を使用して、リポジトリをまとめてマップします。 - コミットします。
注意:
リソース構成ファイルを使用する操作を実行する前に、COMMIT
操作を行う必要があります。それまでは、構成ファイルを使用するたびに、「ORA-22881 REFの参照先がありません」エラーが発生します。
PL/SQLパッケージDBMS_RESCONFIG
には、構成リストからの構成の削除、構成リスト内の構成へのパスのリストの取得などを行う、その他のプロシージャが記述されています。
注意:
他のリソースにより参照されているリソース構成ファイルを削除する場合、構成されているリソースにアクセスしようとするたびに「REF
の参照先がありません」エラーが発生します。
関連項目:
-
単純なリソース構成ファイルの例は、例22-1を参照してください。
-
完全な構成リソースの例は、リポジトリ・イベントの構成を参照してください。
-
DBMS_RESCONFIG
パッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。
親トピック: Oracle XML DBリポジトリの構成
22.3 共通の構成パラメータ
共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。
特定の構成の型に固有のパラメータについては、他の項で説明します。
- 構成要素ResConfig
リソース構成ファイルの最上位要素はResConfig
です。これを使用すると、リソース構成ファイルを無効または有効にできます。 - 構成要素defaultChildConfigおよびconfiguration
構成要素defaultChildConfig
はフォルダにのみ適用されます。これには、フォルダ内のすべての子リソースに適用する構成情報が保持されています。要素defaultChildConfig
には1つ以上のconfiguration
子要素があり、それぞれにフォルダ内のリソースに可能な構成が定義されています。 - 構成要素applicationData
要素applicationData
はアプリケーション固有のデータを格納します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素applicationData
内で必要な任意のXMLコンテンツを使用できます。
親トピック: Oracle XML DBリポジトリの構成
22.3.1 構成要素ResConfig
リソース構成ファイルの最上位要素はResConfig
です。これを使用すると、リソース構成ファイルを無効または有効にできます。
要素ResConfig
には、namespace
属性およびschemaLocation
属性の他に、オプションとしてenable
属性を含めることができます。属性の値をenable
からfalse
に設定し、リソース構成ファイルを無効にします。これにより、そのファイルにマップされたリソースには影響がなくなります。これは、アプリケーションの無効化やデバッグには便利です。enable
のデフォルト値はtrue
で、属性が存在しない場合に使用されます。
親トピック: 共通の構成パラメータ
22.3.2 構成要素defaultChildConfigおよびconfiguration
構成要素defaultChildConfig
はフォルダにのみ適用されます。これには、フォルダ内のすべての子リソースに適用する構成情報が保持されています。要素defaultChildConfig
には1つ以上のconfiguration
子要素があり、それぞれにフォルダ内のリソースに可能な構成が定義されています。
configuration
要素には、次の子要素があります。
-
pre-condition
(オプション): この要素はpath
要素(次を参照)で識別されたリソース構成がデフォルト構成として使用可能になるために満たす必要がある条件を指定します。要素pre-condition
がない場合、path
でターゲットにされているリソース構成ファイルはフォルダ内のすべてのリソースに適用されます。つまり、前提条件はTRUEとみなされます。pre-condition
要素には、オプションのexistsNode
子要素があります。existsNode
要素には、必須のXPath
子要素とオプションのnamespace
子要素があり、どちらも文字列です。これらの要素は、リソースの有無を確認する場合に使用するXPath 1.0式と名前空間をそれぞれ定義します。そのリソースが存在する場合は前提条件が満たされるため、path
で識別されるリソース構成ファイルは、フォルダ内のすべての子リソースのデフォルト・リソース構成ファイルとして使用されます。XPath
要素の第1コンポーネントはResource
である必要があります。注意:
要素
XPath
の複雑なXPath式は、パフォーマンスに悪影響を与える可能性があります。複数の
configuration
要素の前提条件がTRUEの場合、関連付けられたpath
要素により識別される各リソース構成ファイルは、フォルダ内のすべてのリソースに適用されます。 -
path
(必須): この要素は、要素pre-condition
で指定された前提条件を満たしている場合は必ず、新規リソースのデフォルトの構成として使用されるリソース構成ファイルへの絶対リポジトリ・パスを指定します。
通常、path
要素の値は、path
要素を含むファイルである現在のリソース構成ファイルへのパスです。例22-1は、リソース構成ファイルがリポジトリのパス/cm/app_rc.xml
にあるという前提でパスを示しています。この例では、コンテンツの型がxml
のResource
ノードが存在することが前提条件です。前提条件を満たした場合、例22-1のリソース構成ファイルは、構成ファイル(/cm/app_rc.xml
)と同じフォルダにあるすべてのリソースに適用されます。
例22-1リソース構成ファイル
<ResConfig xmlns="http://xmlns.oracle.com/xdb/XDBResConfig.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/xdb/XDBResConfig.xsd
http://xmlns.oracle.com/xdb/XDBResConfig.xsd">
<defaultChildConfig>
<configuration>
<pre-condition>
<existsNode>
<XPath>/Resource[ContentType="xml"]</XPath>
</existsNode>
</pre-condition>
<path>/cm/app_rc.xml<path>
</configuration>
</defaultChildConfig>
</ResConfig>
親トピック: 共通の構成パラメータ
22.3.3 構成要素applicationData
要素applicationData
はアプリケーション固有のデータを格納します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素applicationData
内で必要な任意のXMLコンテンツを使用できます。
イベント・ハンドラは、PL/SQL関数DBMS_XEVENT.getApplicationData
またはJava関数oracle.xdb.XMLType.getApplicationData
を使用して、イベント・リスナーのリソース構成ファイルのapplicationData
にあるデータにアクセスします。
例22-2に、Oracle Spatial and Graphアプリケーションで使用するapplicationData
要素を示します。
関連項目:
-
PL/SQLファンクション
DBMS_XEVENT.getApplicationData
の詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。 -
Java関数
oracle.xdb.XMLType.getApplicationData
の詳細は、Oracle Database XML Java APIリファレンスのXDBRepositoryEvent
クラスを参照してください。 -
イベント・リスナー用のリソース構成ファイルの例は、例30-1を参照してください。
例22-2 applicationData要素
<applicationData> <spatial:data xmlns:spatial="http://oracle/cartridge/spatial.xsd"> <spatial:xpos>5</spatial:xpos> <spatial:ypos>10</spatial:ypos> </spatial:data> </applicationData>
親トピック: 共通の構成パラメータ