プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle MapViewerユーザーズ・ガイド
12c リリース1 (12.1)
E59442-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 MapViewerの概要

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

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


注意:

MapViewerリリース11gの既存インストールがあり、そのMapViewer構成をOracle Fusion Middlewareリリース12.1.3で使用する場合は、1.5項「MapViewerのアップグレード」を参照してください。

1.1 MapViewerの概要

MapViewerは、Oracle Fusion Middlewareの一部として出荷されます。その主要な提供物は、Oracle Fusion Middlewareの場合と同様に、Java EE (Java Platform, Enterprise Edition)コンテナにデプロイできるJava EEアプリケーションです。MapViewerには、次の主要なコンポーネントが含まれています。

  • SDOVISという名前のコア・レンダリング・エンジン(Javaライブラリ)。地図レンダリングを実行します。レンダリング機能をWebアプリケーションに公開するためのサーブレットが提供されています。

  • MapViewer機能に対するプログラマブルなアクセスを許可する一連のApplication Program Interface (API)。これらのAPIには、XML、JavaおよびAJAXベースのJavaScript APIが含まれています。

  • グラフィカル・マップ・ビルダー・ツール。マップ記号の作成、空間データ・レンダリング・ルールの定義、およびMapViewerオブジェクトの作成と編集が行えます。

  • Oracle Maps。インタラクティブな地理空間Webアプリケーションの開発を容易にするマップ・キャッシュ・サーバーおよびFOI (対象地物)サーバーが含まれます。

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

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

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

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

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

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

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

マップ・リクエストの場合:

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

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

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

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

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

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

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

図1-1の説明は図の下のリンクをクリックしてください。
「図1-1 MapViewerの基本的なアクション・フロー」の説明

1.1.2 MapViewerのアーキテクチャ

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

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

図1-2の説明は図の下のリンクをクリックしてください。
「図1-2 MapViewerのアーキテクチャ」の説明

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

  • MapViewerは、Oracle Fusion Middleware中間層の一部です。

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

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

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

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

1.2 MapViewerを使用する前に

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

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

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

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

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

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

1.3 MapViewerのソフトウェア要件

MapViewerを使用するには、以下のソフトウェアが必要です。

  • Oracle MapViewerでサポートされるJava EEサーバー(http://www.oracle.com/technetwork/middleware/mapviewer/j2ee-server-support-097757.htmlを参照)

  • Oracle Spatial and GraphオプションまたはOracle Locator (リリース10g以上)を備えたOracle Database

  • JDBC Oracle Call Interface (OCI)機能を使用する必要がある場合は、Oracle Client (リリース10g以上)。ただし一般に、MapViewerと併用するにはJDBCシン・ドライバをお薦めします。その場合、Oracle Clientは不要です。

  • Java SDK 1.6以上

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

-Djava.awt.headless=true

1.4 WebLogic Server 12cのMapViewerのインストールおよびデプロイ

WebLogic Server 12c中間層で実行するMapViewerをインストールおよびデプロイするには、次のいずれかの方法を使用できます。

  • WebLogic Server Universal Installerを使用します。1.4.1項の説明を参照してください。

  • 展開されたMapViewer EARフォルダを手動でデプロイします。1.4.2項の説明を参照してください。

  • 展開されていないMapViewer EARファイルを手動でデプロイします。1.4.3項の説明を参照してください。

MapViewerではADFコンポーネントを使用するため、必要なコンポーネントを全体インストールの一部としてインストールする必要があります。MapViewerはJava EE Webアプリケーションであり、インストール後にコンテナのHTTPポートで着信マップ・リクエストをリスニングします。

1.4.1 Universal InstallerによるMapViewerのデプロイ

この項では、Universal Installerを使用してWebLogic Server 12cにMapViewerをデプロイする方法を説明します。WebLogic Server 12cがインストールされていない場合は、最初にインストールしてからMapViewerをインストールする必要があります。このセクションでは、次のトピックについて説明します。

1.4.1.1 WebLogic Serverのインストール

WebLogic Serverをインストールする必要がある場合、次の手順を実行します。

  1. Java環境が正しく設定されていることを確認します。JDK7以降である必要があります。例:

    java -version
    

    結果は次のようになります

    java version "1.7.0_17"
    Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
    
  2. http://www.oracle.com/technetwork/developer-tools/adf/downloads/に移動します。

  3. ライセンス契約を読み、同意してください。

  4. Application Development Runtimeで、目的のバージョンを選択します。例: 12.1.3.0

  5. 「インストール・ガイド」および前提条件と推奨されるインストール・プロセスの情報およびリンクに注意してください。詳細は各ガイドを参照してください。

  6. 「ファイルのダウンロード」をクリックし、一時フォルダなどの選択した場所にファイルを保存します。

  7. ダウンロード・ページに記載された手順に従ってインストールを実行します。これらには通常、ダウンロードした.zipファイルを解凍して.jarファイルを抽出してから、コマンドを実行してインストールを実行する処理が含まれます。例:

    java -jar fmw_12.1.3.0.0_infrastructure.jar
    

詳細は、使用しているオペレーティング・システム用のWebLogic Serverのインストレーション・マニュアルを参照してください。

1.4.1.2 リポジトリ作成ユーティリティによる必要なJRFコンポーネントの作成

リポジトリ作成ユーティリティ(RCU)は、WebLogic Serverの構成に必要なJava Runtime Framework (JRF)コンポーネントをデータベースにロードします。これらのJRFコンポーネントがロード済でない場合は、この項の手順を実行してください。

このRCUプログラムは、$Oracle_Home/oracle_common/binフォルダにあります(例: /scratch/Oracle/Middleware/Oracle_Home/oracle_common/bin)。(Oracle_Homeフォルダは、1.4.1.1項「WebLogic Serverのインストール」で指定しています。)RCUプログラムが保存されているフォルダに移動し、次の手順を実行します。

  1. RCUプログラムを起動します。例:

    ./rcu
    
  2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

  3. 「リポジトリの作成」ページで、デフォルト(「システム・ロードおよび製品ロード」)を受け入れます。

    このデータベース接続を作成するデータベース・ユーザーにはDBA権限が必要です。

    「次へ」をクリックします。

  4. 「データベースの詳細」ページで、フィールドの情報を入力します。

    この接続のデータベース・ユーザーにはSYSDBAロールが必要です。

    「次へ」をクリックします。(前提条件チェックの進行状況がポップアップ・ウィンドウに表示されます。)

  5. 「コンポーネントの選択」ページでは、次の手順に従います。

    • このセッションで作成されたすべてのスキーマに対する一意の接頭辞は、既存の接頭辞を選択するか、任意の接頭辞を新規に作成します。

    • リポジトリ・コンポーネントでは、メタデータ・サービス、監査サービス、監査サービスへの追加、監査サービス・ビューアおよびOracle Platform Security Servicesが選択されていることを確認します。

    • Common Infrastructure Services行(この行は編集不可)のスキーマ所有者の名前(DEV_STB)を書き留めておきます。WebLogic Serverの構成時にこの名前を入力する必要があります(1.4.1.4項「WebLogic Serverの構成」)。

    「次へ」をクリックします。

  6. 「スキーマ・パスワード」ページで、データベースに作成されるスキーマのパスワードを設定します。すべてのスキーマに同じパスワードを使用することも、異なるパスワードを使用することもできます。これらのパスワードは、WebLogic Serverの構成時にコンポーネントの取得で必要になります。

    「次へ」をクリックします。

  7. 「表領域のマップ」ページでデフォルトを受け入れ、「次へ」をクリックします。

  8. 「サマリー」ページでは、情報を確認して「作成」をクリックします。

  9. 「完了サマリー」ページでは、情報を確認します。Component Infrastructure Servicesスキーマの所有者(DEV_STB)および指定したパスワードを入力する必要があります。

    完了したら、ウィンドウを閉じてリポジトリ作成ユーティリティ(RCU)を終了します。

1.4.1.3 Universal InstallerによるMapViewerのインストール

WebLogic Serverのインストールが完了したら、Universal Installerを使用してMapViewerをインストールできます。

Oracle Technology Networkからmapviewer_generic.jarファイルをダウンロードし、/scratch/tmpなどの任意のフォルダに保存し、次の手順を実行します。

  1. mapviewer_generic.jarファイルを保存したフォルダに移動します。例:

    cd /scratch/tmp
    
  2. Java環境が正しく設定されていることを確認します。JDK7以降である必要があります。例:

    java -version
    

    結果は次のようになります

    java version "1.7.0_17"
    Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
    
  3. インストール・プログラムを起動します。例:

    java -jar mapviewer_generic.jar
    

    MapViewer 12cインストールの「ようこそ」ページが表示されます。

    「次へ」をクリックします。

  4. 「インストール場所」ページで、1.4.1.1項「WebLogic Serverのインストール」で指定したOracle_Homeのインストール場所を指定します。例:

    /scratch/Oracle/Middleware/Oracle_Home
    

    「次へ」をクリックします。

  5. 「前提条件チェック」ページでは、オペレーティング・システムとJavaバージョンの確認が行われます。終了したら、「次へ」をクリックします。

  6. 「インストール・サマリー」ページに、このインストールのサマリー・レポートが表示されます。確認した後、「インストール」をクリックします。

    「インストールの進行状況」ページに、インストールのステップと進行状況が表示されます。

  7. 「インストール完了」ページでは、MapViewerの作成のドメイン・オプションを確認します。

    • このオプションが有効な(選択されている)場合、「終了」をクリックするとWebLogic Serverの構成プログラムに移動してMapViewerのデプロイが開始されます。

    • このオプションを無効に(選択解除)した場合、「終了」をクリックした時にWebLogic Serverの構成プログラムに自動的に移動することはありません。ただし、後でこのプログラムを手動で起動する必要があります。

1.4.1.4 WebLogic Serverの構成

WebLogic Serverを構成するには、次の手順を実行します。

  1. 1.4.1.3項「Universal InstallerによるMapViewerのインストール」の最後の手順でMapViewerの作成ドメイン・オプションを選択しなかった場合は、$Oracle_Home/wlserver/common/binに移動して構成ウィザード(config.shファイル)を起動します。例:

    cd /scratch/Oracle/Middleware/Oracle_Home/oracle_common/common/bin
    ./config.sh
    
  2. 「構成タイプ」ページでは、MapViewerの新しいドメインを作成する必要があるため、Create new domainオプションを選択します。

    ドメインの場所を指定するか、デフォルトの場所を受け入れます(デフォルトの場所は/scratch/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domainに類似しています)。「次」をクリックします。

  3. 「テンプレート」ページで、「製品テンプレートを使用してドメインを作成」を選択します。

    • 「製品テンプレートを使用してドメインを作成」を選択します。

    • Template Categories: All Categories

    • Available Templates: 次の項目が選択されていることを確認します。

      Oracle MapViewer-12.1.3.0 [oracle_common]
      Oracle JRF 12.1.3.0 [oracle_common]
      WebLogic Coherence Cluster Extension-12.1.3.0 [wlserver]
      

    「次へ」をクリックします。

  4. 「管理者アカウント」ページでは、アカウントの名前を入力するかデフォルトの名前を受け入れ、パスワードを入力および確認し、「次へ」をクリックします。(名前とパスワードは、管理者アカウントへのログイン時に必要になります。)

  5. ドメイン・モードとJDKページでは、適切なドメイン・モード(開発環境または本番)およびJDKの場所を選択し、「次へ」をクリックします。

  6. 「データベース構成タイプ」ページで、必要な情報を指定します。スキーマ所有者およびスキーマ・パスワードには、1.4.1.2項「リポジトリ作成ユーティリティによる必要なJRFコンポーネントの作成」からの値を指定します(このユーティリティを実行した場合)。たとえば、スキーマ名はDEV_STBなどです。

    情報を入力した後、「RCU構成の取得」をクリックしてリポジトリ作成ユーティリティによってデータベースにロードされたスキーマ・データを取得します。この操作が完了したら、「次へ」をクリックします。

  7. 「JDBCコンポーネント・スキーマ」ページでは、一覧表のすべてのスキーマを選択し(LocalSvcTbl SchemaOPSS Audit SchemaOPSS Audit Viewer SchemaおよびOPSS Schema)、「次へ」をクリックします。

  8. 「拡張構成」ページで、「管理サーバー」を選択して「次へ」をクリックします。(オプションで、「次へ」をクリックする前に、後続のウィザード・ページで指定するその他の任意の拡張構成オプションを選択できます。)

  9. 「管理サーバー」ページでは、各オプションのデフォルト値を受け入れるか、別の値を指定します。デフォルト値の例:「サーバー名」AdminServer「リスニング・アドレス」All Local Addresses「リスニング・ポート」7001

    「次へ」をクリックします。

  10. 「構成のサマリー」ページでは、いくつかのビュー(Deployment、Application、Service)を選択して構成の詳細を確認した後、「作成」をクリックしてMapViewerのドメインを作成します。

  11. 「構成の進行状況」ページでは、ドメイン作成の進行状況およびステップが表示されます。終了したら「次へ」をクリックします。

  12. 構成に成功しましたのページでは、「ドメインの場所」(WebLogic Serverの起動のためにこの場所に移動する必要があります)および管理サーバーのURL(MapViewerサーバーの管理のためにこの場所に移動する必要があります)を書き留めておきます。(これらのリンクを今すぐクリックする必要はありません。)

「拡張構成」ページで追加のオプションを選択した場合は、追加の構成手順があります。特に、Oracle RACデータ・ソースを使用し、Oracle JRF (Java Required Files)で管理対象サーバーにデプロイする場合は、次の点に注意してください。

  • JRF (またはEnterprise Manager)をドメインに展開する場合は、MDSおよびOPSSの各スキーマがリポジトリ作成ユーティリティ(RCU)によって作成されることを確認してください。(これらのスキーマはMapViewer自体では使用されませんが、これらはJRFの依存コンポーネントです。)

  • Enterprise ManagerまたはJRFテンプレートは、MapViewerのデプロイ先と同じ管理対象サーバーをターゲットにする必要があります。つまり、ADFおよびJRFの各ライブラリおよび関連サービスが、ターゲット管理対象サーバーで使用可能である必要があります。

  • RCUスキーマへの接続に使用されるMDSおよびOPSSなどのすべてのJRF関連データ・ソースが同じ管理対象サーバーにデプロイされることを確認してください。マルチ・タイプのデータ・ソースを使用する場合(Oracle RACデータベースの場合によく使用される)、すべてのマルチ・タイプのデータ・ソースとそれらの子の汎用タイプ・データ・ソースが管理対象サーバーにデプロイされることを確認してください。(これらのデータ・ソースはMapViewerでは使用されませんが、サーバーの起動時およびアプリケーションのデプロイのためにJRFで必要になります。MapViewerはADF FacesライブラリのためにJRFに依存し、これらはMapViewer管理コンソールで使用されます。)

1.4.1.5 WebLogic Serverの起動およびMapViewerの構成

WebLogic Serverを起動し、MapViewer管理タスクを実行するには、次の手順を実行します。

  1. WebLogic Serverを起動し、ドメインの場所に移動し、startWebLogic.shを実行します。例:

    cd /scratch/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain
    ./startWebLogic.sh
    

    WebLogic管理者のユーザー名とパスワードを求められたら、1.4.1.4項「WebLogic Serverの構成」で指定した値を入力します。

  2. サーバーが実行されたら、ブラウザ・ウィンドウを開き、管理サーバーのURLを入力します(1.4.1.4項「WebLogic Serverの構成」を参照)。

  3. WebLogic Server管理コンソールで、「デプロイメント」下のmapViewerを見つけてmapViewer名をクリックするとMapViewer管理コンソールが表示されます。

  4. MapViewer管理コンソールの上部(「ホーム」リンクの隣)にある「管理」リンクをクリックします。

  5. MapViewer管理のユーザー名とパスワードを入力します(通常ではWebLogic Server管理の場合と同じです)。

  6. MapViewer管理ホームページでは、様々な管理タスクを実行できます。たとえば、マップ・データ・ソースを構成するには、次の手順を実行します。

    1. ページの左上の「構成」をクリックします。

    2. 表示されたXMLテキスト領域で、コメントアウトされた<map_data_source>要素を見つけます。コメント文字を削除し、定義するデータ・ソースに対して有効となるように要素定義を変更します。

    3. 「保存と再起動」をクリックします。(MapViewerの再起動中に情報が表示されます。)

    4. MapViewerが再起動された後、「データソース」をクリックしてデータ・ソースが追加されていることを確認できます。

1.4.2 展開されたMapViewer EARフォルダのWebLogic Serverへの手動デプロイ

この項では、展開されたEARフォルダからMapViewerをWebLogic Serverに手動でデプロイする方法を説明します。内容は次のとおりです。

1.4.2.1 MapViewerを手動でデプロイするための前提条件

MapViewerを手動でデプロイするには、その前に次の操作が完了している必要があります。

  1. WebLogic Server 12cがインストール済である(1.4.1.1項「WebLogic Serverのインストール」を参照)

  2. 必要なJava Runtime Framework (JRF)コンポーネントが作成済である(1.4.1.2項「リポジトリ作成ユーティリティによる必要なJRFコンポーネントの作成」を参照)

  3. WebLogic Serverが構成済である(1.4.1.4項「WebLogic Serverの構成」を参照)

    (MapViewerおよびMapViewerサンプル・テンプレートが表示されず、選択できない場合、それは1.4.1.3項「Universal InstallerによるMapViewerのインストール」の手順をスキップしたからです。)

  4. WebLogic Serverが起動済である(1.4.1.5項「WebLogic Serverの起動およびMapViewerの構成」を参照)

1.4.2.2 MapViewer EARファイルのフォルダへの解凍

Oracle Technology NetworkからMapViewerのアーカイブ・ファイルmapviewer.earをダウンロードし、WebLogicを実行しているサーバーのディレクトリに解凍する必要があります。このディレクトリがMapViewerインストールの作業フォルダになり、デフォルトでは、MapViewerはこの場所から構成ファイルを読み取って、生成したマップ画像をサブディレクトリに保存します。これは(一時的ではなく)永続的なものにすることをお薦めします。同一のMapViewerバイナリを複数のホストで稼働する複数のWebLogic Serverにデプロイする場合は、共有ディレクトリにすることができます。

MapViewerディレクトリは、通常mapviewer.warまたはmapviewerという名前(またはMapViewerのデプロイ先のコンテキスト・パスと同じ名前)です。

次の手順では、/scratch/ul/mapviewerという名前のディレクトリをMapViewerの最上位ディレクトリに作成済であることを想定しています。別のディレクトリを作成した場合は、手順をそれに従って読み替えてください。次の手順に従って、このディレクトリにmapviewer.earファイルを解凍します。

  1. mapviewer.ear/scratch/ul/mapviewerにコピーします。

  2. カレント・ディレクトリが/scratch/ul/mapviewerでない場合は、このディレクトリに移動します。

  3. mapviewerrm.earmapviewer1.earという名前に変更します。

  4. mapviewer.earという名前のサブディレクトリを作成します。

  5. mapviewer1.earmapviewer.ear(つまり/scratch/ul/mapviewer/mapviewer.ear)に解凍します。

  6. mapviewer.earディレクトリに移動します。

  7. web.warweb1.warという名前に変更します。

  8. web.warという名前のサブディレクトリを作成します。

  9. web1.warweb.war(つまり/scratch/ul/mapviewer/mapviewer.ear/web.war)に解凍します。

  10. MapViewer構成ファイル(この例では/scratch/ul/mapviewer/mapviewer.ear/web.war/WEB-INF/conf/mapViewerConfig.xml)を必要に応じて変更し、ロギング・レベルの変更や永続的データソース定義の追加などを行います。この構成は後で変更することもできます。

これでmapviewer.earファイルは解凍され、構成済です。デプロイメント・ディレクトリ(mapviewer.earフォルダ)の下に、多数のサブディレクトリがあります。デバッグ、管理、手動構成を行うには、いくつかのサブディレクトリを少し探索し、それらを理解することが必要な場合もあります。このMapViewerデプロイメント例の主要サブディレクトリの一部を次に示します。

/mapviewer.ear
    adf/
    lib/
    META-INF/
    web.war/
       admin/
       fsmc/
        icons/
       jslib/
        main/
        mapbuilder/
        oracle/
        signed-jars/
        templatebuilder/
        templates/
       WEB-INF/
            lib/
            conf/
            log/
            classes/
            admin/

/web.war/fsmcディレクトリにはOracle Maps JavaScript V1 APIライブラリが含まれ、/web.war/jslibディレクトリにはOracle Maps JavaScript V2 APIライブラリが含まれています。ディレクトリ/web.war/WEB-INFとそのサブディレクトリには、一連のライブラリと、MapViewerの管理および構成用ファイルが含まれています。

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

注釈テーマについては、MapViewerはJAXB 2.xライブラリのjsr173_api.jarjaxb-api.jarjaxb-impl.jarおよびactivation.jarを使用します。

MapViewerのEARファイルは展開済フォルダに解凍されているので、WebLogic Serverへのフォルダのデプロイを開始できます。MapViewerのデプロイメント・ステージに進む前に、WebLogic Serverが適切に構成され、起動して実行中であることを確認する必要があります。

1.4.2.3 展開されたEARファイルからのMapViewerのデプロイ

展開されたMapViewer EARフォルダをWebLogic Serverにデプロイするには、次の手順を実行します。

  1. WebLogic Server管理コンソール・ページにログインします。

  2. WebLogic Serverが本番モードで構成されている場合は、サーバーをロックします。「チェンジ・センター」→「変更と再起動の表示」に移動し、「ロックして編集」をクリックします。

  3. 「ドメイン構造」→「デプロイメント」に移動します。

  4. 「デプロイメント」ページで、デプロイメント・リストの上にある「インストール」をクリックします。

  5. 「アプリケーション・インストール・アシスタント」の「インストールおよびデプロイの準備をするデプロイメントの選択」で、「パス」/scratch/ul.mapviewerを指定し、「現在の場所」mapviewer.ear (展開済EARフォルダ)を選択し、「次へ」をクリックします。

  6. 「ターゲット指定スタイルの選択」では、デフォルト(Install this deployment as an application)を受け入れます。「次へをクリックします。

  7. 「オプション設定」では、サービス・アクセスシビリティで「I will make this deployment accessible from the following location」を選択し、それ以外はデフォルトを受け入れます。

    このオプションにより、解凍されたMapViewerの場所がMapViewerの「作業」ディレクトリになります。また、将来MapViewerをアップグレードする際の作業が容易になり、新しいmapviewer.earファイルをこのディレクトリにアンパックし、WebLogic Serverを再起動するだけで、アップグレードが可能です。「終了」をクリックしてデプロイメントのサマリー・ページに進みます。

    「終了」をクリックします。

  8. MapViewerデプロイメントの「デプロイメントのサマリー」ページで、「チェンジ・センター」→「変更と再起動の表示」の下の「変更のアクティブ化」をクリックしてデプロイメントをアクティブ化します。

  9. 次のようにMapViewerを起動します。

    1. 「チェンジ・センター」→「変更と再起動の表示」に移動し、「ロックして編集」をクリックします。

    2. 「ドメイン構造」→「デプロイメント」に移動します。

    3. 「デプロイメント」リストで、mapviewerを選択します。

    4. 「デプロイメント」リストの下の「起動」→「すべてのリクエストを処理」をクリックします。

      これでMapViewerは起動されました(「状態」がActive)。

必要に応じて、MapViewer管理コンソールにログインして管理タスクを実行します(たとえば、1.4.1.5項「WebLogic Serverの起動およびMapViewerの構成」を参照してください)。

1.4.3 展開されていないMapViewer EARファイルのWebLogic Serverへの手動デプロイ

この項では、MapViewerアーカイブ・ファイルであるmapviewer.earファイルをWebLogic Server 12cにデプロイするための準備および手動でデプロイする方法を説明します。次のトピックについて説明します。

1.4.3.1 展開されていないEARファイルからMapViewerをインストールするための準備

展開されていない(アーカイブ)ファイルからMapViewerをデプロイするには、その前にフォルダを作成し、そのフォルダに構成ファイルをコピーしておく必要があります。フォルダの作成場所に関する要件はありませんが、MapViewerのプライベート・フォルダとして機能するフォルダを指定し、展開されたWEB-INF/confフォルダ下の構成ファイルを、confという名前のサブフォルダにコピーすることをお薦めします。このプライベート・フォルダは、一時デプロイメント・フォルダや、システムのインストール時またはアップグレード時に上書きされる可能性がある場所には配置しないようにする必要があります。構成ファイルは、WEB-INF/confフォルダからこのプライベート・フォルダのconfサブディレクトリにコピーする必要があります。(展開済フォルダの構造およびWEB-INF/confフォルダの内容の詳細は、1.4.2.2項「MapViewer EARファイルのフォルダへの解凍」を参照してください)。

WEB-INF/conf/confにコピーするファイルは、次のとおりです。

afwRules.xml
mapViewerConfig.xml
wmsConfig.xml
wmtsConfig.xml

Java EEサーバーをクラスタとして実行している場合は、MapViewerのプライベート・フォルダを共有ドライブに配置し、デプロイしたすべてのMapViewerバイナリから、そのフォルダを参照および使用できるようにすることを強くお薦めします。このプライベート・フォルダは、パブリック・フォルダとしてアクセスできないようにする必要があります。また、実行中にMapViewerにより、ログ・ファイルやキャッシュされたマップ・タイルなど、プライベート・フォルダ内の複数のフォルダおよびファイルが作成、変更されることにも注意してください。

このようなプライベート・フォルダを作成して編集可能な構成ファイルを格納することは、展開済EARフォルダからMapViewerをデプロイする場合にも適用されますが、実行中にMapViewerが展開済EARフォルダ内にファイルを作成したり、フォルダ内のファイルを変更しないように、フォルダを読取り専用にすることができます。

展開されていないEARファイルからのデプロイ、または読取り専用の展開済EARフォルダからのデプロイ、そのどちらの場合でも、外部mapViewerConfig.xmlファイルの場所を指定することにより、実行時にMapViewerがプライベート・フォルダの場所を突き止め、適切な構成ファイルから構成パラメータをロードできるようにする必要があります。デフォルトのプライベート・フォルダはMapViewer EARアーカイブのWEB-INF/フォルダで、WEB-INF/conf/は構成ファイルが格納されるフォルダです。

この例では、外部フォルダを/scratch/_maps/に設定しています。/scratch/_maps/confというサブフォルダを作成して、EARファイルのWEB-INF/confフォルダからWEB-INF/conf/confにコピーした構成ファイルを格納しています。

MapViewerが外部のmapViewerConfig.xmlファイルを見つけることができるように、このファイルの検索場所を指定する必要があります。これには様々な方法がありますが、どの方法を使用する場合でも、このmapViewerConfig.xmlファイルの絶対パスを指定すると、MapViewerがこのパスに基づいてプライベート・フォルダを導き出します。たとえば、外部フォルダが/scratch/_maps/conf/にあり、mapViewerConfig.xmlafwRules.xmlwmsConfig.xmlおよびwmtsConfig.xmlファイルをそこにコピーしたとします。この場合、起動時にMapViewerは、前述の方法で示した場所を記載順に確認し、最初に検出したmapViewerConfig.xmlファイルを使用します。MapViewerが場所を検出すると(この例では/scratch/_maps/)、そのフォルダをプライベート・フォルダとして使用します。

前述の方法で示した場所をすべて確認しても、外部のmapViewerConfig.xmlファイルを検出できない場合、MapViewerは、EARファイルのWEB-INF/conf/フォルダにあるデフォルトのmapViewerConfig.xmlファイルの検出を試行します。この場合は、結果的にMapViewerが従来のデプロイメント(展開済EARフォルダからのデプロイ)と同様に、デプロイメントから展開済EARフォルダ内にファイルを書き込むことになるため、デプロイメントは読取り専用になりません。

外部のmapViewerConfig.xmlファイルを使用する場合は、MapViewerが生成したマップ・イメージを保存するためのパブリック・フォルダも常に指定する必要があります(「生成したマップ・イメージを保存するパブリック・フォルダの指定」の項を参照)。

外部のmapViewerConfig.xmlファイルの検索場所を指定するには、次のいずれかの方法を使用します。

  • 方法1: JVMオプションの使用

    この方法では、Java EEサーバーの起動スクリプトに通常追加されるJVMオプションoracle.maps.configを使用して、外部のmapViewerConfig.xmlファイルの場所を指定します。たとえば、WebLogicサーバーの場合、このオプションをドメインのsetDomainEvn.shスクリプトに追加できます(このスクリプトの-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilderオプションの直後)。

    EXTRA_JAVA_PROPERTIES=
    "… -Doracle.maps.config=/scratch/_maps/conf/mapViewerConfig.xml … "
    

    変更後、MapViewerのデプロイメントを試行する前に、WebLogic Serverを再起動する必要があります。

  • 方法2: 使用 : web.xmlでの<context-param>要素の使用

    この方法では、デプロイメントの前に、MapViewer EARアーカイブ・ファイルのWEB-INF/フォルダに含まれているweb.xmlファイルを変更する必要があります。web.xmlファイルの<description>要素の直後に新しい<context-param>要素を追加して、外部構成ファイルの場所を指定します。例:

    <context-param>
         <param-name>oracle.maps.config</param-name>
         <param-value>/scratch/_maps/conf/mapViewerConfig.xml</param-value>
    </context-param>
    
  • 方法3: クラスパスでのプロパティ・ファイルの使用

    この方法では、プロパティ・ファイルを作成し、それをMapViewerクラスパスに配置します。次の手順を実行します。

    1. mapViewerConfig.xmlファイルの場所を参照する1つの行が含まれた、config.propertiesという名前のテキスト・ファイルを作成します。例:

      oracle.maps.config=/scratch/_maps/conf/mapViewerConfig.xml
      
    2. 空のフォルダoracle/とサブフォルダmaps/を作成し、config.propertiesファイルをmaps/サブフォルダに保存します。つまり、次のようなパスになります。

      oracle/maps/config.properties
      
    3. このパスとファイルを含むJARアーカイブを作成し、oracleの親フォルダ内からjarコマンドを実行します。(JARファイルには任意の名前を付けることができます。)例:

      jar cvf maps_config.jar oracle
      
    4. この新しく作成したJARファイルをMapViewerのクラスパスに配置します。たとえば、WebLogic Serverでは、このjarをドメインのlibフォルダに配置できます。例:

      /scratch/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/lib
      
1.4.3.1.1 生成したマップ・イメージを保存するパブリック・フォルダの指定

外部のmapViewerConfig.xmlファイルを使用する場合は、MapViewerが生成したマップ・イメージを保存するためのパブリック・フォルダも指定して、ユーザーとMapViewerクライアント・アプリケーションが、Web経由でこれらにアクセスできるようにする必要があります。これを行うには、外部のmapViewerConfig.xmlファイルに含まれる<save_images_at>要素に適切なパス属性を指定します。

<save_images_at>要素がコメント化されていないことを確認してください。(対照的に、従来のデプロイメントでは、<save_images_at>要素をコメント化したままにすることがよくあります。この場合、MapViewerは展開済WARファイルのimagesフォルダを使用して、生成したマップ・イメージを保存します。)

ここでは、MapViewer EARアーカイブまたはフォルダ内の場所を指すパスを指定しないようにする必要があります。

クラスタ内で複数のMapViewerインスタンスを実行している場合、このパブリック・フォルダは共有ドライブに配置する必要があります。

1.4.3.2 展開されていないEARファイルからのMapViewerのインストール

この項では、アーカイブ(展開されていない)EARファイルからMapViewerを手動でデプロイする場合の手順を説明します。


注意:

この項の手順を実行する前に、Oracle Technology Networkからmapviewer.earファイルをダウンロードして/scratch/ul/mapviewerなどのフォルダに保存し、1.4.2.1項「MapViewerを手動でデプロイするための前提条件」に示された前提条件を満たしていることも確認する必要があります。

  1. WebLogic Server管理コンソール・ページにログインします。

  2. WebLogic Serverが本番モードで構成されている場合は、サーバーをロックします。「チェンジ・センター」→「変更と再起動の表示」に移動し、「ロックして編集」をクリックします。

  3. 「ドメイン構造」→「デプロイメント」に移動します。

  4. 「デプロイメント」ページで、デプロイメント・リストの上にある「インストール」をクリックします。

  5. 「アプリケーション・インストール・アシスタント」の「インストールおよびデプロイの準備をするデプロイメントの選択」で、「パス」/scratch/ul.mapviewerを指定し、「現在の場所」mapviewer.ear (展開済EARフォルダ)を選択し、「次へ」をクリックします。

  6. 「ターゲット指定スタイルの選択」では、デフォルト(Install this deployment as an application)を受け入れます。「次へをクリックします。

  7. 「オプション設定」で、デフォルトを受け入れて「終了」をクリックします。

  8. MapViewerデプロイメントの「デプロイメントのサマリー」ページで、「チェンジ・センター」→「変更と再起動の表示」の下の「変更のアクティブ化」をクリックしてデプロイメントをアクティブ化します。

  9. 次のようにMapViewerを起動します。

    1. 「チェンジ・センター」→「変更と再起動の表示」に移動し、「ロックして編集」をクリックします。

    2. 「ドメイン構造」→「デプロイメント」に移動します。

    3. 「デプロイメント」リストで、mapviewerを選択します。

    4. 「デプロイメント」リストの下の「起動」→「すべてのリクエストを処理」をクリックします。

      これでMapViewerは起動されました(「状態」がActive)。

1.4.4 MapViewerのデプロイ後

MapViewerのデプロイ後に、次の1つ以上の操作の実行が必要な場合があります。

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

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

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

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

Ver12.1.3_B140122.0700

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

サーバーが正しく起動または初期化されていない場合は、レスポンスが返されないか、500 internal server errorというメッセージが表示されます。

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

ただし、このレスポンス・メッセージの受信が続く場合は、デプロイに問題がある可能性があります。この場合、ログ・ファイルを調べて根本的な原因を特定する必要があります。

1.4.4.2 SQLスクリプトの実行

ターゲットのOracle Databaseバージョンが12.1以上である場合は、このトピックで説明するスクリプトを実行する必要はありません。

ターゲット・データベースがOracle Database 12.1未満の場合は、少なくとも1つのスクリプト(場合によってはそれ以上)を実行する必要があります。実行する各スクリプトは、MapViewerが空間データのレンダリングを実行することになる各ターゲットのOracleデータベース上で実行する必要があります。

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

  • USER_SDO_MAPS

  • USER_SDO_THEMES

  • USER_SDO_STYLES

  • USER_SDO_CACHED_MAPS

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

SQL> @$MV_HOME/WEB-INF/admin/mcsdefinition.sql

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

SQL> @$MV_HOME/WEB-INF/admin/mapdefinition.sql
SQL> @$MV_HOME/WEB-INF/admin/defaultstyles.sql

1.4.4.3 MapViewer配列タイプの作成(必要な場合)

接続先のそれぞれのデータベース・スキーマについて、MapViewerは、一部の事前定義済みテーマに存在する可能性のある配列タイプバインディング変数をサポートする、以下のSQL配列タイプがあるかどうかをチェックします。

  • MV_STRINGLIST

  • MV_NUMBERLIST

  • MV_DATELIST

これらのタイプが存在しない場合、MapViewerはMapViewerデータソースに関連付けられたデータベース・スキーマにこれらを作成しようとします。ただし、スキーマに関連するユーザーに新規のタイプを作成する十分な権限がない場合、権限のあるユーザーがデータソース・スキーマに接続して以下の文を入力することにより、タイプを作成する必要があります。

CREATE or REPLACE type MV_STRINGLIST as TABLE of VARCHAR2(1000);
CREATE or REPLACE type MV_NUMBERLIST as TABLE of NUMBER;
CREATE or REPLACE type MV_DATELIST as TABLE of DATE;

1.5 MapViewerのアップグレード

MapViewerリリース11gの既存インストール(11.1.1.7以上)がWebLogic Server 11gにデプロイ済であり、それをWebLogic Server 12cでのMapViewer 12cにアップグレードする場合は、この項の手順を実行してください。これらの手順を実行すると、使用していた古いMapViewerの構成をOracle Fusion Middlewareリリース12.1.3以上で使用できるようになります。

主な手順は次のとおりです。

  1. 古いWebLogic Serverの停止

  2. WebLogic Server 12cでのMapViewerのデプロイ

  3. アップグレード・アシスタント・ウィザードの実行

1.5.1 古いWebLogic Serverの停止

WebLogic 12cに新しいMapViewer 12cバージョンのデプロイを開始する前に、古いWebLogic Server (たとえば、WebLogic Server 11g)を停止する必要があります。

管理コンソール・ページまたはコマンド・ライン・ウィンドウのコマンド・ラインを使用してWebLogic Serverを停止できます。

1.5.2 WebLogic Server 12cでのMapViewerのデプロイ

1.4項「WebLogic Server 12cのMapViewerのインストールおよびデプロイ」のガイドラインに従って、新しいMapViewer 12cをWeblogic Server 12cにデプロイします。新しいMapViewerは、1.4項の任意のデプロイメント・オプションでデプロイできます。デプロイメントが完了したら、MapViewerは起動され実行中である必要があります。

1.5.3 アップグレード・アシスタント・ウィザードの実行

古いWebLogic Serverが停止し、新しくデプロイされたMapViewerが起動され実行中になったら、次の手順に従ってアップグレードします。この手順では、新しいWebLogic Server 12cのOracle Homeは、/scratch/Oracle/Middleware12c/Oracle_Homeとしています。

  1. $Oracle_Home/oracle_common/upgrade/binに移動し、ua (アップグレード・アシスタント・ウィザード)プログラムを実行します。

    ./ua
    
  2. アップグレード・アシスタントのようこそページが表示されたら、「次へ」をクリックします。

  3. Weblogicコンポーネント・ページで、アップグレード・タイプとしてWebLogicコンポーネント構成を選択し、「次へ」をクリックします。

    「ドメイン・ディレクトリ」に、アップグレードするWeblogicドメイン・ディレクトリを指定します。

    「次へ」をクリックします。

  4. コンポーネント・リストのページでは、アップグレードするコンポーネントの一覧にOracle MapViewerが含まれていることを確認し、「次へ」をクリックします。

  5. MapViewerのアップグレード・ページの「ファイル」には、古いMapViewerデプロイメントのmapViewerConfig.xmlファイルを指定し、「次へ」をクリックします。

    このファイルは、システム構成設定の移行のために必要です。また、このファイルの場所から、古いMapViewerのデプロイメント・ディレクトリも取得されます。

  6. 確認のページでは、アップグレード前のコンポーネントの事前チェック・ステータスを参照します(たとえば、コンポーネントのアップグレードに進むことができることを示すsucceeded、またはupgrade not necessary)。「次へ」をクリックします。

  7. アップグレード・サマリー・ページでは、アップグレードされる構成の一覧を確認し、「アップグレード」をクリックします。

  8. アップグレードの進行状況ページに、アップグレードの進行状況およびアップグレードされたコンポーネントのアップグレード・ステータスが表示されます。

アップグレード・アシスタントを閉じた後、WebLogic Server管理コンソールに戻ります。デプロイメント表から、MapViewerを停止してから起動し、アップグレードを有効にします。

MapViewerの管理コンソールにログインし(1.6項「MapViewerの管理」を参照)、構成およびデータソースを表示すると、古いMapViewerが新しくデプロイされたMapViewerに正常に移行されていることがわかります。

1.6 MapViewerの管理

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

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

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

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

図1-3の説明は図の下のリンクをクリックしてください。
「図1-3 MapViewer「ようこそ」ページ」の説明

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

ユーザー名: adminを入力します。

パスワード: GlassfishインストールのWebLogic ServerのServer Controlページにログインする際に使用するパスワードを入力します。

ログインすると、図1-4に示すMapViewer管理ページが(「管理」タブに)表示されます。

図1-4 MapViewer管理ページ

図1-4の説明は図の下のリンクをクリックしてください。
「図1-4 MapViewer管理ページ」の説明

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

1.6.2 MapViewerの構成

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

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

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

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

  • ログ情報。コンテナ制御ロギング(推奨)または<logging>要素で定義されます(1.6.2.1項を参照)。

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

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

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

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

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

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

  • 永続マップ・データソース。<map_data_source>要素で定義されます(1.6.2.15項を参照)。

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

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

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

  • マップ・タイル・サーバー構成。<map_tile_server>要素で定義されます。

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

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

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

<?xml version="1.0" ?>
<!-- This is the configuration file for 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 2009, 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 Mapviewer
    </title>
    <abstract>
        This WMS service is provided through 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 Tile Server Setting  ******************* -->
  <!-- ****************************************************************** -->
  <!-- Uncomment and modify the following to customize the map tile server. 
 
       <tile_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/tilecache
       
          default_root_path:  The default root directory under which the cached 
                              tile images are stored. 
  -->
 
  <!--
     <map_tile_server>
       <tile_storage default_root_path="/scratch/tilecachetest/"/>
    </map_tile_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.example.com"
                   jdbc_sid="orcl"
                   jdbc_port="1521"
                   jdbc_user="scott"
                   jdbc_password="!password" 
                   jdbc_mode="thin"
                   number_of_mappers="3"
   />
   -->
 
</MapperConfig>

MapViewerの構成トピックには、次のサブトピックがあります。

1.6.2.1 ログ情報の指定

MapViewerには、ランタイム情報およびイベントを記録するための柔軟なロギング・メカニズムが備わっています。ログ出力の粒度、量、形式および出力先を設定できます。ログ・ファイルの最大サイズや、自動的なログ・ファイル・ローテーションも設定できます。

MapViewerのロギングを構成する方法には、コンテナ制御アプローチと、構成ファイルの<logging>要素を使用する従来のロギングの2つがあります。

  • コンテナ制御ロギング: MapViewerがOracle Fusion Middleware 10gR3インスタンスにデプロイされている場合は、Oracle Fusion Middleware 10gR3 Controlを使用します。MapViewerがスタンドアロンOC4Jインスタンスにデプロイされている場合は、$OC4J_HOME/j2ee/home/config/j2ee-logging.xmlファイルを直接編集します。このアプローチでは、Fusion Middleware 10gR3の診断ロギング・メカニズムを最大限に活用して、最大ログ・ファイル・サイズやログ・ファイル・ローテーションなどの高度な機能を利用できます。

  • 従来のロギング: mapViewerConfig.xmlファイルの<logging>要素を使用する方法です。MapViewerがWebLogic Serverにデプロイされる場合、MapViewerのロギング動作を構成する唯一のサポートされた方法は従来のロギングです。

コンテナ制御ロギング


注意:

コンテナ制御ロギングを機能させるには、mapViewerConfig.xmlファイルの<logging>要素をコメント化するか、削除します。デフォルトでは、この要素はコメント化(無効化)されているため、コンテナ制御ロギング設定が正しく機能します。<logging>要素を有効にすると(その属性にはその他の変更を行わなくても)、MapViewerではコンテナ制御ロギング設定が無視されます。

MapViewerがOC4J 11gのスタンドアロン・インスタンスにデプロイされている場合、MapViewerのロギングを構成するには、$OC4J_HOME/j2ee/home/config/j2ee-logging.xmlファイルを編集します。たとえば、このファイルにある次のコードは、MapViewerのすべてのメッセージをFINESTレベルでデフォルトのOC4Jログ・ファイル(j2ee/home/log/oc4j/diagnostic.log)に記録します。

<log_handler name='oc4j-handler' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='path' value='../log/oc4j'/>
      <property name='maxFileSize' value='10485700'/>
      <property name='maxLogSize' value='1048576'/>
      <property name='encoding' value='UTF-8'/>
      <property name='supplementalAttributes' value='J2EE_APP.name,J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name'/>
 </log_handler>

このコードでは、デフォルトのOC4Jログ・ハンドラを定義しています。これは、ログ・ファイルの保存場所や最大ファイル・サイズなどの情報を指定します。このようなログ・ハンドラは、OC4Jのコンポーネントやアプリケーション(MapViewerなど)で作成される複数の実際のログ出力と関連付けることができます。

次の例では、MapViewerのログ出力(この場合は、すべての内部ログ・メッセージの生成を行うログ出力)を前述のログ・ハンドラに関連付けています。

<logger name="oracle.mapviewer.logger" level="FINEST" useParentHandlers='false'>
    <handler name='oc4j-handler'/>
</logger>

この例では、oracle.mapviewer.loggerという名前のログ出力により作成されたすべてのログ・レコードをoc4j-handlerという名前のログ・ハンドラで処理するようにOC4Jに指示しています。ロギング・レベルをFINESTに設定しているため、MapViewerによって生成されたすべてのメッセージがログ・ファイルに表示されます。ここでサポートされるロギング・レベルは、標準のJavaロギング・レベル(SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST)です。

コンテナ制御ロギングでは、MapViewerによって次のログ出力が使用されます。

  • oracle.mapviewer.logger。MapViewerのすべてのサーバー側のコンポーネントにより、診断レコードを生成するために使用されます。

  • oracle.mapviewer.access。MapViewerにより、ユーザー・アクセス・レコードのみを記録するために使用されます。

前述の例では、oc4j-handlerという名前の、すでにj2ee-logging.xmlファイルに定義されている既存のログ・ハンドラを関連付けました。j2ee-logging.xmlファイルに独自のログ・ハンドラを定義すれば、最大ファイル・サイズやファイル・ローテーションに加えて、ログ・ファイルの場所や名前を変更することもできます。次の例では、MapViewerのアクセス・レコードのみを格納する新しいログ・ハンドラを作成しています。

<log_handler name='mv-handler' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='path' value='../log/mapaccess/access.log'/>
      <property name='maxFileSize' value='600000'/>
      <property name='maxLogSize' value='10000'/>
      <property name='format' value='ODL-TEXT'/>
      <property name='encoding' value='UTF-8'/>
      <property name='supplementalAttributes' value='J2EE_APP.name'/>
</log_handler>

次の例では、この新しいログ・ハンドラを、oracle.mapviewer.accessという名前のMapViewerのアクセス・ログ出力に関連付けています。

<logger name='oracle.mapviewer.access' level='FINEST' useParentHandlers='false'>
    <handler name='mv-handler'/>
</logger>

アクセス・ログ・メッセージをログ・ファイルに表示するには、レベルをFINESTまたはFINERに設定する必要があることに注意してください。これで、OC4Jを再起動してマップ・リクエストを作成すると、OC4Jのlog/mapaccessディレクトリにある新しいログ・ファイル(access.log)に、MapViewerにアクセスしたユーザーのレコードが格納されます。

ロギング構成、特にFusion Middleware 10gR3 Controlを使用したロギングの構成方法の詳細は、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。

従来のロギング

コンテナ制御ロギングを使用しない場合は、従来のアプローチを使用できます。その場合、MapViewer構成ファイルの<logging>要素を非コメント化して変更する必要があります。

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

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

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

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

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

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

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

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

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

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

    デフォルト値: file_prefix=omsmap

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

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

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

    ただし、MapViewerをWebLogic Serverにデプロイする場合、path属性(../web/images)のデフォルト値は正しくありません。この場合のパス属性値は、../../imagesである必要があります。これは、物理的な"images"ディレクトリはmapviewer.ear/web.war/imagesであるからです。相対パスを使用すると、物理ディレクトリを解決するpath属性の値は../../imagesである必要があります。

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

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

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

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

1.6.2.3 管理(非マップ)リクエストの制限

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

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

管理リクエストを特定のIPアドレスのユーザーに制限するには、<ip_monitor>要素を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.6.2.4 Webプロキシの指定

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

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

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

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

  • タイトル

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

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

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

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

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

<global_map_config>
    <note text="Copyright (c) 2009, Example Corporation"
              font="sans serif"
              position="SOUTH_EAST"/>
    <title  text="Map Courtesy of Example 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_request>要素のtitle属性を指定することで、マップ・タイトルを設定できます。この場合、MapViewer構成ファイル内のグローバル・タイトルのかわりに、マップ・リクエスト内のタイトルが使用されます。<title>要素の属性については、次の点に注意してください。

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

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

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

    デフォルト値: NORTH

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

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

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

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

    デフォルト値: SOUTH_EAST

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

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

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

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

    デフォルト値: SOUTH_WEST

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

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

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

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

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

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

    デフォルト値: false

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


注意:

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

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

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

<security_config>要素を使用すると、リクエスト内の<info_request>要素をMapViewerが拒否するかどうかを指定できます。<info_request>要素は、単純なSQL文を実行して結果行をプレーン・テキストまたはXML形式で返すようMapViewerに要求するクライアントからのリクエストのタイプです。このリクエストは、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.6.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.6.2.9 カスタム空間プロバイダの登録

MapViewerでは、シェープファイルなどの外部(Oracle Spatial and Graph以外の)ネイティブ形式用に登録された空間プロバイダの実装が存在する場合、該当する形式の空間データをレンダリングできます。(カスタム・ジオメトリ・テーマに関連付けられる)外部空間データ・プロバイダの実装については、2.3.9項を参照してください。

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

<s_data_provider
  id="shapefileSDP"
  class="oracle.sdovis.ShapefileDataProvider"
  >
  <parameters>
    <parameter name="datadir" value="/temp/data" />
  </parameters>
</s_data_provider>

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

<parameters>要素では、該当するデータ・プロバイダがその初期化プロセスで使用する一連の初期化パラメータを指定します。この例では、シェープファイル・プロバイダのデータ・ディレクトリ・("datadir")パラメータによって、MapViewerがデータを検索するディレクトリが示されています。

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

テーマ・マップ層の生成時、MapViewerは外部ソースから生成される(各地域の売上高のような)非空間属性データと、データベースに格納されているベース・ジオメトリ(全地域の境界線)を結合できます。非空間データ・プロバイダの外部属性データを使用したテーマ・マッピングについては、2.3.12.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値は、該当するプロバイダに関連するすべてのマップ・リクエストで使用します。

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

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

1.6.2.11 SRSマッピングのカスタマイズ

<srs_mapping>要素を使用して、Oracle Spatial and Graph SDO_SRID値とEPSGコードのマッピングを定義する、SDO SRIDからEPSG SRIDへのマッピング・ファイルを指定できます。E.1.3項で説明するように、指定したマッピング・ファイルの各行には、SDO_SRID値とそれに対応するEPSGコードが含まれている必要があります。<srs_mapping>要素は、WMSテーマおよびWFSテーマで使用できます。

次の例では、<srs_mapping>要素を使用してSDO SRIDからEPSG SRIDへのマッピング・ファイルを指定しています。

<srs_mapping>
  <sdo_epsg_mapfile>
    ../config/epsg_srids.properties
  </sdo_epsg_mapfile>
</srs_mapping>

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

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

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

<wms_config host="www.my_corp.com" port="80"
            protocol="http" default_datasource="dsrc1"
            public_datasources="dsrc1,dsrc2">
  <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のポート部を指定します。

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

default_datasource属性は、機能レスポンスの取得に使用される基本データソースを指定します。この属性が定義されていない場合、データソースWMSが使用され、そのデータソースがこのMapViewerサーバーに存在する必要があります。

public_datasources属性では、GetCapabilitiesレスポンスでどのデータソース・コンテンツをリストするかを指定します。この属性が定義されていない場合、すべてのデータソース・コンテンツがリストされます。

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

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

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

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

1.6.2.13 WMTS GetCapabilitiesレスポンスのカスタマイズ

MapViewerは、Open Geospatial Consortium WMTS (Web Map Tile Service) 1.0.0に準拠したサーバーとして使用できます。これにより、WMTSリクエストを使用して、USER_SDO_CACHED_MAPSメタデータ・ビューに定義されたタイル層を取得できます。WMTSクライアントは、GetCapabilitiesリクエストをMapViewerに送信できます。MapViewerはリクエスト元のクライアントにとって重要な、自ら保持しているタイル層のリストや、データ・プロバイダの名前、キーワードのリストなどの情報をレスポンスで返送します。mapViewerConfig.xmlと同じフォルダに格納された、wmtsConfig.xmlという名前のWMTS構成ファイルを編集すると、このようなカスタマイズされた情報を提供できます。

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

<wmts_config>
     <public_datasources>
        <public_datasource name="MVDEMO" include_all_tile_layers="true"/>
        <public_datasource name="ELOCATION">
          <tile_layers>
            <tile_layer name="WORLD_MAP"/>
          </tile_layers>
        </public_datasource> 
    </public_datasources>
    <sdo_epsg_mapfile>
      ../config/epsg_srid.properties
    </sdo_epsg_mapfile>
   <ServiceAttributes>              
    <ServiceIdentification> 
        <Title>Web Map Tile Service by myCorp</Title> 
        <Abstract> U.S. maps for state and county boundaries and big cities</Abstract>
        <Keywords> 
           <Keyword>Maps,U.S. State Boundaries,Cities</Keyword>
        </Keywords> 
    </ServiceIdentification>     
    <ServiceProvider> 
      <ProviderName>provider's name</ProviderName> 
        <ProviderSite url="http://www.myCorp.com/mySite"/> 
    </ServiceProvider> 
  </ServiceAttributes>
</wmts_config>

<public_datasources>要素に、<public_datasource>下位要素を含めることができます。この下位要素は、WMTS GetCapabilitiesレスポンスにリストされるタイル層のデータソースを指定します。この<public_datasources>要素が定義されていない場合は、すべてのデータ・ソースのタイル層がリストされます。また、この要素が定義されているが、<public_datasource>下位要素が含まれていない場合、データ・ソースからのタイル層はレスポンスにリストされません。

<public_datasource>要素にはname属性を含める必要があります。この属性は、データ・ソースの名前を示します。

include_all_tile_layers属性はオプションであり、デフォルトはfalseです。trueに設定すると、そのデータ・ソースのすべてのタイル層がレスポンスにリストされます。

<tile_layer>要素にはname属性を含める必要があります。この属性は、親要素に定義されたデータ・ソースからレスポンスに含めるタイル層の名前を示します。

<sdo_epsg_mapfile>要素は、Oracle Spatial and Graph (SDO) SRID値から、多くのWMTSリクエストおよびレスポンスで一般的に使用されているEPSG SRID値へのマッピングを定義するテキスト・ファイルを指定します。このマッピング・ファイルの詳細は、E.1.3項「SDOからEPSG SRIDへのマッピング・ファイル」を参照してください。

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

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

<Keywords>要素は、MapViewerサーバーによって処理される層のタイプを最も適切に表す一連のキーワード(<Keyword>下位要素)を指定します。

詳細は、wmtsConfig.xmlファイルのコメントを参照してください。

1.6.2.14 Oracle Maps用マップ・タイル・サーバーの構成

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

<map_tile_server>
   <tile_storage default_root_path="/scratch/tilecache/" />
   <logging log_level="finest" log_thread_name="false" log_time="true">
      <log_output name="System.err"/>
   </logging>
</map_tile_server>

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

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

1.6.2.15 永続マップ・データソースの定義

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

<map_data_source name="mvdemo"
                 jdbc_host="mapsrus.example.com"
                 jdbc_sid="orcl"
                 jdbc_port="1521"
                 jdbc_user="scott"
                 jdbc_password="!password"
                 jdbc_mode="thin"
                 number_of_mappers="5"
                 allow_jdbc_theme_based_foi="true"
                 plsql_package="web_user_info"
/>

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

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

  • 必要なすべての接続情報、コンテナ・データソース名またはネット・サービス名(TNS名)のいずれかを指定する必要があります。つまり、jdbc_hostjdbc_sidjdbc_portjdbc_user、またはcontainer_ds、またはjdbc_tns_nameのうちどれか1つのみを指定する必要があります(いずれもこの項で説明します)。

    データソースを定義したデータベースを再起動して、そのデータソースがjdbc_host/jdbc_sid/jdbc_port属性またはjdbc_tns_name属性から作成される場合、データベースがオンラインに戻り次第、MapViewerは通常の動作(たとえば、マップ・リクエストに正しく作成されたマップで応答するなど)を再開します。

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

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

    MapViewerによってこのパスワード文字列が変更されることはありません。大文字または小文字の変換も行われません。データベースで大/小文字を区別したパスワードが使用される場合は、指定したパスワードがデータベースのパスワードと完全に一致する必要があります。

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

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

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

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

    container_ds属性を使用していて、データソースを定義したデータベースを再起動したらすぐにMapViewerが通常の動作(たとえば、マップ・リクエストに正しく作成されたマップで応答するなど)を自動的に再開するようにする場合、アプリケーションに戻される前に接続を常に検証するように、コンテナ・データソースに指示する必要があります。このオプションがサポートされているかどうか、またサポートされている場合には有効化する方法を、ミドルウェアのドキュメントで確認してください。

  • jdbc_tns_name属性では、tnsnames.oraファイルで定義されているネット・サービス名を識別します。

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

    number_of_mappersに大きな値(50、100など)を指定すると、全体的なスループットを向上できますが、MapViewerがより多くの同時マップ・リクエストを処理しようとするため、ピーク負荷時のランタイム・メモリーとCPU使用率も増加させることになります。これは、アクティブなデータベース・セッションの数も増加させます。したがって、この属性にあまり大きな数値を設定しないようにしてください。


    注意:

    廃止されるmax_connections属性は、レンダリングに影響を与えなくなり、無視されます。number_of_mappers属性の値は、データソースに対して常にオープンになっているデータベース接続またはセッションの実際の最大数に影響を与えます。

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

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

  • plsql_package属性では、セキュアなマップ・レンダリング用に使用するPL/SQLパッケージを指定できます(1.9項を参照)。

  • web_user_type属性(この項の例には表示されていません)を使用すると、認証済ユーザー名のソースを指定できます。これは、セキュアなソース・レンダリングで使用するPL/SQLパッケージの指定とあわせてCookieから認証済ユーザー名を取得する場合に特に有効です。web_user_type属性および使用例の詳細は、1.9.2項を参照してください。

1.6.2.16 HTML5 API用のマップ・データ・サーバーの構成および保護

Oracle Fusion Middlewareリリース11.1.1.7以降のMapViewerから、テーマがデフォルトでストリーミング可能になり、これらのテーマを保護するには認証の追加が必要です。それには、MapViewer web.xmlファイルにセキュリティ制約を追加し、mds.xmlファイルを構成してテーマへのアクセスを認可します。

マップ・データ・サーバー(MDS)サーバー・コンポーネントにより、Oracle Maps V2 APIへのベクトル形式の地理空間データのストリーミングが容易になります(6.6.2項「JavaScript API V2」および6.7.2項「V2 APIの使用」を参照)。MDSは、ブラウザ・クライアントがMapViewerサーバー・インスタンスから任意の事前定義済または動的(JDBC)テーマのベクトル・データをリクエストするためのRESTful APIを提供します。このサービスへのアクセスをセキュアまたは保護するための唯一の方法は、MapViewer web.xml デプロイメント・ファイルにセキュリティ制約を追加することです。次に例を示します。

<security-constraint>
<web-resource-collection>
. . .
<url-pattern>/dataserver/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>map_admin_role</role-name>
</auth-constraint>
</security-constraint>

この例は、相対パス/dataserver/を持つすべての受信URLにセキュリティ制約を追加します。MDSサーブレットは、パスに/dataserverが含まれているURLのみに応答するため、この制約はMDSへのすべてのアクセスを効果的に保護します。したがって、マップ・データ・サーバーにアクセスするすべてのアプリケーションまたはWebクライアントが適切な認証を要求され、map_admin_roleロールを持つユーザーのみがアクセスを許可されます。(MDSなどのJEEサーブレットを保護する方法の詳細は、Java EEおよびWebLogic Serverのドキュメントを参照してください。)

MapViewerバージョン11.1.1.7.1以降では、MDS URLパターンにセキュリティ制約を追加したかどうかにかかわらず、すべての事前定義済または動的(JDBC)テーマのベクトル・データへのアクセスはデフォルトでブロックされます。つまり、たとえば/dataserver/*のURLが保護されており、HTML5アプリケーションが認証に成功した場合でも、適切な認可がないテーマのデータにアクセスできません。Oracle Maps HTML5アプリケーションが適切な認可のないテーマのロードまたは表示を試みると、「このデータソースはストリーミング・アクセスが許可されていません。」という内容を含む一般的なエラー・メッセージが表示されます。

データソースのテーマへのアクセス権を付与するには、mds.xml構成ファイルで明示的に設定する必要があります。通常ではこのファイルは、WEB-INF/confフォルダまたはoracle.maps.configディレクティブによって示されたフォルダなど、主要なMapViewer構成ファイルmapViewerConfig.xmlと同じフォルダ内にあります。(現在、MapViewer管理コンソールにはmds.xmlの内容を修正するためのユーザー・インタフェースが提供されていないため、このファイルを手動で編集する必要があります。)

例1-3に示すmds.xmlファイルでは、2つのMapViewerデータソース、mvdemoおよびmy-dataが、特定のテーマをクライアントにストリームできるように構成されています。

例1-3 mds.xmlファイルの構成

<mds_config>
 
<data_source name="mvdemo">
<allow_predefined_themes>true</allow_predefined_themes>
<deny>my_secret_theme</deny>
<allow_dynamic_themes>true</allow_dynamic_themes>
</data_source>
 
<data_source name="my-data">
<allow_predefined_themes>false</allow_predefined_themes>
<allow>
<theme>public_points_theme</theme>
<theme>office_locations*</theme>
</allow>
<allow_dynamic_themes>false</allow_dynamic_themes>
</data_source>
 
</mds_config>

例1-3の内容は次のとおりです。

  • 各データソースは、独自の<data_source>要素内でそれぞれのテーマを認可します。この要素では、2つのタグ、<allow_predefined_themes>および<allow_dynamic_themes>が、この2つのテーマ・タイプへの全体的またはデフォルトのアクセス制御を提供します。動的(JDBC)テーマは、データソース定義内(メインmapViewerConfig.xmlファイル)で無効にすることもできます。動的テーマがデータソース定義で無効になっている場合、その設定は常に(mds.xmlファイルにどのように設定されているかに関係なく)優先されます。

  • mvdemoデータソースでは、デフォルトですべてのクライアントが事前定義済テーマおよび動的(JDBC)テーマのベクトル・データにアクセスできます。これはデータの特性を考えると(一般公開されたサンプルからのデータ)、妥当な選択です。ただし、my_secret_themeテーマには<deny>タグが使用されており、例外になっています。

  • my-dataデータソースでは、両方のテーマ・タイプへのアクセスがデフォルトでブロックされています。この場合は、<allow>タグを使用して例外を追加します(ストリーミングのために特定のテーマを開く)。<allow>タグおよび<deny>タグでは、テーマの名前またはパターンは大文字と小文字が区別されません。また、ワイルド・カード文字*(アスタリスク)を使用して複数のテーマに一致させることができます。この例では<allow>タグを使用して、public_points_themeテーマおよび名前がoffice_locationsで始まるすべてのテーマをストリーミングのために開放していますが、他のすべてのテーマはブロックされています。このデータソースでは、動的(SQL)テーマは許可されません。

mds.xmlを変更した場合、変更を有効にするには、デプロイされたMapViewerインスタンスを再起動する必要があります。

1.6.3 MapViewer管理タスクの実行

MapViewerの構成方法だけでなく、MapViewer管理ページを使用したその他の重要な管理タスクの実行方法も知っておく必要があります。このページへのログイン方法については、1.6.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 Tile Layers」の下のデータソースを選択します。キャッシュ・レベルでは、キャッシュの削除、キャッシュ詳細の表示およびキャッシュのオフライン/オンラインの切り替えを実行できます。タイル・レベルでは、タイルの消去、プリフェッチ、リフレッシュ、ズーム・レベルの指定、枠ボックスの指定などの操作を実行できます。

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

1.7 Oracle Real Application ClustersとMapViewer

データベースがOracle Real Application Cluster (Oracle RAC)である場合、次のいずれかのオプションを使用してOracle RACデータベースに接続できます。

  • WebLogic Server 12cなどのJava EEコンテナのデータソースを介してMapViewerがデータベースに接続するようにします。

    Oracle RACデータベースに接続するJDBCデータソースをWebLogic Server Enterprise Managerに作成します(1.7.1項を参照)。このデータソースは、JNDIルックアップを利用してMapViewerおよびその他のアプリケーションで使用できます。

    このオプションは、管理者がこれらの種類の接続をWebLogic Server用に作成および監視するサイト、または接続が複数のアプリケーションによって使用されるサイトでよく使用されます。また、このオプションでは、データベース接続の詳細(データベースのユーザー名やパスワードなど)がアプリケーションで非表示になります。

  • MapViewerが直接にデータベース・サービスに接続できるようにします。

    データベースSIDではなく、Oracle RACサービス名を使用してMapViewerデータソースを直接に定義します(1.7.2項を参照)。

    このオプションは、前述のオプションよりも実装が簡単です。

これらのオプションのいずれかを実行した後、MapViewerを再起動します(1.7.3項を参照)。

1.7.1 MapViewerサーバーのOracle RACコンテナ・データソースの作成

Oracle RAC MapViewerコンテナにJDBCデータソースを作成し、MapViewer構成ファイルでそのコンテナ・データソースを使用できます。その手順は次のとおりです。

  1. Oracle RACコンテナ・データソースの作成

  2. コンテナ・データソースによるMapViewerデータソースの作成

1.7.1.1 Oracle RACコンテナ・データソースの作成

Oracle Enterprise Manager 12c以降を使用して、Oracle RACデータベースに接続するデータソースを作成できます。

次の手順に、GridLinkデータソースの作成方法を示します。(この手順の後にマルチ・データソースの作成方法を示します。)

  1. Enterprise Managerにログインし、「ターゲット・ナビゲーション」ペインで、MapViewerサーバーが含まれているサーバー・インスタンスをクリックします。

    図1-5で、「WebLogicドメイン」下の「map_viewer1」をクリックすると、ウィンドウのメイン領域にmap_viewer1のサーバー情報が表示されます。

    図1-5 サーバー・インスタンスの選択

    図1-5の説明は図の下のリンクをクリックしてください。
    「図1-5 サーバー・インスタンスの選択」の説明

  2. 図1-6に示すように、「WebLogic Server」をクリックし、「JDBCデータソース」を選択します。

    図1-6 JDBCデータソースの表示

    図1-6の説明は図の下のリンクをクリックしてください。
    「図1-6 JDBCデータソースの表示」の説明

  3. 図1-7に示すように、「JDBCデータソース」で「作成」をクリックして「GridLinkデータ・ソース」を選択します。

    図1-7 GridLinkデータソースの作成

    図1-7の説明は図の下のリンクをクリックしてください。
    「図1-7 GridLinkデータソースの作成」の説明

  4. 新規JDBCデータソースの作成ウィザードで、必要な情報を入力します。たとえば、jdbc/mvdemoというコンテナ・データソースを作成する場合は次のとおりです。

    1. データソース・プロパティ:データソース名にはmvdemoドライバ・サービス名にはOracle Driver (Thin XA) for GridLink Connections Versions: AnyJNDI名にはjdbc/mvdemoと指定します。

    2. 接続プロパティ:適切なホストにデータベース・ユーザーmvdemoのURLを生成します。

    3. トランザクション・プロパティ:表示されたトランザクション・プロパティを受け入れます。

    4. ONSプロパティ:表示されたトランザクション・プロパティを受け入れるか、必要に応じて変更します。

    5. ターゲットの選択:「名前」の下のmap_viewer1 を選択して目的のサーバーにJDBCデータソースをデプロイします。

    6. 確認:新規に作成するデータソースのプロパティを確認します。変更する必要がある場合は、戻って変更を加えてからこのページに戻ります。

前述の手順のようなGridLinkデータソースではなく、マルチ・データソースを作成するには、必要に応じて手順を変えてください。例:

  1. Enterprise Managerにログインし、「ターゲット・ナビゲーション」ペインで、MapViewerサーバーが含まれているサーバー・インスタンスをクリックします。

    図1-8で、「WebLogicドメイン」下の「map_viewer1」をクリックすると、ウィンドウのメイン領域にmap_viewer1のサーバー情報が表示されます。

    図1-8 サーバー・インスタンスの選択

    図1-8の説明は図の下のリンクをクリックしてください。
    「図1-8 サーバー・インスタンスの選択」の説明

  2. 図1-9に示すように、「WebLogic Server」をクリックし、「JDBCデータソース」を選択します。

    図1-9 JDBCデータソースの表示

    図1-9の説明は図の下のリンクをクリックしてください。
    「図1-9 JDBCデータソースの表示」の説明

  3. 図1-10に示すように、「JDBCデータソース」で「作成」をクリックして「マルチ・データソース」を選択します。

    図1-10 マルチ・データソースの作成

    図1-10の説明は図の下のリンクをクリックしてください。
    「図1-10 マルチ・データソースの作成」の説明

  4. 必要な情報を入力します。例:

    1. データソース・プロパティ:データソース名にはmvdemoJNDI名にはjdbc/mvdemoアルゴリズム・タイプにはFailoverと指定します。

    2. ターゲットの選択:「名前」の下のmap_viewer1 を選択します。

    3. データソース・タイプの選択:デフォルト値を受け入れます(non-XA Driver)。

    4. 「新しいデータ・ソースの作成」をクリックします。

    5. 最初のデータソース・ノードのプロパティを指定します。例:名前mvdemo-rac0JNDI名jdbc/mvdemo-rac0データベース・タイプOracle

    6. データベース・ドライバには、Oracle's Driver (Thin) for Oracle RAC Service-Instance connections: Versions: Anyを選択します。

    7. デフォルト値を受け入れます(Supports Global TransactionsおよびOne-Phase Commit)。

    8. ノード1の接続プロパティを定義します。サービス名、データベース名、ホスト名、ポート、データベース・ユーザー名、パスワードおよびプロトコルの値を入力します。

    9. プロパティを確認し、「構成のテスト」をクリックします。成功した場合は、「次へ」をクリックします。

    10. MapViewerのデプロイ先サーバー(map_viewer1)を選択し、「終了」をクリックします。

    11. 次のページで、「新しいデータ・ソースの作成」をクリックして2番目のノードを作成および構成します。

    12. 2番目のデータソース・ノードのプロパティを指定します。例:名前mvdemo-rac1JNDI名jdbc/mvdemo-rac1データベース・タイプOracle

    13. データベース・ドライバには、Oracle's Driver (Thin) for Oracle RAC Service-Instance connections: Versions: Anyを選択します。

    14. デフォルト値を受け入れます(Supports Global TransactionsおよびOne-Phase Commit)。

    15. ノード2の接続プロパティを定義します。サービス名、データベース名、ホスト名、ポート、データベース・ユーザー名、パスワードおよびプロトコルの値を入力します。

    16. プロパティを確認し、「構成のテスト」をクリックします。成功した場合は、「次へ」をクリックします。

    17. MapViewerのデプロイ先サーバー(map_viewer1)を選択し、「終了」をクリックします。

    18. ノードの追加が必要な場合は、「新しいデータ・ソースの作成」をクリックして、前述のような方法で各ノードを作成します。

1.7.1.2 コンテナ・データソースによるMapViewerデータソースの作成

MapViewerコンテナのコンテナ・データソースを作成した後(1.7.1.1項を参照)、MapViewerデータソースにcontainer_ds属性を追加して、Oracle RACデータベースへの接続が可能な新しいMapViewerデータソースを作成します。例:

<map_data_source  name="mvdemo"
                  container_ds="jdbc/mvdemo"
                  number_of_mappers="7" />

この例の内容は、次のとおりです。

  • name属性は、MapViewerデータソース名を指定します。これはマップ・リクエストのために必要です。

  • container_ds属性の値は、新規JDBCデータソースの作成ウィザードの「データソース・プロパティ」ページで指定した「JNDI名」と一致している必要があります。

  • number_of_mappers属性では、このデータソースをターゲットにできる、サポートされる同時マップ・リクエストの最大数を指定します。

これらの属性の詳細は、1.6.2.15項「永続マップ・データソースの定義」を参照してください

1.7.2 Oracle RACサービス名によるMapViewerデータソースの作成

MapViewer構成ファイルでcontainer_ds属性を使用してJDBCコンテナ・データソースを作成するかわりに(1.7.1項を参照)、Oracle RACデータ・サービスへの接続パラメータを指定して直接にMapViewer構成ファイルにMapViewerデータソースを作成できます。(この接続タイプは、Oracle Databaseリリース11.2以上でのみ使用できます。)例:

    <map_data_source name="mvdemo"
         jdbc_host="rac.mycompany.com"
         jdbc_sid="//srv.mycompany.com"
         jdbc_port="1521"
         jdbc_user="mvdemo"
         jdbc_password="!mypassword" 
         jdbc_mode="thin"
         number_of_mappers="8"
         allow_jdbc_theme_based_foi="true"
         editable="false"
    />

この例の内容は、次のとおりです。

  • jdbc_host属性は、Oracle RAC SCAN IPアドレスまたはホスト名である必要があります。

  • jdbc_sid属性は、SID値ではなく、Oracle RACデータベース・サービス名を指定します(jdbc_sid="//srv.mycompany.com"の先行の//文字に注意)。

この例の属性の詳細は、1.6.2.15項「永続マップ・データソースの定義」を参照してください

1.7.3 MapViewerの再起動

1.7.1項「MapViewerサーバーのOracle RACコンテナ・データソースの作成」または1.7.2項「Oracle RACサービス名によるMapViewerデータソースの作成」の手順を実行した後、MapViewerを再起動して新規に作成したデータソースを有効にする必要があります。

MapViewerの再起動の後、データソースからのマップをリクエストすると、MapViewerが必要なデータベース接続を取得します(1.7.1項のオプションを選択した場合はコンテナから取得、1.7.2項のオプションを選択した場合は直接に接続パラメータから取得)。

1.8 高可用性とMapViewer


注意:

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

MapViewerのユーザーは、Oracle DatabaseおよびOracle Fusion Middlewareの高可用性機能を利用できます。

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

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

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

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

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

次の例を検討します。マップ・リクエストがフロントWebサーバーに送信されると、リクエストはホストAで稼働しているMapViewerサーバーに届けられます。ホストAのMapViewerからは生成されたマップ画像のURLが返信され、クライアントは実際の画像をフェッチするために2番目のリクエストを送信します。この2番目のリクエストはホストBで稼働しているOC4Jコンテナで受信されますが、このコンテナにはそのような画像がありません(あるいは、同じ名前の間違った画像が返されます)。

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

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

1.9 セキュアなマップ・レンダリング

この項では、Webユーザーの識別情報に基づいてセキュアなマップ・レンダリングを実装する方法について説明します。同じテーマを表示するときでも、ユーザー各自のロールや権限に応じて、表示される地物のセットを変えることができます。基本的な考え方は、Webユーザーがテーマを利用するためにデータベースにアクセスする場合、MapViewerでは常に特定のPL/SQLパッケージを起動してそのユーザーの識別情報をデータベース内に設定するというものです。このユーザー情報は、データ・アクセス制御を行うためにデータベースで使用されます。


注意:

この項では、「ユーザー」および「認証済ユーザー」という用語は、Oracle Fusion MiddlewareまたはOracle Single Sign-On (SSO)にログインするアプリケーションまたはWebユーザーを意味します。これは、データベース・ユーザーとは異なります。MapViewer自体は、すべての地理空間データが格納されているデータベース・スキーマに直接接続します。

MapViewerは、すべての地理空間データが格納されているデータベース・スキーマに直接接続します。このスキーマ内のデータについて、MapViewerのアクセス制御を実施するには、次の手順を実行する必要があります。

  1. データベース・スキーマにPL/SQLパッケージを作成します。このパッケージには、少なくともset_user(username)およびclear_user()という2つのプロシージャを含める必要があります。

  2. PL/SQLパッケージに格納されるユーザー識別情報に基づき(この情報は、データベース・セッションごとにset_userプロシージャを使用してMapViewerによって設定されます)、ビューの作成、データベース・オブジェクトに対するアクセス権の設定、およびその他のタスクを実行します。

  3. スキーマに対するMapViewerデータソースを作成し、データソース定義の一部としてPL/SQLパッケージの名前を指定します。これがセキュアなデータソースとみなされます。

  4. ステップ2で作成したビューを基にしてMapViewerテーマを作成します。

  5. MapViewerアプリケーションのページにアクセスするユーザー用のWeb認証を設定し、マップ・リクエストがMapViewerサーブレットに届いたときに、Webセッション・オブジェクトに認証済ユーザーの識別情報が含まれるようにします。

  6. ステップ4で定義したテーマを表示するマップ・リクエストまたはFOI(対象地物)リクエストを、直接発行するか、またはベース・マップとOracle Mapsを使用して発行します。

    MapViewerでは、PL/SQLパッケージを使用してユーザー識別情報をデータベースに自動的に渡した後、これらのテーマに関する問合せを実行します。識別されたユーザーに対して表示可能な行のみがデータベースから返されて、MapViewerによってレンダリングされます。

1.9.1項では、セキュアなマップ・レンダリングが機能する仕組みについて説明し、実装の詳細といくつかの例を紹介します。1.9.3項では、ユーザー認証のオプションおよび付属のデモについて説明します。

1.9.1 セキュアなマップ・レンダリングが機能する仕組み

MapViewerは、Java EEアプリケーションとして、Oracle Fusion MiddlewareまたはOracle Single Sign-On (SSO)で認証済であるWebユーザーの識別情報を取得できます。このユーザー情報はデータベースに送ったり保存したりできます。データベースでは、このユーザー識別情報に基づいて、マップ層や表へのセキュア・アクセスを設定できます。たとえば、データベース管理者(DBA)は、特定のユーザーに対して表示できる空間地物のみを選択する実表のビューを作成することが可能です。

Oracle Fusion MiddlewareまたはOracle Single Sign-On (SSO)からデータベースにWebユーザーの識別情報を渡すには、データベースにユーザー識別情報を設定するセキュアなPL/SQLパッケージを使用します。このPL/SQLパッケージは、DBAまたはアプリケーション開発者が作成し、データソース・スキーマにインストールします。このようなパッケージには、プロシージャやファンクションをいくつ含めてもかまいませんが、少なくとも次の2つのプロシージャは必ず含める必要があります。

  • set_user(username)

  • clear_user()

セキュアなデータソースからテーマがリクエストされると、MapViewerでは、関連するPL/SQLパッケージのset_userプロシージャを起動した後でそのテーマに対するデータの問合せを実行します。テーマに対する問合せプロセスが完了すると、MapViewerはclear_userプロシージャを起動します。

例1-4に、セキュアなマップ・レンダリング用として使用できるPL/SQLパッケージを示します。このパッケージは、MVDEMOサンプル・スキーマで作成できます。

例1-4 セキュアなマップ・レンダリング用のPL/SQLパッケージ

CREATE OR REPLACE PACKAGE web_user_info
AS
    PROCEDURE set_user (p_name IN VARCHAR2);
    PROCEDURE clear_user;
    FUNCTION  get_user
        RETURN VARCHAR2;
END;
CREATE OR REPLACE PACKAGE BODY web_user_info
AS
    w_name VARCHAR2 (32767);
 
  PROCEDURE set_user (p_name IN VARCHAR2)
  AS
  BEGIN
     w_name := LOWER (p_name);
  END;
 
  PROCEDURE clear_user
  AS
  BEGIN
      w_name := null;
  END;
 
  FUNCTION get_user
    RETURN VARCHAR2
  AS
  BEGIN
    RETURN w_name;
  END;
END;
/

例1-4では、set_userとclear_userが必須の2つのメソッドで、get_userは、ビューを作成したり他のデータ・アクセスを制御したりするために使用できる便宜的なファンクションです。

このパッケージ(基本的に現行のデータベース・セッションに対するユーザー識別情報を含む)を作成した後、このユーザー情報を使用する複雑な仮想プライベート・データベースを設定できます(Oracle Virtual Private DatabaseまたはVPDの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照)。ただし、わかりやすくするため、この項ではVPDの作成については扱わず、このユーザー情報を使用してデータ・アクセス制御を行うビューを作成できることのみを示します。

たとえば、MVDEMOサンプル・スキーマ内の既存のCUSTOMERS表にACCOUNT_MGRという列を追加して、この表に格納されている各顧客にアカウント・マネージャを割り当てることができます。次に、特定のアカウント・マネージャに対して顧客の行のみを返すビューを作成します(例1-5を参照)。

例1-5 セキュアなマップ・レンダリング用のビュー

CREATE OR REPLACE VIEW customers_view
AS
  SELECT * FROM customers
  WHERE account_mgr = web_user_info.get_user;

このビューを基にして、アカウント・マネージャがログインして顧客データをマップ上に表示する場合に、各自の担当する顧客しか表示されないようなMapViewerテーマを定義することが可能になります。

PL/SQLパッケージをインストールしたら、データソース定義の一部として、plsql_package属性を使用してこのパッケージの名前をMapViewerに渡すことができます(例1-6を参照)。

例1-6 セキュアなマップ・レンダリング用のデータソース定義

<map_data_source name="mvdemo"
                 jdbc_host="system32.example.com"
                 jdbc_sid="mv"
                 jdbc_port="15214"
                 jdbc_user="mvdemo"
                 jdbc_password="password"
                 jdbc_mode="thin"
                 number_of_mappers="3"
                 allow_jdbc_theme_based_foi="true"
                 plsql_package="web_user_info"
   />

データソース定義にPL/SQLパッケージ名を指定すると、MapViewerは該当するデータソースをセキュアなデータソースとしてフラグ付けし、このデータソースでテーマの問合せを実行するときは常に、パッケージのset_userプロシージャおよびclear_userプロシージャを自動的に起動します。

1.9.2 Cookieからのユーザー名の取得

認証済ユーザー情報は、Java EEやOSSOのセッションからMapViewerに渡されない場合があります。MapViewerをApplication Express (APEX)内に統合したときなどがそうですが、この場合、認証がAPEXにより行われるため、Java EEやOSSOのセッションからユーザー名を取得できません。この問題を回避するため、MapViewerではCookieからのユーザー名の取得もサポートしています。認証済ユーザー名を保持するためのAPEX内のCookieの設定は、各自の責任において行ってください。

指定したCookieからMapViewerがユーザー名を確実に取得するようにするには、データソース定義にweb_user_type属性を(必須のplsql_package属性に加えて)指定する必要があります。たとえば、MapViewerでMON_USERという名前のCookieからユーザー名を取得する場合は、セキュアなデータソース定義は例1-7のようになります。

例1-7 Cookie名を指定するデータソース定義

<map_data_source name="mvdemo"
                  jdbc_host="system32.example.com"
                  jdbc_sid="mv"
                  jdbc_port="25650"
                  jdbc_user="mvdemo"
                  jdbc_password="LfCDQ6NH59nuV7zbeY5QY06sqN7XhiUQ"
                  jdbc_mode="thin"
                  number_of_mappers="3"
                  allow_jdbc_theme_based_foi="true"
                  plsql_package="web_user_info"
                  web_user_type="MON_USER"
  />

web_user_type属性に使用できる値は次のとおりです。

  • J2EE_USER: Java EEセッションから認証済ユーザー名を取得するようMapViewerに指示します。

  • OSSO_USER: OSSOセッションから認証済ユーザー名を取得するようMapViewerに指示します。

  • <cookie-name>: 指定した名前のCookieから認証済ユーザー名を取得するようMapViewerに指示します。Cookie名は大/小文字が区別されません。

web_user_type属性が指定されていない場合、MapViewerではユーザー名をまずJava EEセッションで検索し、見つからない場合はOSSOセッションで検索します(存在する場合)。

1.9.3 ユーザー認証: オプションとデモ

ユーザーをいつ、どこで、どのように認証するかは、アプリケーションの要件やインストールのセットアップに応じて異なります。たとえば、次のようなオプションがあります。

  • MapViewerをエンタープライズ・ポータル・サイトの一部としてデプロイし、エンド・ユーザーがMapViewerを利用してマッピング機能を実行する前に、最初に必ずこのポータルにログインするようにします。

  • MapViewerを別のシステムにデプロイし、中央のOracle SSOサーバーでユーザーを認証するようにします。

MapViewerに届くHTTPリクエストに認証済のユーザー情報が含まれているかぎり、MapViewerはそのリクエストをデータベースに渡すことができ、セキュアなデータ・アクセス方法は想定どおりに機能します。

MapViewer付属のデモ・ファイル(1.10項を参照)には、単一のマッピング・ページに認証済ユーザーしかアクセスできないように制限するための説明および関連するファイルが含まれています。このデモを使用する際は、MapViewerのデプロイ・ファイルに簡単な変更を加えます。この場合、この保護されたページがユーザー認証を行うためのエントリ・ポイントとなり、MapViewerを実行するOC4Jインスタンスによって認証が実行されます。

1.9.4 MapViewerでのシングル・サインオン(SSO)の使用

MapViewerでマップを表示するユーザーの認証のためにシングル・サインオンを設定する場合は、次の主要手順に従ってください。

  1. Oracle Access Managerのインストール

  2. MapViewerの構成

  3. Oracle Access Managerの構成

  4. Oracle HTTP Serverの構成

1.9.4.1 Oracle Access Managerのインストール

Oracle Access Manager (Access Managerとも呼ばれる)は、Webシングル・サインオン(SSO)、認証、認可、ポリシーとエージェントの集中管理、リアルタイム・セッション管理および監査のコア機能を提供します。

Oracle Access Managerがまだインストールされていない場合は、『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の該当するOracle Identify Managementリリース用のOracle Identity and Access Managementに関する章の手順に従ってください。

1.9.4.2 MapViewerの構成

SSOでの使用のためにMapViewerを構成するには、次の手順を実行します。

  1. Oracle Access Managementアサータを追加し、構成します。

    1. ドメインのWebLogic Serverコンソールを使用して「セキュリティ・レルム」に移動し、レルム名のリンク→「プロバイダ」「認証」をクリックします。

    2. 「認証プロバイダ」で、「新規」をクリックして「新しい認証プロバイダの作成」ページを表示します(図1-11を参照)。

      図1-11 新しい認証プロバイダの作成

      図1-11の説明は図の下のリンクをクリックしてください。
      「図1-11 「新しい認証プロバイダの作成」」の説明

      「名前」には、この認証プロバイダの任意の名前を指定します。例: OAM Id Asserter

      「タイプ」では、OAMIdentityAsserterを選択します。

    3. 「OK」をクリックします。

    4. 「認証プロバイダ」表で、作成したプロバイダ名のリンクをクリックします。

    5. プロバイダの「設定」で、「共通」タブの「制御フラグ」REQUIREDに設定します。

    6. 「アクティブなタイプ」で「選択済み」リストにObSSOCookieおよびOAM_REMOTE_USERを追加します。

    7. 「保存」をクリックします。

  2. OIDの認証プロバイダを追加し、構成します。

    1. ドメインのWebLogic Serverコンソールを使用して「セキュリティ・レルム」に移動し、レルム名のリンク→「プロバイダ」「認証」をクリックします。

    2. 「認証プロバイダ」プロバイダで「新規」をクリックして「新しい認証プロバイダの作成ページを表示します。

      「名前」には、この認証プロバイダの任意の名前を指定します。例: OID Authenticator

      「タイプ」OracleInternetDirectoryAuthenticatorを選択します。

    3. 「OK」をクリックします。

    4. 「認証プロバイダ」表で、作成したプロバイダ名のリンクをクリックします。

    5. プロバイダの「設定」で、「共通」タブの「制御フラグ」SUFFICIENTに設定し、「保存」をクリックします。

    6. 「プロバイダ固有」タブをクリックし、このOracle Internet Directory認証プロバイダのプロバイダ固有の構成を指定します。

      ホスト: LDAPサーバーのホスト名またはIPアドレス。

      ポート: LDAPサーバーをリスニングするポートの番号。

      プリンシパル: WebLogic ServerがLDAPサーバーとの接続に使用するLDAPユーザーの識別名(DN)。

      資格証明および資格証明の確認: LDAPサーバーへの接続に使用する資格証明(通常はパスワード)。

      ユーザー・ベースDN:ユーザーが含まれているLDAPディレクトリのツリーの基本識別名(DN)。

      ユーザー名属性:ユーザーの名前を指定するLDAPユーザー・オブジェクト・クラスの属性。指定するユーザー名属性は、「すべてのユーザーのフィルタ」属性と「名前指定によるユーザー・フィルタ」属性に指定したユーザー名属性と一致している必要があります。

      グループ・ベースDN:グループが含まれているLDAPディレクトリのツリーの基本識別名(DN)。

    7. 「保存」をクリックします。

  3. プロバイダを並べ替えます。

    1. プロバイダ・リストのページに移動します(「ホーム」→「セキュリティ・レルムのサマリー」→レルム名→「プロバイダ」)

    2. プロバイダ・リストの下の「並替え」をクリックします。

    3. 「認証プロバイダの並替え」ページで「使用可能」プロバイダを並べ替えて、作成したプロバイダをリストの最初に配置します。次のようにします。

      (指定したOAMアイデンティティ・アサータ)

      (指定したOID認証プロバイダ)

      DefaultAuthenticator

      DefaultIdentityAsserter

    4. 「OK」をクリックします。

  4. Oracle Access Manager (OPSS) SSOプロバイダを構成します。

    1. いくつかのパラメータを適切なサーバーの値に置き換えてaddOAMSSOProvider() WLSTコマンドを実行します。実行する文の形式は次のとおりです。

      $ ORACLE_HOME/common/bin/wlst.sh
      connect('weblogic', 'welcome1' [,host,port])
      addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oamsso/logout.html")
      disconnect()
      

      connect()hostおよびportパラメータは、デフォルトではlocalhost:7001になります。これらのデフォルト値をオーバーライドする必要がある場合は、それらのパラメータを指定してください。

    2. ドメインを再起動します(管理サーバーとすべての管理対象サーバー)。

1.9.4.3 Oracle Access Managerの構成

Oracle Access Managerでアプリケーション・ドメインを作成します。アプリケーション・ドメインは、シングル・サインオン処理がトリガーされるようにアプリケーションURIを保護するために使用されます。表1-1は、MapViewerの設定が必要な保護されたURIおよび公開URIを示しています。

表1-1 MapViewerアプリケーション・ドメインの保護されたURIおよび公開URIの設定

保護されたURI 公開URI

/mapviewer/adfAuthentication

/mapviewer/admin

/mapviewer/faces/admin

/mapviewer/faces/editor

/mapviewer/faces/admin_mapbuilder

/mapviewer/faces/templateBuilder

/mapviewer/mapadmin

/mapviewer/mcsadmin

/mapviewer

/mapviewer/dataserver

/mapviewer/faces/home

/mapviewer/faces/help

/mapviewer/foi

/mapviewer/mcserver

/mapviewer/wms

/mapviewer/wmts


アプリケーションの各保護されたURIおよび各公開URIを設定する必要があります。概念および手順の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalの管理』のOracle Access Manager (OAM)の構成に関するトピックを参照してください。

1.9.4.4 Oracle HTTP Serverの構成

HTTPリクエストをアプリケーションに転送するようにOracle HTTP Serverを構成します。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalの管理』のOracle HTTP Serverのインストールおよび構成に関するトピックを参照してください。

1.10 MapViewerのデモとチュートリアル

いくつかのMapViewerデモおよびチュートリアルは、mvdemo.earという名前の別のアプリケーション・アーカイブに含まれており、このアーカイブは、mapviewer.earのデプロイ先と同じJava EEコンテナにデプロイされます。

これらのデモとチュートリアルは、一度デプロイすると、http://host:port/mvdemo/という形式のURLからアクセス可能になります。

また、次の場所から入手可能なリソースも参照してください。

http://www.oracle.com/technetwork/middleware/mapviewer/downloads/