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

戻る
戻る
 
次へ
次へ
 

7 OracleAS MapViewer管理リクエスト

OracleAS MapViewerの主な用途は、様々なmapリクエストを処理することです。ただし、OracleAS MapViewerはXML APIによって、データソースの追加などの各種管理(非map)リクエストも受け入れます。ベース・マップ、テーマまたはスタイルをリストするリクエストを除き、すべてのOracleAS MapViewer管理リクエストでは、OracleAS MapViewerの管理(Admin)ページにログインする必要があります。OracleAS MapViewerのメイン・ページにリンクがあります。この項では、各管理リクエストおよびそのレスポンスの書式について説明します。

管理リクエストはすべて<non_map_request>要素に埋め込まれますが、管理レスポンスはすべて<non_map_response>要素に埋め込まれます。ただし、OracleAS MapViewerによって例外がスローされた場合、レスポンスは<oms_error>要素(3.5項を参照)となります。

管理リクエストは、実行されるタスクの種類に応じた項で説明します。

7.1 データソースの管理

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

7.1.1 データソースの追加

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

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

  • container_ds

  • jdbc_tns_name

  • jdbc_hostjdbc_portjdbc_sidjdbc_modejdbc_userおよびjdbc_password

container_ds属性は、J2EEコンテナのJava Naming and Directory Interface(JNDI)名前空間で定義されているデータソース名を識別します。OC4Jの場合、data-source.xmlファイルで定義されたデータソースのejb-location属性です。

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

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

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

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

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

jdbc_password属性は、jdbc_user属性で指定されているユーザーのパスワードを識別します。

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

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

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

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

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

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

例7-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"は、ユーザー・リクエストがサーバーに到着し、妥当性に関して例外が発生することなく処理されたことを示します。これは、リクエストに含まれるユーザーの意図したアクションがOracleAS 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>

7.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は、セキュリティ上の理由(OracleAS MapViewerからデータソースを誤って削除してしまうことの防止)により必須です。

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

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

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

<?xml version="1.0" standalone="yes"?>
<non_map_request>
  <remove_data_source data_source="mvdemo" jdbc_password="tiger"/>
</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>

7.1.3 データソースの再定義

便宜上、OracleAS 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>要素と同じです。7.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>

7.1.4 全データソースのリスト

<list_data_sources>要素は、現在実行中のOracleAS 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
   >

各データソースについて、データベース・ユーザーのパスワードを除くすべてのデータソース情報が戻されます。

次の例は、2つのデータソースに関する情報が含まれたレスポンスです。

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

7.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>

7.2 全マップのリスト

<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>

7.3 テーマのリスト

<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>

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

7.4 スタイルのリスト

<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はスタイルを所有するスキーマ・ユーザーです。

7.5 キャッシュの管理

OracleAS MapViewerでは、次の2種類のキャッシュが使用されます。

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

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

7.5.1 データソースのメタデータ・キャッシュの消去

ユーザーがデータソースに基づくマップをリクエストすると、OracleAS MapViewerでは、そのデータソースのスタイル、テーマおよびベース・マップの定義といったマッピング・メタデータがキャッシュされます。これによって、OracleAS MapViewerがマッピング・メタデータをフェッチする際に、データベースに不必要にアクセスすることを防げます。ただし、マッピング・メタデータへの変更は、OracleAS MapViewerが再起動されるまで有効になりません。

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

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

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

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

次の例では、OracleAS 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>

7.5.2 テーマに関する空間データ・キャッシュの消去

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

7.6 OracleAS MapViewer構成ファイルの編集

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

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

注意:

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

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

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

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

7.7 OracleAS MapViewerサーバーの再起動

通常、OracleAS MapViewerサーバーを最も安全に再起動するには、含まれているOC4Jインスタンスを再起動します。ただし、スタンドアロンのOC4J環境でOracleAS MapViewerを実行している場合、またはOC4Jインスタンスがクラスタ化されておらず、起動されているJavaプロセスが1つのみの場合は、OC4Jインスタンス全体を起動せずに、<restart>要素を使用して簡単にOracleAS 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>