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

前
 
次
 

5 MapViewer XMLリクエスト: 管理およびその他

MapViewerの主な用途は、様々なマップ・リクエストの処理です。ただし、MapViewerは、そのXML APIを通じて様々な管理(非マップ)リクエストを受け入れます。たとえば、データソースを追加するリクエストの他、使用可能なテーマ、ベース・マップおよびタイル層をリストするリクエストなど、アプリケーションの開発に役立つ(汎用)リクエストがあります。すべてのMapViewer管理リクエストは、MapViewer管理(Admin)ページへのログインを必要とし、そのためのリンクがMapViewerのメイン・ページに表示されます。汎用リクエストはログインを必要とせず、アプリケーションから送信できます。この項では、各リクエストおよびそのレスポンスの書式について説明します。

XMLリクエストはすべて<non_map_request>または<map_cache_admin_request>要素に埋め込まれ、レスポンスはすべて<non_map_response>または<map_cache_admin_response>要素にそれぞれ埋め込まれます。ただし、どのリクエストでも例外が発生する場合があり、このときのレスポンスは<oms_error>または<mcs_error>要素になります(第3.5項を参照)。

管理リクエストについて、実行するタスクの種類に応じた次の各項で説明します。

各項のタイトルで、そのリクエストが管理リクエストか汎用リクエストかを判断できます。

5.1 データソースの管理

データソースを追加、削除、再定義およびリストできます。(データソースの詳細およびその定義方法は、1.6.2.15項を参照してください。)

5.1.1 データソースの追加(管理)


注意:

このリクエストは通常、開発時やテスト時にデータソースを素早く動的に追加する場合(mapViewerConfig.xmlファイルの編集が必要な永続的データソースの作成を行わない場合)に使用します。本番用、またはMapViewerの提供する完全なデータソース機能を利用する場合は、常に永続的データソースを使用する必要があります。

<add_data_source>要素には、次の定義が含まれます。

<!ELEMENT non_map_request  add_data_source>
<!ELEMENT add_data_source  EMPTY>
  <!ATTLIST add_data_source
   name              CDATA #REQUIRED
   container_ds      CDATA #IMPLIED
   jdbc_tns_name     CDATA #IMPLIED
   jdbc_host         CDATA #IMPLIED
   jdbc_port         CDATA #IMPLIED
   jdbc_sid          CDATA #IMPLIED
   jdbc_user         CDATA #IMPLIED
   jdbc_password     CDATA #IMPLIED
   jdbc_mode         (oci8 | thin) #IMPLIED
   number_of_mappers INTEGER #REQUIRED
               >

name属性は、データソース名を識別します。この名前は、MapViewerデータソース間で一意である必要があります。(データソース名は、大/小文字が区別されません。)

コンテナ・データソース名、ネット・サービス名(TNS名)または必要なすべての接続情報を指定する必要があります。つまり、次のうち1つのみの指定が必要です。

  • container_ds

  • jdbc_tns_name

  • jdbc_hostjdbc_portjdbc_sidjdbc_modejdbc_userおよびjdbc_password

container_ds属性は、Java EEコンテナのJava Naming and Directory Interface (JNDI)名前空間で定義されているデータソース名を識別します。

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

jdbc_host属性は、データベース・ホスト・システム名を識別します。

jdbc_port属性は、TNSリスナー・ポート番号を識別します。

jdbc_sid属性は、データベースのSIDを識別します。

jdbc_user属性は、(map)に接続するユーザーを識別します。

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

jdbc_mode属性は、JDBC接続モード(thinまたはoci8)を識別します。oci8を指定した場合、MapViewerが動作する中間層にOracle Clientがインストールされている必要があります。すべてのデータソースにthinが使用される場合、Oracle Clientは必要ありません。

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

例5-1では、必要なすべての接続情報を指定して、mvdemoというデータソースを追加します。

例5-1 詳細な接続情報の指定によるデータソースの追加

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <add_data_source 
        name="mvdemo" 
        jdbc_host="elocation.example.com"
        jdbc_port="1521"
        jdbc_sid="orcl"
        jdbc_user="scott"
        jdbc_password="password"
        jdbc_mode="thin"
        number_of_mappers="5"/>
</non_map_request>

例5-2では、コンテナ・データソース名を指定して、mvdemoというデータソースを追加します。

例5-2 コンテナ・データソースの指定によるデータソースの追加

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <add_data_source 
        name="mvdemo" 
        container_ds="jdbc/OracleDS"
        number_of_mappers="5"/>
</non_map_request>

add_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response add_data_source>
<!ELEMENT add_data_source  EMPTY>
<!ATTLIST add_data_source
   succeed   (true | false) #REQUIRED
   comment   CDATA #IMPLIED
>

リクエストが成功しなかった場合にのみcomment属性が表示され、この場合は理由がcomment属性に含まれます。次の例のsucceed="true"は、ユーザー・リクエストがサーバーに到着し、妥当性に関して例外が発生することなく処理されたことを示します。これは、リクエストに含まれるユーザーの意図したアクションがMapViewerサーバーで実際に実行されたかどうかを示すものではありません。この例では、comment属性の表示によりリクエストが失敗したことがわかり、comment属性に関連付けられた文字列("data source already exists")によって失敗の理由がわかります。

<?xml version="1.0" ?> 
 <non_map_response> 
     <add_data_source succeed="true" comment="data source already exists"/> 
</non_map_response>

5.1.2 データソースの削除(管理)

<remove_data_source>要素は、永続的データソースの削除や、データソースの動的な追加に使用できます。この要素には、次の定義が含まれます。

<!ELEMENT non_map_request remove_data_source>
<!ELEMENT remove_data_source  EMPTY>
<!ATTLIST remove_data_source
   data_source    CDATA #REQUIRED
   jdbc_password  CDATA #REQUIRED
>

data_source属性は、削除されるデータソースの名前を識別します。

jdbc_password属性は、データソース内のデータベース・ユーザーのログイン・パスワードを識別します。jdbc_passwordはセキュリティ上の理由(MapViewerからデータソースを誤って削除してしまうのを防ぐため)から必須とされています。

データソースを削除した場合、MapViewerが対応するデータベース・スキーマを使用できなくなるのみで、そのスキーマの内容は実際には削除されません。

例5-3では、mvdemoというデータソースを削除します。

例5-3 データソースの削除

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <remove_data_source data_source="mvdemo" jdbc_password="password"/>
</non_map_request>

remove_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response remove_data_source>
<!ELEMENT remove_data_source  EMPTY>
<!ATTLIST remove_data_source
   succeed  (true | false) #REQUIRED
>

例:

<?xml version="1.0" ?> 
 <non_map_response> 
    <remove_data_source succeed="true"/> 
</non_map_response>

5.1.3 データソースの再定義


注意:

開発時またはテスト時にのみ使用するリクエストです。本番作業では使用しないでください。

便宜上、MapViewerではデータソースを再定義できます。具体的には、同じ名前のデータソースがすでに存在するとそのデータソースは削除され、新規の定義を使用して追加されます。その名前のデータソースが存在しない場合、新規データソースが追加されます。リクエストで指定したものと同じ名前、ホスト、ポート、SID、ユーザー名、パスワード、モードおよびmapper数のデータソースがすでに存在する場合、そのリクエストは無視されます。

<redefine_data_source>要素には、次の定義が含まれます。

<!ELEMENT non_map_request redefine_data_source>
<!ELEMENT redefine_data_source  EMPTY>
<!ATTLIST redefine_data_source
   name              CDATA #REQUIRED
   container_ds      CDATA #IMPLIED
   jdbc_tns_name     CDATA #IMPLIED
   jdbc_host         CDATA #IMPLIED
   jdbc_port         CDATA #IMPLIED
   jdbc_sid          CDATA #IMPLIED
   jdbc_user         CDATA #IMPLIED
   jdbc_password     CDATA #IMPLIED
   jdbc_mode         (oci8 | thin) #IMPLIED
   number_of_mappers INTEGER #REQUIRED
>

属性およびその説明は、<add_data_source>要素と同じです。5.1.1項を参照してください。

redefine_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response redefine_data_source>
<!ELEMENT redefine_data_source  EMPTY>
<!ATTLIST redefine_data_source
   succeed  (true | false) #REQUIRED
>

例:

<?xml version="1.0" ?> 
 <non_map_response> 
   <redefine_data_source succeed="true"/> 
</non_map_response>

5.1.4 全データソースのリスト(管理または汎用)

<list_data_sources>要素は、現在実行中のMapViewerによって認識されている全データソースをリストします。これには、次の定義が含まれます。

<!ELEMENT non_map_request list_data_sources>
<!ELEMENT list_data_sources  EMPTY>

例:

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <list_data_sources/>
</non_map_request>

list_data_sourcesリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response map_data_source_list>
<!ELEMENT map_data_source_list  (map_data_source*) >
<!ATTLIST map_data_source_list
   succeed      (true|false) #REQUIRED
>
<!ELEMENT map_data_source  EMPTY>
<!ATTLIST map_data_source
   name         CDATA #REQUIRED
   container_ds CDATA #IMPLIED
   host         CDATA #IMPLIED
   sid          CDATA #IMPLIED
   port         CDATA #IMPLIED
   user         CDATA #IMPLIED
   mode         CDATA #IMPLIED
   numMappers   CDATA #REQUIRED
   >

各データソースについて次の情報が返されます。

  • リクエストを発行するユーザーがMapViewer管理者としてログインしている場合、データベース・ユーザーのパスワードを除くすべてのデータソース情報が返されます。

  • リクエストを発行するユーザーがMapViewer管理者としてログインしていない場合、データソース名のみが返されます。

次の例は、リクエストがMapViewer管理者によって発行された場合の、2つのデータソースに関する情報が含まれたレスポンスです。

<?xml version="1.0" ?> 
<non_map_response> 
<map_data_source_list succeed="true"> 
   <map_data_source name="mvdemo" host="elocation.example.com"
       sid="orcl" port="1521" user="scott" mode="thin" numMappers="3"/> 
   <map_data_source name="geomedia" host="geomedia.example.com"
       sid="orcl" port="8160" user="scott" mode="oci8" numMappers="7"/> 
</map_data_source_list> 
</non_map_response>

次の例は、同じリクエストがMapViewer管理者以外のユーザーによって発行された場合のレスポンスです。

<?xml version="1.0" ?> 
<non_map_response> 
<map_data_source_list succeed="true"> 
   <map_data_source name="mvdemo"/>
   <map_data_source name="geomedia"/>
</map_data_source_list> 
</non_map_response>

5.1.5 データソースの有無のチェック(汎用)

<data_source_exists>要素は、指定したデータソースが存在するかどうかを確認できます。これには、次の定義が含まれます。

<!ELEMENT non_map_request data_source_exists>
<!ELEMENT data_source_exists  EMPTY>
<!ATTLIST data_source_exists
   data_source   CDATA #REQUIRED
>

例:

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <data_source_exists data_source="mvdemo"/>
</non_map_request>

data_source_existsリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response data_source_exists>
<!ELEMENT data_source_exists  EMPTY>
<!ATTLIST data_source_exists
   succeed   (true | false) #REQUIRED
   exists    (true | false) #REQUIRED
>

succeed属性は、リクエストが正常に処理されたかどうかを示します。

exists属性は、データソースが存在するかどうかを示します。

例:

<?xml version="1.0" ?> 
<non_map_response>
   <data_source_exists succeed="true" exists="true"/> 
</non_map_response>

5.2 タイル層の管理

タイル層の管理リクエストはすべて、<map_cache_admin_request>要素に埋め込まれます。これらのレスポンスは<map_tile_server_response>要素に埋め込まれますが、<get_client_config>は例外であり、そのレスポンス・ドキュメントの形式は異なる場合があります。エラーが発生した場合、レスポンスは対応するエラー・メッセージを含む<mcs_error>要素を返します。

2つのタイル層管理リクエスト<get_client_config><get_cache_status>は非管理モードで送信でき、この場合、管理コンソールにログインする必要はありません。

タイル層の管理タスクは次のとおりです。

5.2.1 クライアント側構成の取得

<get_client_config>要素は、指定したタイル層の構成をクライアント側から返します。これには、次の定義が含まれます。

<!ELEMENT map_cache_admin_request (get_client_config)>
<!ELEMENT get_client_config  EMPTY>
<!ATTLIST get_client_config
   map_cache_names   CDATA #REQUIRED
   format            (JSON|XML|OLD_JS) #IMPLIED
>

map_cache_names属性は、構成のリクエスト対象となるタイル層名をリストします。

format属性は、レスポンス内のドキュメント形式を指定します。

次の例では、1つのタイル層MVDEMO.DEMO_MAPの構成をXML形式で取得します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <get_client_config map_cache_names="MVDEMO.DEMO_MAP" format="XML" />
/>

レスポンスは次のようになります。

<map_tile_server_response>
  <map_tile_layer_config>
    <map_tile_layer name="DEMO_MAP" data_source="MVDEMO" format="PNG" transparent="false">
      <coordinate_system srid="8307" type="GEODETIC" distConvFactor="0.0" minX="-180.0" minY="-90.0" maxX="180.0" maxY="90.0"/>
      <zoom_levels>
        <zoom_level level="0" name="" scale="1.0E7" tile_width="4.285714285714286" tile_height="4.285714285714286" tile_image_width="189" tile_image_height="189"/>
<zoom_level level="1" name="" scale="3000000.0" tile_width="1.0843373493975903" tile_height="0.9608052463016623" tile_image_width="158" tile_image_height="140"/>
      </zoom_levels>
    </map_tile_layer>
  </map_tile_layer_config>
</map_tile_server_response>

<get_client_config>リクエストは非管理モードでも機能し、このリクエストはxml_request文字列を通じて送信できます。例:

http://localhost:7001/mapviewer/mcserver?xml_request=<map_cache_admin_request><get_client_config map_cache_names="MVDEMO.DEMO_MAP" format="XML" /></map_cache_admin_request>

5.2.2 キャッシュ・ステータスの取得

<get_cache_status>要素は、サーバーにあるすべてのタイル層のステータスをリストします。これには、次の定義が含まれます。

<!ELEMENT map_cache_admin_request (get_cache_status)>
<!ELEMENT get_cache_status  EMPTY>

次の例では、サーバーにあるすべてのタイル層のステータスをリストします。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <get_cache_status/>
</map_cache_admin_request>

get_cache_statusリクエストへのレスポンスに使用するDTDの形式は次のとおりです。

<!ELEMENT map_tile_server_response (tile_server_status)>
<!ELEMENT tile_server_status  (cache_instance*)>
<!ELEMENT cache_instance EMPTY>
<!ATTLIST cache_instance
   data_source  CDATA #REQUIRED
   name         CDATA #REQUIRED
   type         (internal|external) #REQUIRED
   base_map     CDATA #REQUIRED
   zoom_levels  PCDATA #REQUIRED
   status       (ready|not ready) #REQUIRED
   online       (true|false) #REQUIRED
>

name属性は、このデータソースに含まれるタイル層の名前を識別します。

type属性は、マップ・ソースが内部マップ・ソースまたは外部マップ・ソースのいずれであるかを示します。

zoom_levels属性は、このタイル層におけるズーム・レベルの合計を示します。

base_map属性は、タイプが内部マップ・ソースの場合に、このタイル層がマップ・タイルの生成に使用するベース・マップ名を指定します。

status属性は、タイル層の準備が完了しているかどうかを示します。

online属性は、タイル層がオンライン(true)であるかオフライン(false)であるかを示します。

次にget_cache_statusレスポンスの例を示します。

<map_tile_server_response>
  <tile_server_status>
    <cache_instance data_source="MVDEMO_PC" name="DEMO_MAP" type="internal" base_map="DEMO_MAP" zoom_levels="10" status="ready" online="true"/>
    <cache_instance data_source="MVDEMO" name="WMTS" type="internal" base_map="WMTS" zoom_levels="15" status="ready" online="true"/>
  </tile_server_status>
<map_tile_server_response>

<get_cache_status>リクエストは非管理モードでも機能し、このリクエストはxml_request文字列を通じて送信できます。例:

http://localhost:7001/mapviewer/mcserver?xml_request=<map_cache_admin_request><get_cache_status /></map_cache_admin_request>

5.2.3 キャッシュのクリア、プリフェッチまたはリフレッシュ

<tile_admin_task>要素を使用すると、キャッシュされたタイルのクリア、キャッシュするタイルのフェッチ、またはタイルのリフレッシュ(つまり、既存のすべてのファイルの削除とタイルのフェッチ)をサーバーにリクエストできます。これらの目的で、次の定義が使用されます。

<!ELEMENT map_cache_admin_request (tile_admin_task)>
<!ELEMENT tile_admin_task  (schedule?)>
<!ELEMENT schedule EMPTY>
<!ATTLIST tile_admin_task
   operation   (clear_tiles|fetch_tiles|refresh_tiles) #REQUIRED
   map_tile_layer CDATA #REQUIRED
   zoom_levels    PCDATA #REQUIRED
   bounding_box   PCDATA #REQUIRED
>
<!ATTLIST schedule
   start_time       PCDATA #REQUIRED
   repeat_interval  PCDATA #IMPLIED
   duration         PCDATA #IMPLIED
>

operation属性は、実行する操作(clear_tilesfetch_tilesまたはrefresh_tiles)を識別します。

map_tile_layer属性は、タイル層名を示します。データソース名を接頭辞として指定し、その後にピリオド(.)、タイル層名の順に指定します。たとえば、mvdemo.demo_mapのようになります。

zoom_levels属性は、実行する操作のズーム・レベルのリストを指定します。

bounding_box属性は、操作の実行対象となる四角形の領域を定義します。

start_time属性は、スケジュール済タスクの開始時間を示します。

repeat_interval属性は、この操作の実行頻度を分単位で示します。値が0(ゼロ)の場合、操作は1回かぎりです。

duration属性は、操作の継続時間を分単位で示します。この属性が空であるか指定されていない場合、タスクは完了するまで実行されます。

次の例では、fetch_tilesリクエストを送信します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <tile_admin_task 
    operation="fetch_tiles"
    map_tile_layer="mvdemo.demo_map"
    zoom_levels="7,8"
    bounding_box="-71.6,42.35,-71.58,42.37">
    <schedule start_time="2013-03-20 9:00:00" repeat_interval="0" duration="" />
  </tile_admin_task>
</map_cache_admin_request>

fetch_tilesレスポンスのDTDは次のとおりです。

<!ELEMENT map_tile_server_response (request_status, request_id, estimates)>
<!ELEMENT request_status (#CDATA)>
<!ELEMENT request_id (#CDATA)>
<!ELEMENT estimates EMPTY>
<!ATTLIST estimates
   tile_remaining       CDATA #REQUIRED
   time_remaining       CDATA #REQUIRED  
   disk_space_required  CDATA #REQUIRED
>

tile_remaining属性は、フェッチする残りのタイル数を示します。

time_remaining属性は、残りのタイルのフェッチに必要な推定時間を秒単位で示します。

disk_space_required属性は、残りのタイルの格納に必要な推定記憶領域をバイト単位で示します。

例:

<map_tile_server_response>
  <request_status>Submitted</request_status>
  <request_id>62</request_id>
  <estimates tile_remaining="144" time_remaining="288" disk_space_required="990576"/>
</map_tile_server_response>

5.2.4 ダウンロードするタイル・キャッシュの圧縮

<tile_admin_task>要素を使用して、ダウンロードするマップ・タイルが含まれたzipファイルを生成するようにサーバーにリクエストできます。リクエスト定義は、操作の属性をzip_tile_cacheに設定する以外は、クリア、プリフェッチまたはリフレッシュのリクエストに類似しています(5.2.3項を参照)。

次の例は、zip_tile_cacheリクエストを送信します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <tile_admin_task 
    operation=" zip_tile_cache "
    map_tile_layer="mvdemo.demo_map"
    zoom_levels="5,6,7,8,9,10,11,12,14,14,15"
    bounding_box="-71.6,42.35,-71.58,42.37">
  </tile_admin_task>
</map_cache_admin_request>

レスポンスには、zipファイルをダウンロードするためのURLが含まれています。zipファイルに含まれるマップ・タイルは、そのタイル層に対するサーバーのマップ・タイル・キャッシュと同じツリー構造になっています。

zip_tile_cacheレスポンスのDTDは、5.2.3項「キャッシュのクリア、プリフェッチまたはリフレッシュ」の場合と類似していますが、1つの子要素<zipped_cache_url>が追加されています。この要素の値は、zipファイルをダウンロードするためのURL文字列です。

次の例は、このリクエストに対するレスポンスを示しています。

<map_tile_server_response>
  <request_status>Submitted</request_status>
  <request_id>0</request_id>
  <zipped_cache_url>
http://localhost:8088/mapviewer/images/zipcache/MVDEMO.DEMO_MAP_tozip1_6.zip
  </zipped_cache_url>
  <estimates tile_remaining="50" time_remaining="100" disk_space_required="238250"/>
</map_tile_server_response>
<map_tile_server_response>

5.2.5 既存のキャッシュ管理タスクの停止、再開または削除

<tile_admin_task>要素を使用すると、タスクの停止、再開または削除をサーバーにリクエストできます。これらの目的で、次の定義が使用されます。

<!ELEMENT map_cache_admin_request (tile_admin_task)>
<!ELEMENT tile_admin_task  EMPTY>
<!ATTLIST tile_admin_task
   operations   (stop_task|resume_task|remove_task) #REQUIRED
   task_id      PCDATA #REQUIRED
>

operation属性は、実行する操作(stop_taskresume_taskまたはremove_task)を識別します。

task_id属性は、実行する操作のタスク識別子を示します。

次の例では、タスクを停止するリクエストを送信します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <tile_admin_task 
    operation="stop_task"
    task_id="12">
  </tile_admin_task>
</map_cache_admin_request>

リクエストへのstop_taskレスポンスに使用するDTDは次のとおりです。

<!ELEMENT map_tile_server_response (#CDATA)>

例:

<map_tile_server_response>Succeeded.</map_tile_server_response>

5.2.6 管理リクエストのステータスの取得

<get_admin_request_status>要素は、以前に送信された管理リクエストのステータスを示します。これには、次の定義が含まれます。

<!ELEMENT map_cache_admin_request (get_admin_request_status)>
<!ELEMENT get_admin_request_status  EMPTY>
<!ATTLIST  get_admin_request_status
   data_source    CDATA #REQUIRED
   map_tile_layer CDATA #REQUIRED
>

次の例では、指定したタイル層の管理リクエストのステータスを取得します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <get_admin_request_status data_source="mvdemo" map_tile_layer="demo_map"/>
</map_cache_admin_request>

get_admin_request_statusリクエストへのレスポンスに使用するDTDの形式は次のとおりです。

<!ELEMENT map_cache_admin_request  (tile_admin_task)>
<!ELEMENT tile_admin_task  (bound, schedule?, task_progress)>
<!ELEMENT bound (gml:Box)>
<!ELEMENT schedule  EMPTY>
<!ELEMENT task_progress  (zoom_level+)>
<!ELEMENT zoom_level EMPTY>
<!ATTLIST tile_admin_task
   id              PCDATA #REQUIRED
   type            (CLEAR, PREFETCH, REFRESH) #REQUIRED
   data_source     CDATA #REQUIRED
   map_tile_layer  CDATA #REQUIRED
   zoom_levels     PCDATA #REQUIRED
>
<!ATTLIST  schedule
   start_time       PCDATA #REQUIRED
   repeat_interval  PCDATA #IMPLIED
   duration         PCDATA #IMPLIED
   cron_string      CDATA #IMPLIED
>
<!ATTLIST  zoom_level
   level                 PCDATA #REQUIRED
   total_tile_number     PCDATA #REQUIRED
   processed_tile_number PCDATA #REQUIRED
   failed_tile_number    PCDATA #REQUIRED
   tile_x                PCDATA #REQUIRED
   tile_y                PCDATA #REQUIRED
>

level属性は、このタスクの現在のズーム・レベルを示します。

total_tile_number属性は、このタスクの合計タイル数を示します。

processed_tile_number属性は、すでに処理されたタイルの数を示します。

failed_tile_number属性は、操作内で失敗したタイルの数を示します。

tile_xおよびtile_y属性は、タイル・メッシュ・コード座標系における、最後に処理したタイルの座標(x, y)を示します。値が-1の場合、タスクは開始されていません。

例:

<tile_admin_task id="67" type="PREFETCH" data_source="MVDEMO" map_tile_layer="DEMO_MAP" zoom_levels="8,9">
  <bound>
    <gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="SDO:8307">
      <gml:coordinates decimal="." cs="," ts=" ">
        -71.60,42.35 -71.58,42.37
      </gml:coordinates>
    </gml:Box>
  </bound>
  <schedule repeat_interval="0" duration="0" start_time="2015-03-20 09:00:00" cron_string=""/>
  <task_progress>
    <zoom_level level="8" total_tile_number="144" processed_tile_number="0" failed_tile_number="0" tile_x="-1"tile_y="-1"/>
    <zoom_level level="9" total_tile_number="1122" processed_tile_number="0" failed_tile_number="0" tile_x="-1"tile_y="-1"/>
  </task_progress>
</tile_admin_task>

5.2.7 キャッシュ・インスタンスの作成または再定義

<tile_admin_task>要素を使用すると、キャッシュ・インスタンスの作成または再定義をタイル層サーバーにリクエストできます。これらの目的で、次の定義が使用されます。

<!ELEMENT map_cache_admin_request (create_cache_instance, redefine_cache_instance)>
<!ELEMENT create_cache_instance  (cache_instance)>
<!ELEMENT redefine_cache_instance  (cache_instance)>
<!ELEMENT cache_instance  (internal_map, cache_storage?|tile_storage?, coordinate_system, tile_image, zoom_levels)>
<!ELEMENT internal_map_source  EMPTY>
<!ELEMENT cache_storage  EMPTY>
<!ELEMENT coordinate_system  EMPTY>
<!ELEMENT tile_image  EMPTY>
<!ELEMENT zoom_levels  EMPTY>
<!ATTLIST create_cache_instance 
   data_source   CDATA #REQUIRED
>
<!ATTLIST  cache_instance 
   name   CDATA #REQUIRED
   image_format (PNG|GIF|JPG)"PNG"
>
<!ATTLIST  internal_map_source 
   base_map   CDATA #REQUIRED
>
<!ATTLIST  cache_storage 
   root_path   CDATA #IMPLIED
>
<!ATTLIST  coordinate_system
   srid  PCDATA #REQUIRED
   minX  PCDATA #REQUIRED
   maxX  PCDATA #REQUIRED
   minY  PCDATA #REQUIRED
   maxY  PCDATA #REQUIRED
>
<!ATTLIST  tile_image
   width   PCDATA #REQUIRED
   height  PCDATA #REQUIRED
>
<!ATTLIST  zoom_levels
   levels     PCDATA #REQUIRED
   min_scale  PCDATA #REQUIRED
   max_scale  PCDATA #REQUIRED
>

srid属性は、このタイル層の投影(座標系)を指定します。

minXmaxXminYおよびmaxY属性は、指定した投影におけるこのタイル層のデータ範囲を指定します。

width属性およびheight属性は、イメージの幅および高さを指定します。

levels属性は、このタイル層のズーム・レベルを示す数値を指定します。

min_scaleおよびmax_scale属性は、スケール分母の最小値と最大値を指定します。ズーム0には、常に最大のスケール分母が割り当てられるため、タイルに含まれる地理的領域はより大きくなり、マップの詳細は大まかになります。

5.2.8 キャッシュ・インスタンスの削除

<remove_cache_instance>要素は、タイル層インスタンスをサーバーから削除します。これには、次の定義が含まれます。

<!ELEMENT map_cache_admin_request (remove_cache_instance)>
<!ELEMENT remove_cache_instance EMPTY>
<!ATTLIST  remove_cache_instance
   map_cache_name   CDATA #REQUIRED
   clean_disk       (true|false) "false"
   remove_permanently (true|false) "false"
>

clean_disk属性は、すでにキャッシュされているタイルを削除するかどうかを指定します。

remove_permanently属性は、タイル層をUSER_SDO_CACHED_MAPSビューから削除するかどうかを指定します。

次の例では、タイル層インスタンスをサーバーから削除します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <remove_cache_instance 
    map_cache_name="mvdemo.demo_map" 
    clean_disk="true" remove_permanently="false"/>

remove_cache_instanceレスポンスのDTDは次のとおりです。

<!ELEMENT map_tile_server_response (#CDATA)>

例:

<map_tile_server_response>Succeeded.</map_tile_server_response>

5.2.9 タイル層キャッシュ・サーバーの再起動

<restart_cache_server>要素は、タイル層サーバーを再起動します。これには、次の定義が含まれます。

<!ELEMENT map_cache_admin_request (restart_cache_server)>
<!ELEMENT restart_cache_server EMPTY>

次の例では、サーバーを再起動します。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <restart_cache_server />
</map_cache_admin_request>

5.2.10 タイル層のオフライン化とオンライン化

<take_cache_offline>要素は、タイル層インスタンスをサーバーに対してオフラインにし、<bring_cache_online>要素は、オフラインのタイル層インスタンスをオンラインに戻します。DTD定義は次のとおりです。

<!ELEMENT map_cache_admin_request (take_cache_offline, bring_cache_online)>
<!ELEMENT take_cache_offline  EMPTY>
<!ATTLIST take_cache_offline 
   map_cache_name  CDATA #REQUIRED
>
<!ATTLIST  bring_cache_online 
   map_cache_name  CDATA #REQUIRED
>

次の例では、タイル層インスタンスをオフラインにします。

<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
  <take_cache_offline map_cache_name="mvdemo.demo_map" />
</map_cache_admin_request>

5.3 全マップのリスト(汎用)

<list_maps>要素は、指定したデータソース内の全ベース・マップをリストします。これには、次の定義が含まれます。

<!ELEMENT non_map_request list_maps>
<!ELEMENT list_maps  EMPTY>
<!ATTLIST list_maps
   data_source   CDATA #REQUIRED
>

次の例では、mvdemoというデータソース内の全ベース・マップをリストします。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <list_maps data_source="mvdemo"/>
</non_map_request>

list_mapsリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response map_list>
<!ELEMENT map_list  (map*) >
<!ATTLIST map_list
   succeed   (true | false) #REQUIRED
>
<!ATTLIST map
   name      CDATA #REQUIRED
>

succeed属性は、リクエストが正常に処理されたかどうかを示します。

name属性は、各マップを識別します。

例:

<?xml version="1.0" ?> 
<non_map_response>
<map_list succeed="true">
  <map name="DEMO_MAP"/> 
  <map name="DENSITY_MAP"/> 
</map_list>
</non_map_response>

5.4 テーマのリスト(汎用)

<list_predefined_themes>要素は、指定のデータソースで定義されたすべてのテーマ、または指定したマップに対する指定のデータソースで定義されたすべてのテーマをリストします。

テーマに関連付けられたマップに関係なく、データソースで定義されたすべてのテーマをリクエストするためのDTDには、次の定義が含まれます。

<!ELEMENT non_map_request list_predefined_themes>
<!ELEMENT list_predefined_themes  EMPTY>
<!ATTLIST list_predefined_themes
   data_source   CDATA #REQUIRED
>

次の例では、mvdemoというデータソースで定義された全テーマをリストします。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <list_predefined_themes data_source="mvdemo"/>
</non_map_request>

データソースで定義され、特定のマップに関連付けられたすべてのテーマをリクエストするためのDTDには、次の定義が含まれます。

<!ELEMENT non_map_request list_predefined_themes>
<!ELEMENT list_predefined_themes  EMPTY>
<!ATTLIST list_predefined_themes
   data_source CDATA #REQUIRED
   map         CDATA #REQUIRED
>

次の例では、tilsmenvというデータソースで定義され、QA_MAPというマップに関連付けられたすべてのテーマをリストします。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <list_predefined_themes data_source="tilsmenv" map="QA_MAP"/>
</non_map_request>

list_predefined_themesリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response predefined_theme_list>
<!ELEMENT predefined_theme_list  (predefined_theme*) >
<!ATTLIST predefined_theme_list
   succeed   (true | false) #REQUIRED
>
<!ELEMENT predefined_theme  EMPTY>
<!ATTLIST predefined_theme
   name   CDATA #REQUIRED
>

succeed属性は、リクエストが正常に処理されたかどうかを示します。

name属性は、各テーマを識別します。

例:

<?xml version="1.0" ?> 
<non_map_response>
<predefined_theme_list succeed="true">
  <predefined_theme name="THEME_DEMO_CITIES"/> 
  <predefined_theme name="THEME_DEMO_BIGCITIES"/> 
  <predefined_theme name="THEME_DEMO_COUNTIES"/> 
  <predefined_theme name="THEME_DEMO_COUNTY_POPDENSITY"/> 
  <predefined_theme name="THEME_DEMO_HIGHWAYS"/> 
  <predefined_theme name="THEME_DEMO_STATES"/> 
  <predefined_theme name="THEME_DEMO_STATES_LINE"/> 
</predefined_theme_list>
</non_map_response>

返されたリストにおける名前の順序は一定ではないため注意してください。

5.5 スタイルのリスト(汎用)

<list_styles>要素は、指定したデータソースに対して定義されたスタイルをリストします。これには、次の定義が含まれます。

<!ELEMENT non_map_request list_styles>
<!ELEMENT list_styles  EMPTY>
<!ATTLIST list_styles
   data_source   CDATA #REQUIRED
   style_type   (COLOR|LINE|MARKER|AREA|TEXT|ADVANCED)  #IMPLIED
>

style_typeに値を指定した場合、そのタイプのスタイルのみがリストされます。スタイルのタイプには、COLORLINEMARKERAREATEXTおよびADVANCEDがあります。style_typeを指定しない場合は、すべてのタイプの全スタイルがリストされます。

次の例では、COLORタイプのスタイルのみをリストします。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <list_styles data_source="mvdemo"  style_type="COLOR"/>
</non_map_request>

list_stylesリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response style_list>
<!ELEMENT style_list  (style*) >
<!ATTLIST style_list
   succeed   (true | false) #REQUIRED
>
<!ELEMENT style  EMPTY>
<!ATTLIST style
   name   CDATA #REQUIRED
>

次の例は、COLORタイプのスタイルに関するリクエストへのレスポンスを示しています。

<?xml version="1.0" ?> 
 <non_map_response> 
 <style_list succeed="true"> 
   <style name="SCOTT:C.BLACK"/> 
   <style name="SCOTT:C.BLACK GRAY"/> 
   <style name="SCOTT:C.BLUE"/> 
   <style name="SCOTT:C.CRM_ADMIN_AREAS"/> 
   <style name="SCOTT:C.CRM_AIRPORTS"/> 
</style_list> 
</non_map_response>

レスポンス内の各スタイル名の書式はOWNER:NAME(例: SCOTT:C.BLACK)で、OWNERはスタイルを所有するスキーマ・ユーザーです。

5.6 事前定義済テーマで使用されるスタイルのリスト(汎用)

<list_theme_styles>要素は、事前定義済テーマで参照されるレンダリング・スタイルをすべてリストします。この要素は、テーマ用に独自の凡例を作成する場合に、そのテーマで実際に使用されているスタイルを確認する際に特に便利です。この要素には、次の定義が含まれます。

<!ELEMENT non_map_request list_theme_styles>
<!ELEMENT list_theme_styles  EMPTY>
<!ATTLIST list_styles
   data_source   CDATA #REQUIRED
   theme CDATA #REQUIRED
>

次の例は、事前定義済テーマTHEME_DEMO_STATESで使用されているスタイルをリクエストします。

<non_map_request>
   <list_theme_styles data_source="mvdemo" theme="THEME_DEMO_STATES"  />
</non_map_request>

次の例に、このリクエストに対するレスポンスを示します。

<non_map_response>
  <theme_style name="C.US MAP YELLOW" type="COLOR" render="true" label="false" 
    highlight="false" description="Primary color for US maps."/>
  <theme_style name="T.STATE NAME" type="TEXT" render="false" label="true" 
    highlight="false" description="name for states"/>
</non_map_response>

list_theme_stylesリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response (theme_style*)>
<!ELEMENT theme_style EMPTY>
<!ATTLIST theme_style
    name CDATA #REQUIRED
    type   CDATA (COLOR|LINE|MARKER|AREA|TEXT|ADVANCED)  #REQUIRED
    render CDATA (true|false)  #REQUIRED
    label CDATA (true|false)  #REQUIRED
    highlight CDATA (true|false) #REQUIRED
    description CDATA #IMPLIED
>

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

  • name属性は、スタイル名を識別します。

  • type属性は、MapViewerのスタイル・タイプを識別します。

  • render属性は、そのスタイルがテーマによってレンダリング・スタイルとして使用されるかどうかを示します。

  • label属性は、そのスタイルがラベリング・スタイルとして使用されるかどうかを示します。

  • highlight属性は、そのスタイルがハイライト・スタイルとしてのみ使用されるかどうかを示します。

  • description要素は、スタイル定義で指定されている説明を識別します。

5.7 スタイル定義の取得(汎用)

<get_style_definition>要素は、データソースのスタイル定義を返します。この要素には、次の定義が含まれます。

<!ELEMENT non_map_request get_style_definition>
<!ELEMENT get_style_definition EMPTY>
<!ATTLIST get_style_definition 
  data_source  CDATA #REQUIRED
  style        CDATA #REQUIRED
>

次の例は、mvdemoデータソースのM.AIRPORTスタイルの定義を返します。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <get_style_definition data_source="mvdemo" style="M.AIRPORT"/>    
</non_map_request>

次の例に、このリクエストに対するレスポンスを示します。

<non_map_response>
<style name="M.AIRPORT">
  <svg width="1in" height="1in">
    <desc/>
    <g class="marker" style="width:23;height:15;font-family:Dialog;font-size:12;font-fill:#FFFFFF">
      <image x="0" y="0" width="1" height="1" markerType="gif" href="dummy.gif"/>
    </g>
  </svg>
</style>
</non_map_response>

5.8 メモリー内キャッシュの管理

MapViewerでは2種類のメモリー内キャッシュが使用されます。

  • スタイル、テーマ、ベース・マップ定義といったマッピング・メタデータや、キャッシュ内のテーブルにあるSDO_GEOMETRY列のSRID値に対応するメタデータ・キャッシュ

  • 事前定義済テーマ(マップの生成に使用されるジオメトリ・データおよび画像データ)に対応する空間データ・キャッシュ

これらのキャッシュを使用すると、キャッシュされた情報についてはMapViewerがデータベースにアクセスしないため、パフォーマンスが向上します。ただし、その情報がキャッシュに格納された後にデータベース内で変更された場合、MapViewerの表示に古い情報が反映されることがあります。

MapViewerを再起動せずに最新情報を使用するには、これらのキャッシュのいずれかまたは両方の内容を消去(無効化)します。キャッシュが消去された場合、次のMapViewerリクエストでは必要な情報がデータベースから取得され、適切なキャッシュに情報が格納されます。

5.8.1 データソースのメタデータ・キャッシュの消去(管理)

ユーザーがデータソースのマップをリクエストすると、MapViewerではデータソースのスタイル、テーマおよびベース・マップ定義といったマッピング・メタデータや、テーブル内にあるSDO_GEOMETRY列のSRID値がキャッシュされます(テーマを最初にレンダリングする場合など)。これによって、MapViewerがマッピング・メタデータをフェッチする際に、データベースに不必要にアクセスすることを防止できます。ただし、Map Builderツールなどを使用してマッピング・メタデータを変更しても、MapViewerを再起動するまでは反映されません。

MapViewerを再起動せずに変更済の定義を使用するには、MapViewerに対し、指定のデータソースについてキャッシュされたすべてのマッピング・メタデータおよびSRID値を消去(つまり、キャッシュから削除)するようにリクエストできます。メタデータ・キャッシュを消去すると、MapViewerは必ずデータベースにアクセスして最新のマッピング・メタデータを取得します。

<clear_cache>要素は、MapViewerメタデータ・キャッシュを消去します。これには、次の定義が含まれます。

<!ELEMENT non_map_request clear_cache>
<!ELEMENT clear_cache  EMPTY>
<!ATTLIST clear_cache
   data_source  CDATA #REQUIRED
>

data_source属性は、MapViewerメタデータ・キャッシュから削除されるメタデータを含むデータソースの名前を指定します。

次の例では、MapViewerメタデータ・キャッシュからデータソースmvdemoのメタデータを消去します。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <clear_cache data_source="mvdemo"/>
</non_map_request>

clear_cacheリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response clear_cache>
<!ELEMENT clear_cache  EMPTY>
<!ATTLIST clear_cache
   succeed   (true | false) #REQUIRED
>

例:

<?xml version="1.0" ?> 
<non_map_response>
 <clear_cache succeed="true"/> 
</non_map_response>

5.8.2 テーマに関する空間データ・キャッシュの消去(管理)

MapViewerでは、レンダリング用にデータベースからメモリーにデータをロードする際に、キャッシュしないように指定されている場合を除き、事前定義済テーマの空間データ(ジオメトリまたは地理参照画像)をキャッシュします。(MapViewerは動的テーマまたはJDBCテーマのデータはキャッシュしません。)したがって、事前定義済テーマが頻繁にアクセスされている場合は、データの大部分がキャッシュに格納されていると考えられます。ただし、テーマの空間データがデータベースで変更されている場合、その変更はマップ上に表示されません。これは、MapViewerが引き続きキャッシュのデータ・コピーを使用しているためです。MapViewerを再起動せずに変更済のテーマ・データを表示するには、まずそのテーマのキャッシュ・データを消去する必要があります。

<clear_theme_cache>要素は、事前定義済テーマのキャッシュ・データを消去します。これには、次の定義が含まれます。

<!ELEMENT non_map_request clear_theme_cache>
<!ELEMENT clear_theme_cache  EMPTY>
<!ATTLIST clear_theme_cache
   data_source CDATA #REQUIRED
   theme       CDATA #REQUIRED
>

data_source属性は、データソースの名前を指定します。theme属性は、そのデータソース内の事前定義済テーマの名前を指定します。

次の例では、データソースmvdemo内のSTATESという事前定義済テーマのキャッシュされた空間データを消去します。

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <clear_theme_cache data_source="mvdemo" theme="STATES"/>
</non_map_request>

clear_theme_cacheリクエストに対するレスポンスのDTDは、次のような書式になります。

<!ELEMENT non_map_response clear_theme_cache>
<!ELEMENT clear_theme_cache  EMPTY>
<!ATTLIST clear_theme_cache
   succeed  (true | false) #REQUIRED
>

例:

<?xml version="1.0" ?> 
<non_map_response>
 <clear_theme_cache succeed="true"/> 
</non_map_response>

5.9 MapViewer構成ファイルの編集(管理)

<edit_config_file>要素を使用すると、MapViewer構成ファイル(mapViewerConfig.xml)を編集できます。これには、次の定義が含まれます。

<!ELEMENT non_map_request edit_config_file>
<!ELEMENT edit_config_file  EMPTY>

注意:

<edit_config_file>要素は、スタンドアロンのOC4J環境または起動しているプロセスが1つのみのクラスタ化されていないOC4JインスタンスでMapViewerを実行している場合にのみ使用します。それ以外の場合、加えた変更が1つのMapViewerインスタンスにのみ適用され、一貫性がそこなわれる可能性があります。

リクエストを次のように指定します。

<?xml version="1.0" standalone="yes">
<non_map_request>
  <edit_config_file/>
</non_map_request>

リクエストを発行すると、MapViewer構成ファイルの現在のコンテンツを含むHTMLフォームが表示されます。フォームを編集してコンテンツを変更し、「保存」ボタンをクリックして変更をコミットします。ただし、MapViewerサーバーを再起動するまで、変更は有効になりません(5.10項を参照)。

5.10 MapViewerサーバーの再起動(管理)

通常、MapViewerサーバーを最も安全に再起動するには、含まれているOC4Jインスタンスを再起動します。ただし、スタンドアロンのOC4J環境でMapViewerを実行している場合、またはOC4Jインスタンスがクラスタ化されておらず、起動しているJavaプロセスが1つのみの場合は、OC4Jインスタンス全体を再起動しなくても<restart>要素を使用して素早くMapViewerを再起動できます。<restart>要素には、次の定義が含まれます。

<!ELEMENT non_map_request edit_config_file>
<!ELEMENT restart  EMPTY>

リクエストを次のように指定します。

<?xml version="1.0" standalone="yes">
<non_map_request>
  <restart/>
</non_map_request>