Oracle Routing Engineには、ルート・リクエストを処理し、レスポンスを生成するために、ルーティング・エンジン・データに基づいて構築されたOracle Spatial and Graphネットワーク・データ・モデル(NDM)ネットワークが必要です。
次の各項はNDMネットワーク管理操作に関連します。
「ネットワーク作成例」では、ルーティング・エンジンで使用するサンプルNDMネットワークの作成手順を説明します。
構文:
SDO_ROUTER_PARTITION.CREATE_ROUTER_NETWORK( LOG_FILE_NAME IN VARCHAR2 := 'sdo_router_partition.log', NETWORK_NAME IN VARCHAR2 := 'ROUTER_NETWORK');
CREATE_ROUTER_NETWORKプロシージャは、ルーティング・エンジンOracle Data Format (ODF)データを含むルーティング・エンジン・スキーマから実行する必要があります。
LOG_FILE_NAMEパラメータは、ネットワーク作成時に書き込まれるログ・ファイルの名前です。このログ・ファイルはSDO_ROUTER_LOG_DIRディレクトリに作成されます。ネットワークの作成を独自のログ・ファイルに記録するか、デフォルトのパーティション化ログ・ファイルsdo_router_partition.log
に書き込むかを選択できます。
NETWORK_NAMEパラメータでは、作成されるネットワークの名前を指定します。ネットワークの名前はユーザーの判断で決定します。明確化のために、国コードとデータ・バージョンを名前に含めることをお薦めします。たとえば、2012年第1四半期にリリースされた北米データの場合、適切なネットワーク名はROUTER_NA_Q112です。
すでに存在するネットワークの名前を使用してネットワークを作成すると、古いネットワークが新しいネットワークで置換されます。これはお薦めしません。最初に古いネットワークを削除してから(DELETE_ROUTER_NETWORKプロシージャを使用)、新しいネットワークを作成する必要があります。
構文:
SDO_ROUTER_PARTITION.DELTE_ROUTER_NETWORK( LOG_FILE_NAME IN VARCHAR2 := 'sdo_router_partition.log', NETWORK_NAME IN VARCHAR2 := 'ROUTER_NETWORK', LOG_DELETE IN BOOLEAN DEFAULT TRUE);
DELETE_ROUTER_NETWORKプロシージャは、ルーティング・エンジン・スキーマから実行する必要があり、ネットワーク名パラメータに一致するネットワークがスキーマに存在する必要があります。
LOG_FILE_NAMEパラメータは、ネットワーク削除時に書き込まれるログ・ファイルの名前です。このログ・ファイルはSDO_ROUTER_LOG_DIRディレクトリに作成されます。ネットワークの削除を独自のログ・ファイルに記録するか、デフォルトのパーティション化ログ・ファイルsdo_router_partition.log
に書き込むかを選択できます。
NETWORK_NAMEパラメータは、削除されるネットワークの名前です。この名前のネットワークが存在しない場合は、例外がスローされ、エラー・メッセージがログ・ファイルに書き込まれます。
LOG_DELETEパラメータは、削除操作がログ・ファイルに記録されるかどうかを制御します。このパラメータは、主にデバッグ目的で使用します。
この項では、ルーティング・エンジンで使用するサンプルNDMネットワークの作成手順を説明します。
ルーティング・エンジン・スキーマのルーティング・エンジン・ログ・ディレクトリを検証します。SDO_ROUTER_LOG_DIRが存在し、適切な権限を持っている必要があります。ルーティング・エンジン・スキーマにログインし、次の文を実行します。
EXECUTE SDO_ROUTER_PARTITION.VALIDATE_ROUTER_LOG_DIR( 'validate_log.log');
検証が正常に完了すると、validate_log.log
ファイルに次のメッセージが含まれます。
[INFO] PLSQL logging OK (ROUTER_SCHEMA) [INFO] Java logging OK (ROUTER_SCHEMA) [INFO] PLSQL logging OK (MDSYS) [INFO] Java logging OK (MDSYS)
MDSYSスキーマのルーティング・エンジン・ログ・ディレクトリを検証します。SDO_ROUTER_LOG_DIRが存在し、適切な権限を持っている必要があります。MDSYSスキーマにログインし、手順1と同じ文を実行します。
ルーティング・エンジン・スキーマで、次の問合せを使用して、既存のネットワークの名前を検索します。
SELECT SUBSTR(view_name, 0, LENGTH(view_name)-7) Network_Name FROM user_views WHERE view_name LIKE '%PBLOB$';
結果が戻されない場合は、手順5に進みます。次のような結果が戻された場合は、次の手順に進み、新しいネットワークを作成する前にネットワークを削除します。
NETWORK_NAME
------------
<any-network-name>
DELETE_NETWORKプロシージャを使用して、既存のネットワークを削除します。たとえば、既存のネットワーク名がROUTER_NA_Q112の場合は、次のようになります。
EXECUTE SDO_ROUTER_PARTITION.DELETE_ROUTER_NETWORK( 'delete_net.log', 'ROUTER_NA_Q112');
削除が正常に完了すると、delete_net.log
ファイルに次のメッセージが含まれます。
INFO: deleting the Routeserver network: ROUTER_NA_Q112
CREATE_ROUTER_NETWORKプロシージャを使用して、新しいネットワークを作成します。次に例を示します。
EXECUTE SDO_ROUTER_PARTITION.CREATE_ROUTER_NETWORK( 'create_net.log', 'ROUTER_NA_112');
作成操作が正常に完了すると、create_net.log
ファイルに次のメッセージが含まれます。
INFO: creating the Routeserver network: ROUTER_NA_Q112 INFO: rebuild edge table statistics creating views generating metadata