ヘッダーをスキップ
Oracle® XML DB開発者ガイド
11gリリース2 (11.2)
B70200-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

22 Oracle XMLDBリポジトリの構成

この章では、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つのリソースを複数のアプリケーションで共有するには、異なるアプリケーションがリソースを様々な方法で構成できることが必要です。そのためには、複数のリソース構成ファイルを作成し、それらを同じリソースにマップします。これにより、各リソースはリソース構成リストという構成リストに関連付けられます。構成リストに含まれる構成は、リストに記載された順番に処理されます。

リポジトリ自体が、リポジトリ内のすべてのリソースの構成を意味する、リポジトリ全体の構成に対するリソース構成ファイルのリストを持っています。同じ構成ファイルをリポジトリ自体と特定のリソースの両方で使用しないでください。そうでない場合は、エラーが発生します。また、同じリソース構成ファイルが任意のリソース構成リストに複数回表示される場合にもエラーが発生します。


注意:

リポジトリ全体の構成で125を超えるリソース構成ファイルを作成しようとすると、エラーが発生します。

新規リソースのリソース構成リストは、新規リソースの親フォルダのすべてのリソース構成ファイルのconfiguration要素に記述された情報に基づいています。該当する情報がない(構成ファイルがない、またはファイルにdefaultChildConfig要素がない)場合は、リポジトリのリソース構成リストのconfiguration要素が使用されます。その情報も欠落している場合は、新規リソースのリソース構成リストは空になります。

特定リソースの構成リストを表示する場合は、ビューRESOURCE_VIEWの列RESから要素/Resource/RCListを抽出するか、PL/SQLプロシージャDBMS_RESCONFIG.getResConfigPathを使用します。リポジトリの構成リストをまとめて表示する場合は、PL/SQLプロシージャDBMS_RESCONFIG.getRepositoryResConfigPathを使用します。リポジトリ全体の構成リストを変更するには、ロールXDBADMINが必要です。

リソースの構成

Oracle XML DBリポジトリ・リソースまたはリポジトリをまとめて(リソースをすべて)構成するには、次の手順に従ってください。

  1. 構成を定義するリソース構成ファイルを作成します。このXMLファイルは、XML Schema XDBResConfig.xsdに準拠している必要があります。

  2. リソース構成ファイルを、それ自体をリソースである構成リソースとしてリポジトリに追加します。追加するには、PL/SQL関数DBMS_XDB.createResourceを使用できます。

  3. この構成リソースを、この構成リソースが構成するリソースに、あるいはすべてのリソースに適用される場合はリポジトリにマップします。PL/SQLプロシージャDBMS_RESCONFIG.addResConfigまたはDBMS_RESCONFIG.appendResConfigを使用して、個々のリソースをマップします。DBMS_RESCONFIG.addRepositoryResConfigを使用して、リポジトリをまとめてマップします。

  4. コミットします。


注意:

リソース構成ファイルを使用する操作を実行する前に、COMMIT操作を行う必要があります。それまでは、構成ファイルを使用するたびに、「ORA-22881 REFの参照先がありません」エラーが発生します。

PL/SQLパッケージDBMS_RESCONFIGには、構成リストからの構成の削除、構成リスト内の構成へのパスのリストの取得などを行う、その他のプロシージャが記述されています。


注意:

他のリソースにより参照されているリソース構成ファイルを削除する場合、構成されているリソースにアクセスしようとするたびに「REFの参照先がありません」エラーが発生します。


関連項目:


共通の構成パラメータ

この項では、共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。特定の構成の型に固有のパラメータについては、他の項で説明します。

構成要素ResConfig

リソース構成ファイルの最上位要素はResConfigです。namespace属性およびschemaLocation属性の他に、オプションとしてenable属性を含めることができます。属性の値をenableからfalseに設定し、リソース構成ファイルを無効にします。これにより、そのファイルにマップされたリソースには影響がなくなります。これは、アプリケーションの無効化やデバッグには便利です。enableのデフォルト値はtrueで、属性が存在しない場合に使用されます。

構成要素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にあるという前提でパスを示しています。この例では、コンテンツの型がxmlResourceノードが存在することが前提条件です。前提条件を満たした場合、例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を使用します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素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>

関連項目:

  • PL/SQL関数DBMS_XEVENT.getApplicationDataの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • Java関数oracle.xdb.XMLType.getApplicationDataの詳細は、『Oracle Database XML Java API Reference』XDBRepositoryEventクラスに関する項を参照してください。

  • イベント・リスナーのリソース構成ファイルの例は、例30-1「前提条件のあるJavaイベント・リスナーのリソース構成ファイル」を参照してください。