18.3 CSWエンジンの構成とデプロイ

このトピックでは、Catalog Services for the Web(特にCSW 2.0.2)の構成およびデプロイにフォーカスします。

「空間Webサービスのデプロイと構成」に記載の必要な操作を行っていることを確認してください。

CSWのAPIを使用すると、次のような操作を実行できます。

  • レコード・タイプ・ドメインおよびレコード・ビューの変換に関する情報の指定

  • DCMI (Dublin Core Metadata Initiative)レコードまたはISOレコード用のUSER_SDO_CSW_SERVICE_INFO表への移入

  • USER_SDO_CSW_SERVICE_INFO表からの削除によるレコード・タイプのパブリッシュの解除

  • CSWレコード・タイプおよびXML Query Full Textコンテキスト索引に対する権限のユーザーへの付与および取消し

CSWエンジンの構成には次の処理が伴います。

CSWの初期化

CSWを初期化する前に、次の権限をCSWスキーマに付与する必要があります。ここでは、MDMETTという名前のデータベース・ユーザーのスキーマがCSWスキーマです。

GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE, CTXAPP TO MDMETT;
GRANT EXECUTE ON CTXSYS.CTX_DDL TO MDMETT;
GRANT SELECT ON MDSYS.SDO_XSD_TABLE TO MDMETT;
GRANT SELECT,ALTER ON MDSYS.md_identifier_sq$ TO MDMETT;

Oracle SpatialでCatalog Services for the Webを使用するには、SDO_CSW.INITIALIZE_CSWプロシージャをコールしてCSW 2.0.2サービスを初期化する必要があります。このプロシージャでは、ユーザー表がまだない場合は作成され、索引が準備されます。たとえば:

DECLARE
BEGIN
sdo_csw.initialize_csw(
  'MDMETT',
  '2.0.2', -- must be 2.0.2
  1, -- for DCMI
  'MY_CSW_CATALOG_TABLE',
  4326,
  1
  );
  END;
  /

CSWデータベース・インスタンスがインスタンス化されていない場合、SDO_CSW.INITIALIZE_CSWプロシージャをコールします。このプロシージャでCSWスキーマが初期化され、CSWカタログ表と適切な索引が存在しなければそれらが作成されます。たとえば、前述の例では、MDMETTスキーマをCSWスキーマとして有効にし、CSWカタログ表としてMY_CSW_CATALOG_TABLE表を作成して、この表に(空間およびXML Query Full Text)索引を作成します。

SDO_CSW.INITIALIZE_CSWプロシージャは、CSWカタログ表と必要な索引がすでに存在する場合は、CSWスキーマとカタログ表の単なる登録のみにも使用できます。詳細と例については、「SDO_CSW.INITIALIZE_CSW」リファレンス・トピックを参照してください。

CSWデータ・ソースの設定

CSWスキーマを作成したら、「WebLogicデータ・ソースの追加」で説明する指示に従って、Oracle WebLogic ServerでCSWエンジンのデータ・ソースを設定します。

ノート:

各データベースではCSWスキーマを複数保持でき、各スキーマはWebLogic Serverの1つのデータ・ソースに対応します。また、WebLogic Serverでは、CSW用に構成されたデータ・ソースを複数保持できます。各データ・ソースには異なるURLを介してアクセスでき、URLの最後の部分はWebLogic Serverの構成されたデータ・ソース名に対応します。cswdata1という名前のCSWデータ・ソースを使用したサンプル・リンクを次に示します。

http://localhost:80/oraclespatial/csw/cswdata1?service=CSW& version=2.0.2&request=GetCapabilities

CSWConfig.xmlファイルの編集

CSW管理コンソールを使用して、次の設定の一部またはすべてを変更する必要がある場合あります。

  • log_levelOFFSEVEREWARNINGINFO(デフォルト)、CONFIGFINEFINERFINESTALLを指定できます(ログ・ファイルに格納される情報量はこの順に多くなります)。

  • size_limit。ログ・ファイルに書き込むおおよその最大量(メガバイト)を指定する整数。この値を超えると、新しいファイルが作成され、ログ・ローテーションが行われます。size_limitが0(ゼロ)の場合、無制限です。デフォルト値は10です。

  • file_count。循環する出力ファイル数を指定します。ログ・ファイルが占めるディスク領域を制限するために古いログ・ファイルが削除されます。デフォルト値は10です。

  • ServiceIdentificationおよびServiceProvider。CSW GetCapabilitiesレスポンスで配信する適切な内容を提供します。この2つの値を、Oracle Spatial CSWサービスが提供するデフォルト値以外の値にする必要がある場合、CSW GetCapabilitiesレスポンスで正しい情報が返されるように、コメントを解除して必要な編集を行う必要があります。このセクションがコメント設定のままの場合、デフォルトの内容がクライアント側に配信されます。

CSWのデータのロード

Oracle Spatialによって提供されるクライアント側Javaローダーは、次の.jarファイル内にあります(デフォルトのSpatialインストール・ディレクトリが$ORACLE_HOME/mdであるものとします)。

$ORACLE_HOME/md/jlib/sdocswloader.jar

CSWスキーマを初期化したら、sdocswloader.jar Javaパッケージを使用してCSW 2.0.2データをロードできます。このパッケージは、CSW XMLレコードを含む大規模なファイルを取り込み、ユーザーCSW表にロードします。このパッケージの使用方法の詳細は、「CSW 2.0.2データのロード(DCMI)」 (DCMIプロファイルの場合)および「CSW 2.0.2データのロード(ISO)」 (ISOプロファイルの場合)を参照してください。

CSWのデプロイのテスト

CSWエンジンをデプロイし、データ・ソースを作成したら、CSWエンジンのテスト問合せのセットでデプロイメントをテストできます。次の例は、CSW 2.0.2のGetCapabilities問合せです。

http://machine-name:port/oraclespatial/csw/<data source name>?request=GetCapabilities&service=CSW&version=2.0.2

SpatialおよびXQFT索引の作成およびメンテナンス

空間索引およびXML Query Full Text (XQFT)索引を手動で作成または維持する必要がある場合があります。これらの索引は、SDO_CSW.INITIALIZE_CSWプロシージャの最初の構文によって自動的に作成され(存在しない場合)、手動で作成する必要はありません。ただし、次のシナリオのように索引を削除して再作成したり、索引を同期化する必要がある場合があります。

  • シナリオ1: SDO_CSW.INITIALIZE_CSWプロシージャを使用した際、空間索引の作成が正常に完了しませんでした。

  • シナリオ2: SDO_CSW.CREATE_SPATIAL_IDXプロシージャをコールした際、空間索引の作成が正常に完了しませんでした。

  • シナリオ3: 「索引を含むパーティションの交換」に記載のようななんらかの理由で空間索引が無効になります

  • シナリオ4: CSWユーザー・データ表に対する大幅な挿入、更新または削除操作がありました。

シナリオ1、2または3の理由で空間索引を再作成または再構築する必要がある場合、まず(SQL文DROP INDEX <index_name> [FORCE]を使用して)空間索引を削除し、SDO_CSW.CREATE_SPATIAL_IDXプロシージャを使用して空間索引を再作成する必要があります。

シナリオ4の場合、XQFT索引に対してSDO_CSW.SYNC_INDEXをコールする方が速いです。この場合、既存のXQFT索引が自動的に更新されます。ただし、XQFT索引を再作成する必要がある場合、SDO_CSW.CREATE_XQFT_IDXプロシージャをコールして既存のXQFT索引を削除し、新しい索引を作成できます。