33 SDO_TRKRパッケージ(位置追跡)

MDSYS.SDO_TRKRパッケージには、位置追跡サーバーを使用するためのサブプログラムが含まれています。

これらのサブプログラムを使用するには、「位置追跡サーバー」に記載の概念と技術について理解する必要があります。

トピック:

33.1 SDO_TRKR.CREATE_TRACKING_REGIONS

構文

SDO_TRKR.CREATE_TRACKING_REGIONS(
     region_set_name  IN VARCHAR2, 
     num_trkr_queues  IN NUMBER(38), 
     num_loc_queues   IN NUMBER(38)); 

説明

位置追跡サーバーに必要な追跡地域セット、表およびキューを作成します。

パラメータ

region_set_name

追跡ネットワークの名前。

num_trkr_queues

追跡オブジェクトを管理するために作成するキューの数。

num_loc_queues

位置メッセージを管理するために作成するキューの数

使用上の注意

このプロシージャでは、位置追跡サーバーに必要な表およびキューを作成します。これを実行して追跡サーバーに必要なオブジェクトを設定します。これは、追跡サーバーを有効にするために必要な最初のステップです。

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、10個の追跡キューと10個の位置キューを持つTRACKING_REGIONSという名前の追跡ネットワークを作成します。

EXECUTE SDO_TRKR.CREATE_TRACKING_REGIONS('TRACKING_REGIONS', 10, 10);

33.2 SDO_TRKR.DESTROY_TRACKING_REGIONS

構文

SDO_TRKR.DESTROY_TRACKING_REGIONS(
     region_set_name  IN VARCHAR2, 
     num_trkr_queues  IN NUMBER(38), 
     num_loc_queues   IN NUMBER(38)); 

説明

位置追跡サーバーに必要な追跡地域セット、表およびキューを破棄(削除)します。

パラメータ

region_set_name

グループとして追跡される地域セットの名前。

num_trkr_queues

追跡オブジェクトを管理するために作成するキューの数。

num_loc_queues

位置メッセージを管理するために作成するキューの数。

使用上の注意

このプロシージャは、以前にSDO_TRKR.CREATE_TRACKING_REGIONSプロシージャをコールして作成した追跡ネットワークを破棄します。

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、TRACKING_REGIONSという名前の追跡ネットワークを破棄します。

EXECUTE SDO_TRKR.DESTROY_TRACKING_REGIONS('TRACKING_REGIONS', 10, 10);

33.3 SDO_TRKR.SEND_LOCATION_MSGS

構文

SDO_TRKR.SEND_LOCATION_MSGS(
     region_set_name IN VARCHAR2, 
     location_msgs   IN LOCATION_MSG_ARR, 
     queue_no        IN NUMBER DEFAULT NULL); 

説明

追跡対象のオブジェクトの新しい位置情報を送信します。

パラメータ

 region_set_name

追跡地域セットの名前。

location_msgs

LOCATION_MSG_ARR型のメッセージ。

queue_no

この位置メッセージに使用する特定の位置キュー。このパラメータを指定しないことをお薦めします。この場合、追跡サーバーによってこの位置メッセージの管理に最適なキューが決定されます。

使用上の注意

このプロシージャは、追跡目的で新しい位置メッセージを追加します。追跡対象のオブジェクトの新しい位置が取得されたら、このプロシージャを使用してそのオブジェクトの位置を更新できます。

location_msgsパラメータはLOCATION_MSG_ARR型で、「位置追跡サーバー用のデータ型」に定義があります。

各メッセージには、オプションのタイムスタンプ値を含めることができます。このタイムスタンプ値は位置情報とともに保持されています

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、新しい位置メッセージを追加します。メッセージには、タイムスタンプ値が含まれます。例では、queue_no値は指定されていません。

EXECUTE SDO_TRKR.SEND_LOCATION_MSGS('TEST',  LOCATION_MSG_ARR(location_msg(1, '02-AUG-16 01.53.46.000000 PM', 1,1)));

33.4 SDO_TRKR.SEND_TRACKING_MSG

構文

SDO_TRKR.SEND_TRACKING_MSG(
     region_set_name IN VARCHAR2, 
     tracking_msg    IN TRACKER_MSG; 

説明

必要なキューに追跡オブジェクトを挿入します。追跡対象の移動するオブジェクトごとに1つのTRACKER_MSGが必要です。

パラメータ

region_set_name

追跡セットの名前。

tracking_msg

TRACKER_MSG型のメッセージ。これを使用して、追跡地域セットに対して追跡の必要なオブジェクトが新たに作成されます。

使用上の注意

このプロシージャでは、指定した追跡地域セットに対して追跡されるオブジェクトが新たに作成されます

tracking_msパラメータはTRACKER_MSG型で、「位置追跡サーバー用のデータ型」に定義があります。

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、IDが1 (2つ目のパラメータ)のポリゴンに対して追跡されるIDが1 (1つ目の値)の新しい追跡オブジェクトをTESTという名前の追跡地域セットに挿入します。ISTRACKINSIDEをNに、ISACTIVEをYに指定することも行っています。

EXECUTE SDO_TRKR.SEND_TRACKING_MSG('TEST', TRACKER_MSG(1, 1, 'N', 'Y'));

33.5 SDO_TRKR.START_TRACKING_REGIONS

構文

SDO_TRKR.START_TRACKING_REGIONS(
     region_set_name  IN VARCHAR2, 
     num_trkr_queues  IN NUMBER(38) DEFAULT NULL, 
     num_loc_queues   IN NUMBER(38) DEFAULT NULL); 

説明

位置追跡サーバー用のキューを起動し、それらのキューをモニターするジョブを起動します。

パラメータ

region_set_name

追跡地域セットの名前。

num_trkr_queues

追跡オブジェクトの追跡に使用するキューの数。

num_loc_queues

位置メッセージの追跡に使用するキューの数。

使用上の注意

このプロシージャは、SDO_TRKR.CREATE_TRACKING_REGIONSプロシージャをコールして以前に作成した追跡地域セットをアクティブ化します。

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、以前に作成した追跡地域セットをアクティブ化します。

EXECUTE SDO_TRKR.START_TRACKING_REGIONS('TRACKING_REGIONS', 10, 10);

33.6 SDO_TRKR.STOP_TRACKING_REGIONS

構文

SDO_TRKR.STOP_TRACKING_REGIONS(
     region_set_name  IN VARCHAR2, 
     num_trkr_queues  IN NUMBER(38) DEFAULT NULL, 
     num_loc_queues   IN NUMBER(38) DEFAULT NULL); 

説明

位置追跡サーバー用のキューを停止し、それらのキューをモニターするジョブを停止します。

パラメータ

region_set_name

追跡地域セットの名前。

num_trkr_queues

オブジェクトを追跡するためのキューの数。

num_loc_queues

追跡メッセージを追跡するためのキューの数。

使用上の注意

このプロシージャは、SDO_TRKR.START_TRACKING_REGIONSプロシージャをコールして以前に起動した追跡ネットワークを停止します。

位置追跡サーバーの概念および使用方法については、「位置追跡サーバー」を参照してください。

次の例では、TRACKING_REGIONSネットワークを停止します。

EXECUTE SDO_TRKR.STOP_TRACKING_REGIONS('TRACKING_REGIONS', 10, 10);