この章では、Oracle XML DBリポジトリを構成する方法について説明します。この章の内容は次のとおりです。
この章では、すべてのリポジトリ・リソースに適用される一般的な構成について説明します。特定のリソースの用途に関する構成パラメータについては説明していません。特に、イベント処理やXLinkおよびXInclude処理の管理に関する構成パラメータについては説明していません。
リソース構成は、イベント、MIMEタイプ・マッピング、サーブレット・パラメータ、XLinkおよびXInclude処理、デフォルトのACL仕様などに使用できる一般的なメカニズムです。
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で定義されているため、変更できません。
リソース構成ファイル自体がOracle XML DBリポジトリのリソースです。PL/SQLプロシージャDBMS_RESCONFIG.addResConfig
を使用して、構成ファイルにリソースをマップします。1つのリソース構成ファイルをリポジトリ内のすべてのリソースに適用することもできます。その場合は、PL/SQLプロシージャDBMS_RESCONFIG.addRepositoryResConfig
を使用して、リソースをまとめてリポジトリにマップします。
同じリソース構成ファイルを使用して、必要に応じて複数のリソースを構成できます。同一の構成が有効である場合は、このようにリソース間で構成ファイルを共有させることをお薦めします。これにより実行時のパフォーマンスを向上させることができます。また、1箇所で構成を更新した場合に変更が複数のリソースに適用されることにより、リポジトリ管理が簡略化されます。
複数の、同一のリソース構成ファイルを作成しないでください。パフォーマンスに悪影響を与える可能性があります。Oracle XML DBにより重複したリソース構成ファイルが検出されると、エラーが発生します。
通常、1つのアプリケーションに対して使用するリソースを1つ構成します。1つのリソースを複数のアプリケーションで共有するには、異なるアプリケーションがリソースを様々な方法で構成できることが必要です。そのためには、複数のリソース構成ファイルを作成し、それらを同じリソースにマップします。これにより、各リソースはリソース構成リストという構成リストに関連付けられます。構成リストに含まれる構成は、リストに記載された順番に処理されます。
リポジトリ自体が、リポジトリ内のすべてのリソースの構成を意味する、リポジトリ全体の構成に対するリソース構成ファイルのリストを持っています。同じ構成ファイルをリポジトリ自体と特定のリソースの両方で使用しないでください。使用すると、エラーが発生します。また、同じリソース構成ファイルが任意のリソース構成リストに複数回表示される場合にもエラーが発生します。
新規リソースのリソース構成リストは、新規リソースの親フォルダのすべてのリソース構成ファイルのconfiguration
要素に記述された情報に基づいています。該当する情報がない(構成ファイルがない、またはファイルにdefaultChildConfig
要素がない)場合は、リポジトリのリソース構成リストのconfiguration
要素が使用されます。その情報も欠落している場合は、新規リソースのリソース構成リストは空になります。
特定リソースの構成リストを表示する場合は、ビューRESOURCE_VIEW
の列RES
から要素/Resource/RCList
を抽出するか、PL/SQLプロシージャDBMS_RESCONFIG.getResConfigPath
を使用します。リポジトリの構成リストをまとめて表示する場合は、PL/SQLプロシージャDBMS_RESCONFIG.getRepositoryResConfigPath
を使用します。リポジトリ全体の構成リストを変更するには、ロールXDBADMIN
が必要です。
Oracle XML DBリポジトリ・リソースまたはリポジトリをまとめて(リソースをすべて)構成するには、次の手順に従ってください。
構成を定義するリソース構成ファイルを作成します。このXMLファイルは、XML Schema XDBResConfig.xsd
に準拠している必要があります。
リソース構成ファイルを、それ自体をリソースである構成リソースとしてリポジトリに追加します。追加するには、PL/SQLプロシージャDBMS_XDB.createResource
を使用します。
この構成リソースを、この構成リソースが構成するリソースに、あるいはすべてのリソースに適用される場合はリポジトリにマップします。PL/SQLプロシージャDBMS_RESCONFIG.addResConfig
またはDBMS_RESCONFIG.appendResConfig
を使用して、個々のリソースをマップします。DBMS_RESCONFIG.addRepositoryResConfig
を使用して、リポジトリをまとめてマップします。
コミットします。
注意: リソース構成ファイルを使用する操作を実行する前に、COMMIT 操作を行う必要があります。それまでは、構成ファイルを使用するたびに、「ORA-22881 REFの参照先がありません」エラーが発生します。 |
PL/SQLパッケージDBMS_RESCONFIG
には、構成リストからの構成の削除、構成リスト内の構成へのパスのリストの取得などを行う、その他のプロシージャが記述されています。
注意: 他のリソースにより参照されているリソース構成ファイルを削除する場合、構成されているリソースにアクセスしようとするたびに「REFの参照先がありません」エラーが発生します。 |
関連項目:
|
この項では、共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。特定の構成の型に固有のパラメータについては、他の項で説明します。
リソース構成ファイルの最上位要素はResConfig
です。namespace
属性およびschemaLocation
属性の他に、最上位要素にはオプションとしてenable
属性を含めることができます。属性の値をenable
からfalse
に設定し、リソース構成ファイルを無効にします。これにより、そのファイルにマップされたリソースには影響がなくなります。これは、アプリケーションの無効化やデバッグには便利です。enable
のデフォルト値はtrue
で、属性が存在しない場合に使用されます。
この構成要素はフォルダにのみ適用されます。この構成要素には、フォルダ内のすべての子リソースに適用させる構成情報が保持されています。要素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>
アプリケーション固有データを格納するには、要素applicationData
を使用します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素applicationData
に入れたい任意のXMLコンテンツを使用できます。イベント・ハンドラは、PL/SQL関数DBMS_XEVENT.getApplicationData
またはJava関数oracle.xdb.XMLType.getApplicationData
を使用して、イベント・リスナーのリソース構成ファイルのapplicationData
にあるデータにアクセスします。
例22-2に、Oracle Spatialアプリケーションで使用するapplicationData
要素を示します。
例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>
関連項目:
|