ヘッダーをスキップ
Oracle Application Server MapViewerユーザーズ・ガイド
10g(10.1.3.1.0)
B40016-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1 OracleAS MapViewerの概要

Oracle Application Server MapViewer(OracleAS MapViewer)は、Oracle SpatialまたはOracle Locator(Locatorとも呼びます)によって管理される空間データを使用してマップをレンダリングするための、プログラム可能なツールです。OracleAS MapViewerには、空間データの問合せおよび地図レンダリングの複雑さを意識させず、より上級のユーザーに対してはカスタマイズ可能なオプションを提供するツールが備わっています。これらのツールは、プラットフォーム固有の方法でデプロイでき、マップ・レンダリング・アプリケーションと統合するように設計されています。

この章の主な項目は、次のとおりです。

1.1 OracleAS MapViewerの概要

OracleAS MapViewerは、Oracle Application Serverの一部として出荷されます。その主要な提供物は、Oracle Application Serverの場合と同様に、J2EEコンテナにデプロイできるJ2EEアプリケーションです。OracleAS MapViewerには、次の主要なコンポーネントが含まれています。

コア・レンダリング・エンジンは、Java Database Connectivity(JDBC)によってOracleデータベースに接続します。また、Oracleデータベースからマップ・メタデータ(Map Builderツールによって作成されたマップ定義、スタイル指定ルール、記号など)を読み、レンダリング・オペレーションの際にそのメタデータを適用して空間データを取得します。

XML APIは、アプリケーションの開発者に対して、mapリクエストをOracleAS MapViewerに発行し、mapレスポンスを受け取るための多様なインタフェースを提供します。JavaBeanベースのAPIおよびPL/SQL APIを使用すると、MapViewerのレンダリング機能にアクセスできます。JavaScript APIを使用すると、MapViewerのOracle Maps機能を使用する、インタラクティブ性の高いWebアプリケーションを作成できます。

Map Builderツールを使用すると、空間データベース内のマップ、テーマおよび記号メタデータの作成と管理のプロセスを簡略化することができます。このツールについては、第7章を参照してください。

MapViewerのコア機能の上に構築されたOracle Mapsでは、map画像タイルをキャッシングするマップ・キャッシュ・サーバーと、データベースからライブ・データを取り出してストリーミングしインタラクティブな地物としてマップ上に表示する対象地物(FOI)サーバーを使用します。AjaxベースのJavaScript APIとOracle Mapsを併用すると、高度なマッピング・ソリューションが得られます。Oracle Mapsでは、高度なカスタマイズ機能および問合せ機能もサポートしています。

OracleAS MapViewerの主要な利点は、Oracle Spatial、Oracle Locator、およびOracle Fusion Middlewareとの統合にあります。現在のリリースのOracleAS MapViewerでは、Oracle Spatialに格納されている2次元ベクター・ジオメトリと、Oracle Spatialのトポロジおよびネットワーク・データ・モデル内のデータをサポートしています。Oracle MapViewerは、Open Geospatial Consortium(OGC)に準拠したWeb Map Service(WMS)サーバーでもあります。

1.1.1 OracleAS MapViewerの基本的なアクション・フロー

OracleAS MapViewerの基本的なアクション・フローには、クライアントによってマップまたはOracleAS MapViewer管理アクションのどちらがリクエストされた場合にも、2つの手順から構成されるリクエスト/レスポンス・モデルがあります。

mapリクエストの場合:

  1. クライアントによってマップがリクエストされ、マップ名、データソース、中心位置、マップ・サイズおよびオプションでマップ最上部に表示するその他のデータが渡されます。

  2. サーバーにより、map画像(または画像のURL)、マップの最小外接矩形(MBR)およびリクエストのステータスが戻されます。

OracleAS MapViewer管理リクエストの場合:

  1. クライアントによってOracleAS MapViewer管理アクションがリクエストされ、特定タイプのリクエストおよび適切な入力値が渡されます。

  2. サーバーにより、リクエストのステータスおよびリクエストされた情報が戻されます。

図1-1では、OracleAS MapViewerの基本的なアクション・フローを示しています。

図1-1 OracleAS MapViewerの基本的なアクション・フロー

図1-1の説明は図の下
「図1-1 OracleAS MapViewerの基本的なアクション・フロー」の説明

1.1.2 OracleAS MapViewerのアーキテクチャ

図1-2では、OracleAS MapViewerのアーキテクチャを示しています。

図1-2 OracleAS MapViewerのアーキテクチャ

図1-2の説明は図の下
「図1-2 OracleAS MapViewerのアーキテクチャ」の説明

図1-2では次のことが示されています。

  • OracleAS MapViewerは、Oracle Application Server中間層の一部です。

  • OracleAS MapViewerにはレンダリング・エンジンが含まれます。

  • OracleAS MapViewerは、HTTPプロトコルを使用して、クライアントのWebブラウザまたはアプリケーションと通信できます。

  • OracleAS MapViewerは、データベースへのJDBCコールによって、空間データ・アクセス(Oracle SpatialとOracle Locatorのデータの読取りおよび書込み)を実行します。

  • データベースには、マッピング・メタデータの他に、Oracle SpatialまたはOracle Locatorが含まれます。

1.2 OracleAS MapViewerを使用する前に

OracleAS MapViewerの使用を開始するには、次の手順を実行します。

  1. OracleAS MapViewerのインストールおよびデプロイの前後いずれかで、第2章に目を通し、重要な用語および概念を確実に理解しておきます。

  2. 前提条件となるソフトウェア(1.3項を参照)を所有していることを確認します。

  3. OracleAS MapViewerをインストール(必要な場合)およびデプロイします(1.4項を参照)。

  4. OracleAS MapViewerを使用して、基本タスクをいくつか実行します。たとえば、Oracle Mapsアプリケーション(第8章を参照)を作成します。

  5. オプションとしてMap Builderツール(第7章を参照)を使用し、スタイル、テーマおよびマップと、それぞれのオプションについて理解しておきます。また、空間データをプレビューすることもできます。

1.3 OracleAS MapViewerのソフトウェア要件

OracleAS MapViewerを使用するには、次のJavaパッケージおよびOracle製品(リストしたリリース番号以上)が必要です。

また、OracleAS MapViewerではJ2SE SDKでHeadless AWTメカニズムがサポートされています。これによって、OracleAS MapViewerは、X11 DISPLAY変数を設定することなく、LinuxシステムまたはUNIXシステム上で動作できます。LinuxシステムまたはUNIXシステムでAWT Headlessモードを有効にするには、コマンドラインに次のように指定してOracleAS MapViewerを起動します。

-Djava.awt.headless=true

1.4 OracleAS MapViewerのインストールおよびデプロイ

この項では、中間層で動作させるOracleAS MapViewerのインストール(必要な場合)およびデプロイ方法について説明します。前述のように、OracleAS MapViewerはJ2EE Webアプリケーションとして動作し、コンテナのHTTPポートで着信mapリクエストをリスニングします。

OracleAS MapViewerは、完全なOracle Application Server環境に、またはOC4Jのスタンドアロン・インストールにデプロイできます。ニーズに合ったいずれかの手順を選択します。

MapViewerのデプロイ先およびデプロイ方法とは無関係に、アプリケーション・サーバー(またはスタンドアロンOC4J)はデプロイ中にMapViewer用のホーム・ディレクトリを作成します。このディレクトリは通常、次のディレクトリの下にあります。

$ORACLE_HOME/j2ee/<oc4j_instance_name>/applications

$ORACLE_HOMEは、Application ServerまたはスタンドアロンOC4Jインストールの最上位ディレクトリです。<oc4j_instance_name>の値は通常、デプロイ先がスタンドアロンOC4Jの場合はhome、デプロイ先が完全なOracleASインストールの場合はターゲットOC4Jインスタンスの名前です。このMapViewerディレクトリは、通常mapviewerという名前(またはMapViewerデプロイ先のコンテキスト・パスと同じ名前)であり、多数のサブディレクトリが存在します。デバッグ、管理作業または手動による構成を実行する場合は、それらサブディレクトリのいくつかに対する認識が必要なことがあります。

MapViewerデプロイ先の主要なサブディレクトリは、次のとおりです。

/mapviewer
   sql/
   web/
       fsmc/
       WEB-INF/
            lib/
            conf/
            log/
            mapcache/
            classes/
            admin/

ディレクトリ/mapviewer/sqlに含まれる一部のSQLスクリプトは、MapViewer PL/SQL APIパッケージをデータベースにインストールする際に必要です。ディレクトリ/mapviewer/web/fsmcには、Oracle Maps用のJavaScript APIライブラリといくつかのチュートリアルが含まれています。ディレクトリ/mapviewer/web/WEB-INFとそのサブディレクトリには、一連のライブラリと、MapViewerの管理および構成用ファイルが含まれています。

MapViewerを正常にデプロイした後、GeoRasterテーマを使用してGeoRasterデータを表示する場合は、特定のJava Advanced Imaging(JAI)ライブラリ・ファイルがMapViewer Javaクラスパス内にあることの確認が必要なことがあります。該当するライブラリ・ファイルは、jai_core.jarjai_codec.jarおよびjai_imageio.jarであり、完全なOracle Application ServerまたはOracleデータベース・インストール内の、通常はOracle interMediaファイル用のディレクトリ下にあります。それらのファイルは、MapViewer WEB-INF/libディレクトリにコピーできます。

1.4.1 Oracle Application Server環境におけるOracleAS MapViewerのデプロイ

すでにOracle Application Serverバージョン10.1.3以上を正常にインストールしている場合は、Oracle Enterprise Manager Server Control Webインタフェースを使用してOracleAS MapViewerをデプロイできます。主な手順は次のとおりです。

  1. MapViewerのデプロイ先としてOC4Jインスタンスを選択します。既存のOC4Jインスタンスを選択することもできますし、MapViewer専用の新規インスタンスを作成することもできます。必須ではありませんが、MapViewer用の新規インスタンスを作成するようお薦めします。

  2. mapviewer.earファイルを探します。このファイルは、Oracle Application Serverソフトウェアに同梱されているか、バージョン10.1.3.1の場合はOTNからダウンロードできます。

  3. Server Control Webインタフェースを使用し、選択したOC4Jインスタンスにmapviewer.earファイルをデプロイするか、Oracle Application Serverのコマンドラインadminツールを使用してMapViewer(または他の任意のJ2EEアプリケーション)をデプロイします。adminツールの使用については、『Oracle Application Server管理者ガイド』を参照してください。

MapViewerのデプロイを開始するには、図1-3のようにOracleAS Server Controlページ(デフォルトのホームOC4Jインスタンスが選択されている)に移動し、必要なOC4Jインスタンスを選択します。

図1-3 MapViewerのデプロイの開始

図1-3の説明は図の下
「図1-3 MapViewerのデプロイの開始」の説明

「デプロイ」をクリックして図4のページを表示し、mapviewer.earファイルの位置(図内ではtmpという名前のディレクトリ)を入力します。

図1-4 mapviewer.earの位置の指定

図1-4の説明は図の下
「図1-4 mapviewer.earの位置の指定」の説明

「次」をクリックして図1-5のページを表示し、アプリケーションの名前を指定します。

図1-5 アプリケーション名の指定

図1-5の説明は図の下
「図1-5 アプリケーション名の指定」の説明

「アプリケーション名」には、mapviewerと指定します。「コンテキスト・ルート」はデフォルト時、/mapviewerに設定されます。必要不可欠な場合を除き、コンテキスト・ルート値は変更しないでください。

「次」をクリックして、「デプロイ設定」ページを表示します。通常、このページ内の設定値は変更する必要がありません。

「デプロイ設定」ページで「デプロイ」をクリックし、MapViewerのデプロイを開始します。デプロイが正常に実行されると、「確認」ページが表示され、アプリケーションが正常にデプロイされたことが示されます。

デプロイが完了したら、1.4.3項に進んでください。

1.4.2 OC4Jのスタンドアロン・インストールでのOracleAS MapViewerのインストール

OC4Jのスタンドアロン・インストールでOracleAS MapViewerをインストールおよびデプロイするには、システムにOC4Jがインストールされている必要があります。スタンドアロンOC4Jインストール・キットは、単一のZIPファイルであり、OTNからダウンロードできます。それには、Oracle Container for J2EEと軽量Webサーバーが含まれています。このファイルを解凍した後は、ディレクトリ$OC4J_HOME/j2ee/homeからコマンドjava –jar oc4j.jarを入力し、OC4Jインスタンスを起動できます。$OC4J_HOMEは、インストール・ファイルを解凍した最上位ディレクトリです。

OC4Jが正しく起動し、機能するには、環境パス内にJREインストールではなくJava 1.5 SDKインストールが含まれている必要があります。

スタンドアロンOC4Jバージョン10.1.3(以上)には、独自のServer Control Webインタフェースが備わっています。そのため、Server Control Webページにログインすると、MapViewerのデプロイは1.4.1項での説明とほぼ同じになります。1つ異なる点は、単一のスタンドアロンOC4Jインスタンスで動作することになるため、他のOC4Jインスタンスを選択できない点です。

デプロイが完了したら、1.4.3項に進んでください。

1.4.3 MapViewerのデプロイ後

MapViewerをOracle Application ServerまたはスタンドアロンOC4Jに正常にデプロイした後は、1.4.3.1項に従って、MapViewerが実際に動作しているか否かを確認します。そのWebインタフェース、特に管理ページに慣れておくのもよい考えです。

また、1.4.3.2項に従って、SQLスクリプトを1つまたは複数個実行する必要もあります。

1.4.3.1 デプロイが正常に実行されたかどうかの確認

OracleAS MapViewerサーバーが正しく起動したかどうかをテストするには、OC4Jインスタンスをブラウザに表示します。たとえば、OracleAS MapViewerがwww.xyzabc.comというシステムにインストールされており、HTTPポートが8888である場合、次のURLを入力し、単純なバージョン取得リクエストを指定して、OracleAS MapViewerサーバーを起動します。

http://www.xyzabc.com:8888/mapviewer/omserver?getv=t

MapViewerは、正しく動作していると、次のようなバージョンおよびビルド番号を示すレスポンス・テキスト文字列を即時返送します。

Ver10131_B060225

実際のバージョンおよびビルド番号には、インストールされたバージョンが反映されます。

サーバーが正しく起動および初期化されていない場合は、レスポンスが戻されないか、または「500 内部サーバー・エラー」というメッセージが表示されます。

レスポンス・メッセージに「[oms] MapServerが利用できません。しばらくしてから再試行してください。」という表現が含まれている場合、OracleAS MapViewerサーバーは初期化中であり、処理にはさらに時間がかかることを意味している可能性があります(たとえば、システムが遅いか、構成ファイルで複数の事前定義済データソースが指定されているため、MapViewerが該当するデータベースへの接続を試行している)。この場合、少なくとも数秒待てば、そのリクエストを再び試行できます。

ただし、このレスポンス・メッセージの受信が続く場合は、デプロイに問題がある可能性があります。スタンドアロンOC4Jデプロイメント用のOC4Jコンソールか、Oracle Application Serverの完全デプロイメント用のOC4Jインスタンスのリダイレクトされた出力/エラー・ログ・ファイルに、エラー・メッセージがないかチェックします。この問題の一般的な原因は、次のとおりです。

  • UNIXまたはLinuxオペレーティング・システムで、Java仮想マシン(JVM)が–Djava.awt.headless=trueオプションを指定して起動されず、DISPLAY環境変数が設定されていません。このため、OracleAS MapViewerサーバーが、UNIXシステムとLinuxシステムでX11ウィンドウ・システムに依存するJavaグラフィックス・ライブラリにアクセスすると、障害が発生します。

  • mapviewer.earファイルが、互換性のないバージョンのOracle Application ServerまたはスタンドアロンOC4Jにデプロイされています。MapViewer 10.1.3.1は、Application Server(またはスタンドアロンOC4J)10.1.3以上にデプロイする必要があります。それより前のバージョンのApplication ServerまたはOC4Jでは、正しく動作しません。

1.4.3.2 SQLスクリプトの実行

この項で説明するSQLスクリプトのいくつかは、MDSYSユーザーとして接続されているときに実行する必要があります。実行する各スクリプトは、MapViewerが空間データのレンダリングを実行することになる各ターゲットのOracleデータベース上で実行する必要があります。

MapViewerは、一連のシステム・ビューを使用して、必要なマッピング用メタデータをターゲット・データベースに格納します。ターゲット・データベースとは、Oracle SpatialまたはOracle Locator(リリース8.1.6以上)がインストールされており、OracleAS MapViewerがマップをレンダリングする際の元になるデータベースです。MapViewerに必要なシステム・ビューは、次のとおりです。

  • USER_SDO_MAPS

  • USER_SDO_THEMES

  • USER_SDO_STYLES

  • USER_SDO_CACHED_MAPS

USER_SDO_CACHED_MAPSビューは、Oracle Maps機能が使用します。これには、マップ・タイル・キャッシュ・インスタンスの定義が格納されます。このビューは、MDSYSユーザーとして接続されているときに次のスクリプトを実行し、手動で作成する必要があります。

$MV_HOME/web/WEB-INF/admin/mcsdefinition.sql

ターゲット・データベースがリリース9.2以上の場合、他の3つのビュー(SER_SDO_MAPS、USER_SDO_THEMES、USER_SDO_STYLES)は自動的に作成され、移入されます。ただし、ターゲット・データベースのリリース番号が9.2未満の場合、該当するビューはMDSYSユーザーとして接続されているときに次のスクリプトを実行し、手動で作成して移入する必要があります。

$MV_HOME/web/WEB-INF/admin/mapdefinition.sql

$MV_HOME/web/WEB-INF/admin/defaultstyles.sql

1.5 MapViewerの管理

この項では、MapViewer管理ページの概要と、ユーザーが実行できる管理および構成タスクの一部(新規データソースの追加、Oracle Mapsが使用するマップ・キャッシュ・インスタンスの管理、ロギング・レベルの設定など)について説明します。

1.5.1 MapViewer管理ページへのログイン

MapViewerが正しく動作していることを確認したら、MapViewer管理ページにログインします。そのためには、まずMapViewerの「ようこそ」ページ(通常はhttp://<host>:<port>/mapviewer<host>および<port>は、インストールの正しい値に置き換えてください)を表示します。MapViewerの「ようこそ」ページを、図1-6に示します。

図1-6 MapViewerの「ようこそ」ページ

図1-6の説明は図の下
「図1-6 MapViewerの「ようこそ」ページ」の説明

右上の管理アイコンまたは下部の該当するテキスト・リンクをクリックします。ログイン・プロンプトが表示され、MapViewer管理ページに対するユーザー名とパスワードが尋ねられます。

ユーザー名: oc4jadminと入力します。

パスワード: OracleASまたはOC4Jスタンドアロン・インストールのServer Controlページにログインする際に使用するパスワードを入力します。

ログインすると、図1-7に示すMapViewer管理ページが表示されます。

図1-7 MapViewer管理ページ

図1-7の説明は図の下
「図1-7 MapViewer管理ページ」の説明

このページを使用すると、自サイトに固有な要件に合せたMapViewerの構成、事前定義済データソースの追加(MapViewerの起動時に指定されたターゲット・データベースに自動的に接続されることが目的)、マップ・キャッシュ・インスタンスの管理などの管理タスクを実行できます。構成タスクの詳細は1.5.2項、管理タスクについては1.5.3項を参照してください。

1.5.2 OracleAS MapViewerの構成

動作中のOracleAS MapViewerに関するデフォルト構成設定が適切でない場合、$ORACLE_HOME/lbs/mapviewer/web/WEB-INF/confディレクトリに格納されているOracleAS MapViewer構成ファイルmapViewerConfig.xmlを編集することで、OracleAS MapViewerを構成できます。このファイルは、テキスト・エディタまたはOracleAS MapViewerの管理ページでも変更できます。

このファイルを変更した後、変更を有効にするには、OC4Jを再起動する必要があります。ただし、次のいずれかが当てはまる場合は、かわりにOracleAS MapViewerの管理ページを使用し、(他のアプリケーションがデプロイされ、動作している可能性のあるOC4Jインスタンス全体ではなく)OracleAS MapViewerサーブレットのみを再起動できます。

  • OracleAS MapViewerをOC4Jのスタンドアロン・インスタンスとともにインストールした場合

  • OracleAS MapViewer OC4JインスタンスとOracle Application Serverが、1つのOC4Jプロセスしか実行せず(デフォルト)、クラスタ化されない(つまり、アイランド内にない)ように構成されている場合

    OracleAS MapViewerを、複数のプロセスを持つ(つまり、同一ホスト上に複数の物理JVMを持つ)OC4Jインスタンスにデプロイした場合、またはクラスタ・アイランド内にある(複数のホスト上で複数のOC4Jインスタンスが実行されている)OC4Jインスタンスにデプロイした場合、OracleAS MapViewer構成ファイルに対する変更をすべてのOracleAS MapViewerサーバーで有効にするには、そのOC4Jインスタンス自体を再起動する必要があります。クラスタ化されたインスタンスの場合は、そのクラスタ内の各ホストのOC4Jインスタンスについて、OracleAS MapViewerディレクトリ階層のOracleAS MapViewer構成ファイルを変更することも必要になります。リポジトリベースの中間層クラスタリングの詳細は、『Oracle Application Server高可用性ガイド』を参照してください。

OracleAS MapViewer構成ファイルでは、次の情報がXML形式で定義されます。

  • ログ情報。<logging>要素で定義されます(1.5.2.1項を参照)。

  • map画像ファイル情報。<save_images_at>要素で定義されます(1.5.2.2項を参照)。

  • 管理リクエスト制限。<ip_monitor>要素で定義されます(1.5.2.3項を参照)。

  • ファイアウォールを隔てた外部情報にアクセスするためのWebプロキシ情報。<web_proxy>要素で定義されます(1.5.2.4項を参照)。

  • グローバル・マップ「ルック・アンド・フィール」構成。<global_map_config>要素で定義されます(1.5.2.5項を参照)。

  • 内部空間データ・キャッシュの設定値。<spatial_data_cache>要素で定義されます(1.5.2.6項を参照)。

  • カスタム・イメージ・レンダラ登録。<custom_image_renderer>要素で定義されます(付録Cを参照)。

  • 永続mapデータソース。<map_data_source>要素で定義されます(1.5.2.12項を参照)。

  • セキュリティ構成。<security_config>要素で定義されます。

  • WMSサービス構成。<wms_config>要素で定義されます。

  • 外部属性データ・プロバイダ登録。<ns_data_provider>要素で定義されます。

  • マップ・キャッシュ・サーバー構成。<map_cache_server>要素で定義されます。

別途指定されていないかぎり、mapViewerConfig.xmlファイルのすべてのパス名は、ファイルが格納されているディレクトリに対する相対パスです。

例1-1は、mapViewerConfig.xmlファイルの例を示しています。

例1-1 OracleAS MapViewer構成ファイルの例

<?xml version="1.0" ?>
<!-- This is the configuration file for OracleAS MapViewer. -->
<!-- Note: All paths are resolved relative to this directory (where
           this config file is located), unless specified as an absolute
           path name.
 -->

<MapperConfig>

  <!-- ****************************************************************** -->
  <!-- ************************ Logging Settings ************************ -->
  <!-- ****************************************************************** -->

  <!-- Uncomment the following to modify logging. Possible values are:
       log_level = "fatal"|"error"|"warn"|"info"|"debug"|"finest"
                 default: info) ;
       log_thread_name = "true" | "false" ;
       log_time = "true" | "false" ;
       one or more log_output elements.
  -->
  <!--
    <logging log_level="info" log_thread_name="false"
             log_time="true">
       <log_output name="System.err" />
       <log_output name="../log/mapviewer.log" />
    </logging>
  -->

  <!-- ****************************************************************** -->
  <!-- ********************** Map Image Settings ************************ -->
  <!-- ****************************************************************** -->

  <!-- Uncomment the following only if you want generated images to
       be stored in a different directory, or if you want to customize
       the life cycle of generated image files.

       By default, all maps are generated under
       $ORACLE_HOME/lbs/mapviewer/web/images.

       Images location-related attributes:
       file_prefix: image file prefix, default value is "omsmap"
       url:  the URL at which images can be accessed. It must match the 'path'
             attribute below. Its default value is "%HOST_URL%/mapviewer/images"
       path: the corresponding path in the server where the images are
             saved; default value is "%ORACLE_HOME%/lbs/mapviewer/web/images"

       Images life cycle-related attributes:
       life: the life period of generated images, specified in minutes.
             If not specified or if the value is 0, images saved on disk will
             never be deleted.
       recycle_interval:  this attribute specifies how often the recycling
             of generated map images will be performed. The unit is minute.
             The default interval (when not specified or if the value is 0)
             is 8*60, or 8 hours.

   -->
  <!--
   <save_images_at  file_prefix="omsmap"
                   url="http://mypc.mycorp.com:8888/mapviewer/images"
                   path="../web/images"
   />
  -->

  <!-- ****************************************************************** -->
  <!-- ********************* IP Monitoring Settings ********************* -->
  <!-- ****************************************************************** -->

  <!-- Uncomment the following to enable IP filtering for administrative
        requests.
    Note:
    - Use <ips> and <ip_range> to specify which IPs (and ranges) are allowed.
      Wildcard form such as 20.* is also accepted. Use a comma-delimited
      list in <ips>.

    - Use <ips_exclude> and <ip_range_exclude> for IPs and IP ranges
      prohibited from accessing eLocation.

    - If an IP falls into both "allowed" and "prohibited" categories, it is
      prohibited.

    - If you put  "*" in an <ips> element, then all IPs are allowed, except
      those specified in <ips_exclude> and <ip_range_exclude>.
      On the other hand, if you put "*" in an <ips_exclude> element, no one
      will be able to access MapViewer (regardless of whether an IP is in
      <ips> or <ip_range>).

    - You can have multiple <ips>, <ip_range>, <ips_exclude>, and
      <ip_range_exclude> elements under <ip_monitor>.

    - If no <ip_monitor> element is present in the XML configuration
      file, then no IP filtering will be performed (all allowed).

    - The way MapViewer determines if an IP is allowed is:

          if(IP filtering is not enabled) then allow;
          if(IP is in exclude-list) then not allow;
          else if(IP is in allow-list) then allow;
          else not allow;
   -->

  <!--
     <ip_monitor>
          <ips> 138.1.17.9, 138.1.17.21, 138.3.*, 20.* </ips>
          <ip_range> 24.17.1.3 - 24.17.1.20 </ip_range>
          <ips_exclude> 138.3.29.* </ips_exclude>
          <ip_range_exclude>20.22.34.1 - 20.22.34.255</ip_range_exclude>
     </ip_monitor>
   -->

  <!-- ****************************************************************** -->
  <!-- ********************** Web Proxy Setting  ************************ -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to specify the Web proxy setting.
       This is only needed for passing background image URLs to
       MapViewer in map requests or for setting a logo image URL, if
       such URLs cannot be accessed without the proxy.
   -->

  <!--
    <web_proxy host="www-proxy.my_corp.com"  port="80" />
  -->

  <!-- ****************************************************************** -->
  <!-- *********************** Security Configuration ******************* -->
  <!-- ****************************************************************** -->
  <!-- Here you can set various security related configurations of MapViewer.
  -->

  <security_config>
    <disable_direct_info_request> false </disable_direct_info_request>
  </security_config>

  <!-- ****************************************************************** -->
  <!-- *********************** Global Map Configuration ***************** -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to specify systemwide parameters
       for generated maps. You can specify your copyright note, map title, and
       an image to be used as a custom logo shown on maps. The logo image must
       be accessible to this MapViewer and in either GIF or JPEG format.
       Notes:
         -  To disable a global note or title, specify an empty string ("") for
            the text attribute of <note> and <title> element.
         - position specifies a relative position on the map where the
                  logo, note, or title  will be displayed. Possible values are
                  NORTH, EAST, SOUTH, WEST, NORTH_EAST, SOUTH_EAST,
                  SOUTH_WEST, NORTH_WEST, and CENTER.
         - image_path specifies a file path or a URL (starts with "http://")
                    for the image.

       <rendering> element attributes:
       - Local geodetic data adjustment: If allow_local_adjustment="true",
         MapViewer automatically performs local data
         "flattening" with geodetic data if the data window is less than
         3 decimal degrees. Specifically, MapViewer performs a simple
         mathematical transformation of the coordinates using a tangential
         plane at the current map request center.
         If allow_local_adjustment="false" (default), no adjustment is
         performed.
       - Automatically applies a globular map projection (geodetic data only):
         If use_globular_projection="true", MapViewer will
         apply a globular projection on the fly to geometries being displayed.
         If use_globular_projection="false" (the default), MapViewer does no map
         projection to geodetic geometries. This option has no effect on
         non-geodetic data.
   -->

  <!--
    <global_map_config>
        <note text="Copyright 2004, Oracle Corporation"
              font="sans serif"
              position="SOUTH_EAST"/>
        <title  text="MapViewer Demo"
                font="Serif"
                position="NORTH" />
        <logo image_path="C:\\images\\a.gif"
              position="SOUTH_WEST" />

        <rendering allow_local_adjustment="false"
                   use_globular_projection="false" />
    </global_map_config>
  -->

  <!-- ****************************************************************** -->
  <!-- ****************** Spatial Data Cache Setting  ******************* -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to customize the spatial data cache
       used by MapViewer. The default is 64 MB for in-memory cache.

       To disable the cache, set max_cache_size to 0.

       max_cache_size:  Maximum size of in-memory spatial cache of MapViewer.
                        Size must be specified in megabytes (MB).
       report_stats:    If you would like to see periodic output of cache
                        statistics, set this attribute to true. The default
                        is false.
   -->

  <!--
    <spatial_data_cache   max_cache_size="64"
                          report_stats="false"
    />
  -->

  <!-- ****************************************************************** -->
  <!-- ******************** Custom Image Renderers ********************** -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and add as many custom image renderers as needed here,
       each in its own  <custom_image_renderer> element. The "image_format"
       attribute specifies the format of images that are to be custom
       rendered using the class with full name specified in "impl_class".
       You are responsible for placing the implementation classes in the
       MapViewer's classpath.
  -->
  <!--
  <custom_image_renderer image_format="ECW"
                         impl_class="com.my_corp.image.ECWRenderer" />
  -->

  <!-- ****************************************************************** -->
  <!-- ****************** Custom WMS Capabilities Info ****************** -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following tag if you want MapViewer to
       use the following information in its getCapabilities response.
       Note: all attributes and elements of <wms_config> are optional.
  -->
  <!--
  <wms_config host="www.my_corp.com" port="80">
    <title>
        WMS 1.1 interface for Oracle Application Server 10g MapViewer
    </title>
    <abstract>
        This WMS service is provided through Oracle MapViewer.
    </abstract>
    <keyword_list>
       <keyword>bird</keyword>
       <keyword>roadrunner</keyword>
       <keyword>ambush</keyword>
    </keyword_list>
    <sdo_epsg_mapfile>
      ../config/epsg_srids.properties
    </sdo_epsg_mapfile>
  </wms_config>
  -->

  <!-- ****************************************************************** -->
  <!-- **************** Custom Non-Spatial Data Provider **************** -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and add as many custom non-spatial data provider as
       needed here, each in its own <ns_data_provider> element.
       You must provide the id and full class name here. Optionally you
       can also specify any number of global parameters, which MapViewer
       will pass to the data provider implementation during initialization.
       The name and value of each parameter is interpreted only by the
       implementation.
  -->

  <!-- this is the default data provider that comes with MapViewer; please
       refer to the MapViewer User's Guide for instructions on how to use it.

  <ns_data_provider
    id="defaultNSDP"
    class="oracle.sdovis.NSDataProviderDefault"
  />
  -->

  <!-- this is a sample NS data provider with prameters:
  <ns_data_provider
    id="myProvider1" class="com.mycorp.bi.NSDataProviderImpl" >

    <parameters>
      <parameter name="myparam1" value="value1" />
      <parameter name="p2"       value="v2"     />
    </parameters>

  </ns_data_provider>
  -->

  <!-- ****************************************************************** -->
  <!-- *******************  Map Cache Server Setting  ******************* -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to customize the map cache server.

       <cache_storage> specifies the default root directory under which the
       cached tile images are to be stored if the cache instance configuration
       does not specify the root directory for the cache instance. If the
       default root directory is not set or not valid, the default root
       direcotry will be set to be $MAPVIEWER_HOME/web/mapcache

          default_root_path:  The default root directory under which the cached
                              tile images are stored.

       <logging> specifies the logging options for map cache server.
  -->

  <!--
     <map_cache_server>
       <cache_storage default_root_path="/scratch/mapcachetest/"/>
       <logging log_level="finest" log_thread_name="false" log_time="true">
          <log_output name="System.err"/>
          <log_output name="../log/mapcacheserver.log"/>
       </logging>
    </map_cache_server>
  -->

  <!-- ****************************************************************** -->
  <!-- ******************** Predefined Data Sources  ******************** -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to predefine one or more data
       sources.
       Note: You must precede the jdbc_password value with a '!'
             (exclamation point), so that when MapViewer starts the next
             time, it will encrypt and replace the clear text password.
  -->

  <!--
  <map_data_source name="mvdemo"
                   jdbc_host="elocation.us.oracle.com"
                   jdbc_sid="orcl"
                   jdbc_port="1521"
                   jdbc_user="scott"
                   jdbc_password="!tiger"
                   jdbc_mode="thin"
                   number_of_mappers="3"
   />
   -->

</MapperConfig>

1.5.2.1 ログ情報の指定

ログ情報は、<logging>要素に指定されます。

OracleAS MapViewerには、ランタイム情報およびイベントを記録するための柔軟なロギング・メカニズムが備わっています。ログ出力の量、形式および出力先を設定できます。

<logging>要素の属性またはサブ要素として、次の情報を指定できます。

  • log_level属性では、ログに記録される情報のレベルが制御され、このレベルによってログ出力量が左右されます。log_level属性には、FATALERRORWARNINFODEBUGまたはFINESTという値(ログ出力量が最も少ないレベルから最も多いレベルの順)を設定します。FATALレベルでは出力されるログ情報が最も少なくなり(回復不能なイベントのみがログに記録されます)、他のレベルでは前述にリストした順で含まれるログ情報が多くなり、FINESTレベルではほとんどの情報がログに記録されます。本番作業では、WARNまたはより制限の大きいレベル(ERRORまたはFATAL)をお薦めします。ただし、デバッグの場合は制限の小さいレベルに設定する必要があります。

  • log_thread_name属性では、イベントを検出してログに記録したスレッドの名前を含めるかどうかが制御されます。

  • log_time属性では、ロギング・イベント発生時の現在時刻が含まれるかどうかが制御されます。

  • log_outputサブ要素では、ログ情報の出力が識別されます。デフォルトで、ログ・レコードはシステム・エラー・コンソールに書き込まれます。この設定は、システム出力コンソールまたは1つ以上のファイル、あるいはなんらかの組合せに変更できます。複数のlog_outputサブ要素によって複数のデバイスを指定した場合、ログ・レコードは、同じロギング・レベルおよび属性を使用してすべてのデバイスに送信されます。

1.5.2.2 マップ・ファイル格納情報およびライフ・サイクル情報の指定

map画像ファイル情報は、<save_images_at>要素で指定します。デフォルトで画像は、$ORACLE_HOME /lbs/mapviewer/web/imagesディレクトリに格納されます。画像の格納用に別のディレクトリを指定する場合を除き、<save_images_at>要素を変更する必要はありません。

マッピング・クライアントは、<map_request>要素のformat属性(3.2.1.1項を参照)をGIF_URLまたはPNG_URLに設定することで、OracleAS MapViewerが実際のmap画像データではなく画像ファイルのURLを戻すようにリクエストできます。この場合、OracleAS MapViewerでは、リクエストされたmap画像がファイルとしてOracleAS MapViewerが動作するホスト・システムに保存され、画像ファイルのURLが含まれるレスポンスがマップ・クライアントに戻されます。

<save_images_at>要素の属性として、次のmap画像ファイル情報を指定できます。

  • file_prefix属性 - map画像ファイル接頭辞を指定します。map画像ファイル名は、固定のファイル接頭辞の後に、シリアル番号および画像型接尾辞が続きます。たとえば、map画像ファイル接頭辞がomsmapである場合、考えられるGIF map画像ファイルにはomsmap1.gifがあります。

    デフォルト値: file_prefix=omsmap

  • url属性では、map画像のベースURLが識別されます。このURLは、OracleAS MapViewerホスト上ですべてのmap画像ファイルが保存されているディレクトリを指します。マッピング・クライアントに送信されるmap画像URLは、map画像のベースURLにmap画像ファイル名を加えたものです。たとえば、map画像のベースURLがhttp://dev04.abcxyz.com:1521/mapviewer/imagesである場合、omsmap1.gifのmap画像URLは、http://dev04.abcxyz.com:1521/mapviewer/images/omsmap1.gifとなります。

    デフォルト値: url=$HOST_URL/mapviewer/images

  • path属性では、OracleAS MapViewerホスト・システム上ですべてのmap画像ファイルが保存されるディレクトリのパスが識別されます。このディレクトリは、HTTPによるアクセスが可能で、map画像URLと一致する必要があります。path属性で指定されたディレクトリに保存されたmap画像ファイルは、url属性で指定されたURLからアクセスできる必要があります。

  • life属性では、生成されたmap画像が削除されるまでに確実にファイル・システム上にとどまる分数が指定されます。life属性が指定された場合、recycle_interval属性によって、OracleAS MapViewerが削除対象のファイルの有無をチェックする頻度が制御されます。

    デフォルト: OracleAS MapViewerでは生成済のmap画像は削除されません。

  • recycle_interval属性では、life属性値の分数より長くファイル・システム上に存在する画像ファイルを削除できるかどうかをOracleAS MapViewerがチェックする間隔が分数で指定されます。

    デフォルト値: 480(8時間)

1.5.2.3 管理(非map)リクエストの制限

OracleAS MapViewerは、mapリクエストの他に、すべてのデータソースをリストするリクエストやデータソースを追加および削除するリクエストなどの、管理(非map)リクエストを受け入れます。(管理リクエストについては第7章を参照。)デフォルトでは、すべてのOracleAS MapViewerユーザーが管理リクエストの発行を許可されています。

ただし、管理リクエストを発行できるかどうかを制限する場合には、OracleAS MapViewer構成ファイルを編集し、指定したIPアドレスのユーザーからの管理リクエストのみを許可します。

管理リクエストを指定のIPアドレスのユーザーに制限するには、<ip_monitor>要素をOracleAS MapViewer構成ファイルに追加します(既存の要素がコメントアウトされている場合は、コメント解除して変更します)。例1-2は、構成ファイルから抜粋した<ip_monitor>要素の例を示しています。

例1-2 管理リクエストの制限

<MapperConfig>
   . . .
   <ip_monitor>
      <ips> 138.1.17.9, 138.1.17.21, 138.3.*, 20.* </ips>
      <ip_range> 24.17.1.3 - 24.17.1.20 </ip_range>
      <ips_exclude> 138.3.29.* </ips_exclude>
      <ip_range_exclude>20.22.34.1 - 20.22.34.255</ip_range_exclude>
   </ip_monitor>
   . . .
</MapperConfig>

例1-2では、次のことを示しています。

  • 次のIPアドレスは、管理リクエストを発行できるものとして明示的に含まれています(<ips_exclude>要素により除外されている場合を除く): 138.1.17.9、138.1.17.21、138.3.で始まる全アドレス、20.で始まる全アドレス、24.17.1.3〜24.17.1.20の範囲内の全アドレス。

  • 次のIPアドレスは、管理リクエストの発行から明示的に除外されています: 138.3.29.で始まる全アドレス、20.22.34.1〜20.22.34.255の範囲内の全アドレス。

  • 明示的に含まれていない他のすべてのIPアドレスは、管理リクエストを発行できません。

<ip_monitor>要素の構文に関する注意:

  • 許可するIPアドレス(および範囲)を指定するには、<ips>要素および<ip_range>要素を使用してください。アスタリスクのワイルドカード(20.*など)を使用できます。アドレスにはカンマ区切りリストを使用します。

  • 発行する管理リクエストからIPアドレスおよびアドレス範囲を除外するには、<ips_exclude>要素および<ip_range_exclude>要素を使用してください。アドレスが包含および除外カテゴリの両方に入る場合、このアドレスは除外されます。

  • <ips>要素の中でアスタリスクのワイルドカードを指定すると、<ips_exclude>要素および<ip_range_exclude>要素内で指定した場合を除き、関連するすべてのIPアドレスが含まれます。

1.5.2.4 Webプロキシの指定

MapViewerサーバーは、URLを介してバックグラウンド・イメージを取得したり、外部WMSサーバーに接続してそのmap画像をフェッチしたりするために、外部Webサーバーに対してHTTP接続を実行する必要がある場合もあります。そのような場合、MapViewerサーバーとターゲットWebサーバーの間にファイアウォールが存在していると、ファイアウォールによってMapViewerがブロックされないように、MapViewerに対してHTTPプロキシ情報を指定する必要がある場合があります。次の例では、Webプロキシ情報を指定しています。

<web_proxy host="www-proxy.mycorp.com" port="80" />

1.5.2.5 グローバル・マップ構成オプションの指定

OracleAS MapViewerで生成される各マップの表示について、次のグローバル・ルックアンドフィール・オプションを指定できます。

  • タイトル

  • 注釈(著作権の記述または脚注など)

  • ロゴ(カスタム・シンボルまたは企業ロゴ)

  • ローカル測地データ調整

  • 子午線180度に沿ったジオメトリの分割

これらのオプションを指定するには、<global_map_config>要素を使用します。次に例を示します。

<global_map_config>
    <note text="Copyright (c) 2003, XYZ Corporation"
              font="sans serif"
              position="SOUTH_EAST"/>
    <title  text="Map Courtesy of XYZ Corp."
              font="Serif"
              position="NORTH"/>
    <logo image_path="C:\\images\\a.gif"
              position="SOUTH_WEST"/>

    <rendering allow_local_adjustment="false"
               use_globular_projection="false"/>
</global_map_config>

マップ・タイトルは、<global_map_config>要素の<title>要素を使用して設定します。また、個々のmapリクエストで<map_request>要素のtitle属性を指定することで、マップ・タイトルを設定できます。この場合、OracleAS MapViewer構成ファイル内のグローバル・タイトルのかわりに、mapリクエスト内のタイトルが使用されます。<title>要素の属性については、次の点に注意してください。

  • text属性ではタイトル文字列が指定されます。

  • font属性ではフォントが指定されます。このフォントは、OracleAS MapViewerが動作するシステム上に存在する必要があります。

  • position属性では、マップ上でのマップ・タイトルの描画位置を決定する際に、位置設定のヒントがOracleAS MapViewerに提供されます。指定できる値は、NORTHEASTSOUTHWESTNORTH_EASTSOUTH_EASTSOUTH_WESTNORTH_WESTおよびCENTERです。

    デフォルト値: NORTH

マップの注釈は、<global_map_config>要素の<note>要素を使用して設定します。<note>要素の属性については、次の点に注意してください。

  • text属性では注釈文字列が指定されます。

  • font属性ではフォントが指定されます。このフォントは、OracleAS MapViewerが動作するシステム上に存在する必要があります。

  • position属性では、マップ上でのマップの注釈の表示位置を決定する際に、位置設定のヒントがOracleAS MapViewerに提供されます。指定できる値は、NORTHEASTSOUTHWESTNORTH_EASTSOUTH_EASTSOUTH_WESTNORTH_WESTおよびCENTERです。

    デフォルト値: SOUTH_EAST

マップ・ロゴは、<global_map_config>要素の<logo>要素を使用して設定します。マップ・ロゴ画像は、JPEGまたはGIFのいずれかの形式である必要があります。この画像は、ローカル・ファイル・システムに格納し、OracleAS MapViewerインスタンスが画像にアクセスできるようにするか、画像のURLを指定してWebから取得できます。マップ・ロゴを指定するには、OracleAS MapViewer構成ファイルで<map_logo>要素をコメント解除し、必要に応じてこの要素の属性を編集します。

<logo>要素の属性については、次の点に注意してください。

  • image_path属性では、有効なファイル・パス名またはhttp://で始まるURLが指定される必要があります。

  • position属性では、マップ上でのマップ・ロゴの描画位置を決定する際に、位置設定のヒントがOracleAS MapViewerに提供されます。指定できる値は、NORTHEASTSOUTHWESTNORTH_EASTSOUTH_EASTSOUTH_WESTNORTH_WESTおよびCENTERです。

    デフォルト値: SOUTH_WEST

ファイアウォールの外側のURLからロゴ画像を取得する場合、OracleAS MapViewerがロゴ画像を取得するためのWebプロキシの設定が必要となる場合があります。Webプロキシの指定については、1.5.2.4項を参照してください。

また、map凡例を指定する場合は、凡例の位置がマップ・タイトル、注釈またはロゴの位置と同じでないことを確認してください。(map凡例については、2.4.2項3.2.11項を参照してください。map凡例のデフォルト位置はSOUTH_WESTです。)

マップ・データ・ウィンドウが3度(10進)未満の場合、OracleAS MapViewerによって測地データが表示される前に、自動的にローカルの非測地座標系に投影されるようにするには、<rendering>要素でallow_local_adjustment="true"と指定します。

OracleAS MapViewerにより球面投影(つまり、世界の表示に適したマップ投影であり、具体的にはOracleAS MapViewerの正距方位図法があります)が自動的に適用されるようにするには、<rendering>要素でuse_globular_projection="true"と指定します。このオプションは測地データのみに適用されます。

1.5.2.6 空間データ・キャッシュのカスタマイズ

OracleAS MapViewerで空間データに使用されるメモリー内キャッシュをカスタマイズするには、<spatial_data_cache>要素を使用します。次に例を示します。

<spatial_data_cache   max_cache_size="64"
                      report_stats="true"
/>

<spatial_data_cache>要素の属性として、次の情報を指定できます。

  • max_cache_size属性では、メモリー内キャッシュの最大MB数が指定されます。

    デフォルト値: 64

  • report_stats属性は、trueに設定されている場合、OracleAS MapViewerサーバーに、キャッシュ済のオブジェクト数、キャッシュ・オブジェクト全体のサイズ、内部キャッシュ構造の効率に関するデータなど、キャッシュ統計を定期的(5分ごと)に出力するように指示します。統計はデータ・ソースおよび事前定義済テーマごとに提供されます。これはメモリー内キャッシュの最適な設定を決定する場合に役立ちます。たとえば、メモリー・キャッシュに一部のテーマについてのすべてのジオメトリ・データを確保する場合は、これらのテーマを格納するのに十分なmax_cache_size値を指定する必要があります。

    デフォルト値: false

構成ファイルでこの要素がコメントアウトされている場合でも、空間データ・キャッシュはデフォルトで常に使用可能です。空間データのキャッシュを完全に使用不可にするには、max_cache_size属性の値を0(ゼロ)に指定する必要があります。


注意:

前のリリースでサポートされていたディスクベースの空間キャッシュは、必要な場合(つまり、キャッシュ後にキャッシュ済オブジェクトを頻繁に再取得する必要がない場合)に、データベースから空間オブジェクトを直接フェッチするより効率が悪い場合が多いことがパフォーマンス・テストでわかったため、サポートされなくなりました。

事前定義済テーマのキャッシュの詳細は、2.3.1.2項を参照してください。

1.5.2.7 セキュリティ構成の指定

<security_config>要素を使用すると、リクエスト内の<info_request>要素をMapViewerが拒否するかどうかを指定できます。<info_request>要素は、単純なSQL文を実行して結果行をプレーン・テキストまたはXML形式で返すようMapViewerに要求するクライアントからのリクエストのタイプです。このリクエストは、JSPで記述されたMapViewerアプリケーションがマップに表示された地物を特定したり、単純な空間検索問合せを実行したりする際によく使用されます。

ただし、MapViewerデータソース情報を公開すると、悪質な攻撃者がこの機能を乱用し、機密情報を取得するおそれがあります。これを防止するには、アクセス権が非常に制限され、機密情報以外の情報しか提供しないデータベース・スキーマにMapViewerを常に接続するよう徹底する必要があります。また、次のように<security_config>要素を指定して、<info_request>リクエストをすべて拒否することもできます。

<security_config>
  <disable_direct_info_request> true </disable_direct_info_request>
</security_config>

ただし、この設定は、MapViewerの一部の機能に影響を与えます。たとえば、MapViewer Java APIのidentify()メソッドが機能しなくなるので、アプリケーションでは他の手段を使用して独自のidentify()メソッドを実装する必要があります。

1.5.2.8 カスタム・イメージ・レンダラの登録

MapViewerでは、データベースのBLOBに格納されている画像を、そのイメージ・テーマ機能を使用して表示できます。BLOBに格納されている画像データが、MapViewerにとって未知のECWのような形式である場合は、そのような画像をMapViewerが表示できるようにカスタム・イメージ・レンダラを登録することができます。カスタム・イメージ・レンダラの作成および登録については、付録Cを参照してください。

カスタム・イメージ・レンダラを指定するには、次の例のように、<custom_image_renderer>要素を使用します。

<custom_image_renderer image_format="ECW"
                       impl_class="com.my_corp.image.ECWRenderer" />

image_format属性では、カスタム・イメージ・レンダラと関連付ける画像形式名を指定します。

impl_class属性では、カスタム・イメージ・レンダラを実装するクラスの名前を指定します。

1.5.2.9 WMS GetCapabilitiesレスポンスのカスタマイズ

MapViewerは、Open Geospatial Consortium Web Map Server(WMS)1.1.1に準拠したサーバーとして使用できます。そのため、WMSクライアントは、GetCapabilitiesリクエストをMapViewerに送信できます。レスポンスの場合、MapViewerはリクエスト元のクライアントにとって重要な、自ら保持しているテーマのリストや、データ・プロバイダの名前、キーワードのリストなどの情報を返送します。

次の例のように<wms_config>要素を使用すると、GetCapabilitiesレスポンスの一部としてクライアントに返送する説明情報をカスタマイズすることができます。

<wms_config>
  <title>
      WMS 1.1 interface for Oracle Application Server 10g MapViewer
  </title>
  <abstract>
      This WMS service is provided through Oracle MapViewer.
  </abstract>
  <keyword_list>
     <keyword>bird</keyword>
     <keyword>roadrunner</keyword>
     <keyword>ambush</keyword>
  </keyword_list>
  <sdo_epsg_mapfile>
    ../config/epsg_srids.properties
  </sdo_epsg_mapfile>
</wms_config>

host属性では、該当するMapViewerサーバーに発行される今後のWMSリクエストでクライアントが使用するサービス・リクエストURLのホスト部を指定します。

port属性では、該当するMapViewerサーバーに発行される今後のWMSリクエストでクライアントが使用するサービス・リクエストURLのポート部を指定します。

<title>要素では、レスポンスの一部として含めるサービス・タイトルを指定します。

<abstract>要素では、レスポンスの一部として含める概要を指定します。

<keyword_list>要素では、該当するMapViewerサーバーによってサービスが提供される層のタイプを最もよく表現するキーワードのリストを指定します。

<sdo_epsg_mapfile>要素では、Oracle Spatial(SDO)SRID値から対応するEPSG SRID値へのマッピングを定義するテキスト・ファイル(通常はほとんどのWMSリクエストおよびレスポンスで使用される)を指定します。このマッピング・ファイルについては、D.1.3項を参照してください。

1.5.2.10 カスタムな非空間データ・プロバイダの登録

テーマ・マップ層の生成時、MapViewerは外部ソースから生成される(各地域の売上高のような)非空間属性データと、データベースに格納されているベース・ジオメトリ(全地域の境界線)を結合できます。非空間データ・プロバイダの外部属性データを使用したテーマ・マッピングについては、2.3.3.1項を参照してください。

非空間データ・プロバイダを登録するには、次の例のように<ns_data_provider>要素を使用します。

<ns_data_provider id="testProvider"
                  class="com.mycorp.GetSalesData" >
  <parameters>
    <parameter name="bi_database" value="stadb32.mycorp.com" />
    <parameter name="sid" value="bidata"  />
  </parameters>
</ns_data_provider>

id属性では、非空間データ・プロバイダを一意に指定します。このid値は、該当するプロバイダに関連するすべてのmapリクエストで使用します。

class属性では、非空間データ・プロバイダを実装するクラスの名前を指定します。

<parameters>要素では、非空間データ・プロバイダがその初期化プロセスで使用する一連の初期化パラメータを指定します。

1.5.2.11 Oracle Maps用マップ・キャッシュ・サーバーの構成

MapViewerのOracle Maps機能では、ベース・マップ画像タイルを事前に生成し、マップ・キャッシュ・サーバーを使用してそれらをキャッシングすることができます。<map_cache_server>要素を使用すると、次の例のように、マップ・タイル・ファイルのデフォルトの格納先やログ情報などの構成情報をマップ・キャッシュ・サーバーに提供できます。

<map_cache_server>
   <cache_storage default_root_path="/scratch/mapcache/" />
   <logging log_level="finest" log_thread_name="false" log_time="true">
      <log_output name="System.err"/>
      <log_output name="../log/mapcacheserver.log"/>
   </logging>
</map_cache_server>

<cache_storage>要素では、該当するMapViewerサーバーによって生成されるすべてのmap画像タイルが格納されるデフォルトのルート・ディレクトリを指定します。

<logging>要素では、マップ・キャッシュ・サーバーに固有なログ情報を指定します。

1.5.2.12 永続mapデータソースの定義

すべてのmapリクエストには、地理空間データを持つデータベース・ユーザーである、mapデータソースを指定するデータソース属性が必要です。使用可能なmapデータソースを事前定義するには、<map_data_source>要素を使用します。次に例を示します。

<map_data_source name="mvdemo"
                 jdbc_host="mapsrus.us.oracle.com"
                 jdbc_sid="orcl"
                 jdbc_port="1521"
                 jdbc_user="scott"
                 jdbc_password="!tiger"
                 jdbc_mode="thin"
                 number_of_mappers="5"
                 max_connections="100"
                 allow_jdbc_theme_based_foi="true"
/>

<map_data_source>要素の属性として、次の情報を指定できます。

  • name属性では、OracleAS MapViewerに対して一意のデータソース名が指定されます。データソースを識別するすべてのmapリクエストで、データソース名を指定する必要があります。

  • jdbc_hostjdbc_sidjdbc_portおよびjdbc_user属性では、データベース接続情報およびデータベース・ユーザー名を指定します。(これらの属性と、jdbc_password属性およびjdbc_mode属性を指定するかわりに、この項で後述するように、container_ds属性を指定することもできます。)

  • jdbc_password属性では、データベース・ユーザーのログイン・パスワードを指定します。初めてパスワードを指定する場合は、先頭に感嘆符(!)を付ける必要があります。次のOracleAS MapViewerの再起動時に、クリア・テキスト・パスワードは自動的に不明瞭化され、置き換えられます。

  • jdbc_mode属性では、データベースに接続する際に使用するOracle JDBCドライバがOracleAS MapViewerに通知されます。デフォルトはthin(シン・ドライバ)です。その他の可能な値はoci8です。この場合、OracleAS MapViewerが動作するホスト上にOracleデータベース・クライアントもインストールされている必要があります。

  • number_of_mappers属性では、このデータソースで使用可能なマップ・レンダラの最大数(つまり、このデータソースでOracleAS MapViewerが同時に処理できるmapリクエストの最大数)を指定します。未処理のmapリクエストはキューに入れられ、最終的には処理されます。たとえば、この値が3の場合、OracleAS MapViewerでは最大3つのmapリクエストを同時に処理できます。3つのリクエストの処理中に送信された4つ目のmapリクエストは、OracleAS MapViewerが現在のリクエストのいずれかの処理を完了するまで待機します。

    number_of_mappersに大きな値(30または50など)を指定しても、静的メモリーが追加使用されることはなく、オープン状態が維持されるデータベース接続の合計数には影響を与えません。ただし、大きい値を指定すると追加のオーバーヘッド動作が生じ、負荷ピーク時にサーバーのパフォーマンスに影響を及ぼす可能性があります。単一データソースの最大mapper数は64です。

  • max_connections属性では、データソースに対して常にオープンになっているデータベース接続またはセッションの最大数を指定します。通常、この属性は指定する必要がなく、デフォルト値の100をそのまま使用します。

    指定する値が小さすぎると、パフォーマンスに重大な影響を及ぼす可能性があります。たとえば、12の事前定義済テーマを含むmapリクエストに対してmax_connections="5"を指定すると、要求を満たすために12の接続が一時的に作成されますが、そのうちの7つはリクエストの完了と同時にクローズされ、オープン状態の接続は5つのみになります。OracleAS MapViewerはmapリクエスト処理時の要求を満たすため、6以上の接続が必要な場合はいつでもデータベース接続を動的に作成します。これは、永続的にオープンされているデータベース接続の数が、max_connections属性で指定された値を超えることがないからです。指定する値が小さすぎると、ほぼ確実にmapリクエストの処理時間が長くなります。これは、新規のデータベース接続をオープンするには、かなりの処理オーバーヘッドが必要になるからです。

  • container_ds属性を使用すると、jdbc_host属性、jdbc_sid属性、jdbc_port属性、jdbc_user属性、jdbc_password属性およびjdbc_mode属性を指定するかわりに、(ejb-location属性値の)J2EEコンテナ名を指定できます。たとえば、OC4Jのスタンドアロン・インスタンスのdata-source.xmlファイルで<data_source>要素にejb-location="jdbc/OracleDS"が含まれているとします。この場合、この項の初めにある例を使用するかわりに、永続OracleAS MapViewerデータソースを次のように定義できます。

    <map_data_source name="mvdemo"
                     container_ds="jdbc/OracleDS"
                     number_of_mappers="5"
                     max_connections="100"
    />
    
    

    OracleAS MapViewer構成ファイルのcontainer_ds属性を使用するには、OC4Jインスタンスを-userThreadsオプションを指定して起動する必要があります。OracleAS MapViewerはその構成ファイルを別のユーザー・スレッドで処理します。-userThreadsオプションを指定しない場合、ユーザー・スレッドでコンテナのコンテキスト情報を使用できません。ただし、OracleAS MapViewerの管理ページでデータソースを動的に定義する場合は、-userThreadsオプションを指定してOC4Jインスタンスを起動したかどうかにかかわらず、container_ds属性を使用できます。

  • allow_jdbc_theme_based_foi属性を使用すると、該当するデータソースに対するJDBCテーマベースのFOIリクエストの実行を許可するかどうかを指定できます。JDBCテーマベースのFOIリクエストは、JavaScriptクライアント・アプリケーションによって作成された動的SQL問合せに基づくものです。

    デフォルト時、そのようなFOIリクエストは、この属性をtrueに設定しないかぎり、許可されません。セキュリティ侵害のおそれがあるため、JDBCテーマベースのFOIリクエストは注意して使用する必要があります。JDBCテーマベースのFOIリクエストは、非常に低い権限しか付与されず、公開対象のデータしか含まれないデータベース上でのみ許可してください。JDBCテーマベースのFOIリクエストの詳細は、8.3.1.3項を参照してください。

1.5.3 MapViewer管理タスクの実行

MapViewerの構成方法だけでなく、MapViewer管理ページを使用したその他の重要な管理タスクの実行方法も知っておく必要があります。MapViewer管理ページへのログイン方法については、1.5.1項を参照してください。

MapViewer管理者として実行できるタスクには、次のようなものがあります。

  • 構成ファイルの編集

    「Manage MapViewer」「Configuration」の順にクリックします。

  • 動的データソースの作成

    「Manage MapViewer」「Datasources」の順にクリックします。適切なパラメータを入力した後、「Submit」をクリックします。

  • データソースのリストのリフレッシュ

    「Manage MapViewer」「Datasources」の順にクリックします。「Refresh」をクリックします。

  • MapViewerのスタイル、テーマ、およびベース・マップのキャッシングされた定義の消去

    「Manage MapViewer」「Datasources」の順にクリックします。データソースを選択した後、「Purge Cached Metadata」をクリックします。

  • 事前定義済テーマからのキャッシュされたジオメトリ・データの消去

    「Manage MapViewer」「Geometry Cache」の順にクリックします。「Purge Cached Geometries」の下で、データソースを選択し、「Submit」をクリックします。

  • Oracle Mapsのマップ・キャッシュ・インスタンスの作成

    「Manage Map Caches」「Create」の順にクリックします。マップ・ソース・タイプに対して「Internal」または「External」を選択し、「Continue」をクリックします。

    「Internal」マップ・ソース: マップ・キャッシュ名を入力した後、データソースとベース・マップを選択します。また、キャッシュ記憶域(タイルの格納先)、ズーム・レベル、最小および最大スケール、空間参照ID(SRID)、データ枠ボックス(MBR)、およびタイルのサイズと形式のパラメータも定義します。「Submit」をクリックして、マップ・キャッシュ・インスタンスを作成します。また、「XML」をクリックし、XMLでマップ・キャッシュ・プロパティを定義することもできます。

    「External」マップ・ソース: マップ・キャッシュ名を入力した後、データソースを選択します。外部ソースにアクセスするには、マップ・サービスURL、リクエスト・メソッド(GETまたはPOST)、プロキシ情報(必要な場合)、サーバー上のJavaアダプタ・クラス名とその位置、アダプタのその他のプロパティなどのパラメータを定義します。また、キャッシュ記憶域(タイルの格納先)、ズーム・レベル、最小および最大スケール、空間参照ID(SRID)、データ枠ボックス(MBR)、およびタイルのサイズと形式のパラメータも定義します。「Submit」をクリックして、マップ・キャッシュ・インスタンスを作成します。また、「XML」をクリックし、XMLでマップ・キャッシュ・プロパティを定義することもできます。

  • Oracle Mapsのマップ・キャッシュ・インスタンスの管理

    「Manage Map Caches」「Manage」の順にクリックします。その後、次のいずれかの操作を実行します。

    マップ・キャッシュをリフレッシュするには、「Refresh」をクリックします。

    マップ・キャッシュ・インスタンスを編集するには、「Existing Map Cache Instances」の下のデータソースを選択します。キャッシュ・レベルでは、キャッシュの削除、キャッシュ詳細の表示およびキャッシュのオフライン/オンラインの切り替えを実行できます。タイル・レベルでは、タイルの消去、プリフェッチ、リフレッシュ、ズーム・レベルの指定、枠ボックスの指定などの操作を実行できます。

    リクエストのステータスをチェックするには、リクエストIDを入力し、「Submit」をクリックします。

1.6 高可用性とOracleAS MapViewer


注意:

この項は、OracleAS MapViewerでOracle Application Serverの高可用性機能をフルに利用する上級ユーザーを対象としています。ユーザーには高可用性機能についての十分な理解が必要です。高可用性機能については、『Oracle Application Server高可用性ガイド』を参照してください。

Oracle Application Serverの現行リリースでは、OracleAS MapViewerのユーザーは、これまでのリリースよりも一層効果的に高可用性機能を利用できます。

1.6.1 マルチプロセスOC4JインスタンスでのOracleAS MapViewerのデプロイ

複数のプロセスを持つOracle Application ServerのOC4Jインスタンスに、OracleAS MapViewerを安全にデプロイできます。Oracle Application Serverでは、各OC4Jインスタンスで起動可能な実際のプロセス(JVM)の数を構成できます。マルチプロセッサ・ホストでは、1つのOC4Jで複数のプロセスを起動すると、システム・リソースをより有効に利用できます。(10gリリース2(10.1.2)より前のリリースのOracleAS MapViewerではこの機能を利用できないため、そのようなOC4Jインスタンス上にはデプロイできません。)

OracleAS MapViewerが複数のプロセスを持つOC4Jインスタンスにデプロイされると、各プロセスの内部でOracleAS MapViewerサーバーが稼働します。これらのOracleAS MapViewerサーバーはすべて同じホスト上に存在しますが、異なるJavaプロセスで稼働します。このOC4Jインスタンスに送信されたmapリクエストは、個々のOracleAS MapViewerサーバーに自動的にディスパッチされます。各OracleAS MapViewerサーバーでは、最初に異なるOracleAS MapViewerサーバーが起動された場合(つまり、サーバーを含むOC4Jインスタンスが起動された場合)に名前を調整し、一意のネーミング方法に従ってmap画像ファイルを生成します。これにより、2つのOracleAS MapViewerサーバーによって、同じファイル名を持つmapファイルが同じ順序で生成されることがなくなります。

1.6.2 中間層クラスタでのOracleAS MapViewerのデプロイ

異なるOracle Application ServerインストールのOC4Jインスタンスは、1つのアイランドにクラスタ化できます。これは、中間層のフェイルセーフ・オプションとなります。OracleAS MapViewerは、1つのOC4Jアイランドにデプロイできます。ただし、各ホストで生成された画像ファイルの命名方法およびクライアント・アプリケーションによるURLでの参照方法には注意する必要があります。

次の例を検討します。mapリクエストがフロントWebサーバーに送信されると、リクエストはホストAで稼働しているOracleAS MapViewerサーバーに届けられます。この2番目のリクエストはホストBで稼働しているOC4Jコンテナで受信されますが、このコンテナにはそのような画像がありません(あるいは、同じ名前の間違った画像が戻されます)。

どのような環境でも、この問題に対する最善の解決策はありません。1つの選択肢として、異なるホストで稼働する異なるOracleAS MapViewerサーバーによって、map画像が同一の仮想(ネットワーク化された)ファイル・システムに置かれるように、ホストで共通のネットワーク・ストレージを共有することがあります。画像を異なるサブディレクトリに置いたり、画像に異なるファイル接頭辞を付けたりするため、OracleAS MapViewerインスタンスごとに、マップ・ファイル・ストレージ情報(1.5.2.2項を参照)を構成する必要があります。情報を構成しない場合、複数のOracleAS MapViewerサーバーによって生成された画像ファイルが、ディスク上で互いを上書きする可能性があります。マップ・ファイル・ストレージ情報を適切に構成すると、クライアントに戻された各URLにより、ネットワーク・ドライブ上で確実に正しいマップが一意に識別されます。

ネットワーク・ドライブを使用できない場合は、ロード・バランサの使用を検討してください。各OracleAS MapViewerインスタンスで、確実に一意性を保つための適切な方法を使用して、生成された画像ファイルに名前を付けるため、まずOracleAS MapViewerインスタンスごとに、マップ・ファイル・ストレージ情報を構成する必要があります(前のパラグラフを参照)。これで、URLがあるパターン(指定したmap画像ファイル接頭辞を含むなど)に一致する場合に画像リクエストを特定のホストにリダイレクトするルールを、ロード・バランサで指定できます。