8.2 位置追跡セット
位置追跡サーバーは、移動する一連のオブジェクトを既知の地域セットについて追跡し、必要に応じて通知を生成します。このフレームワークでは、オブジェクトと地域のセットは追跡セットと呼ばれます。
データベースでは、これらは次の2列で構成される表で管理されます。
region_id NUMBER, geometry SDO_GEOMETRY
REGION_IDはこの表の主キーで、GEOMETRYは追跡地域のジオメトリです。
追跡セットを作成すると、いくつかの追加構造が作成されます。追跡セットはいくつでも作成でき、各セットには数千の地域を指定できます。地域が追跡の対象でなくなった場合、追跡地域表から削除します。
追跡するオブジェクトのセットを作成する必要もあります。各オブジェクトには、オブジェクトのIDと、そのオブジェクトが追跡される地域を示す地域IDを指定する必要があります。つまり、各オブジェクトは1つ以上の追跡地域について追跡できるということです。オブジェクトは、トラッカ・メッセージTRACKER_MSG
を追跡キューに挿入して作成します。
トラッカ・メッセージ・オブジェクトにはobject_id
、region_id
およびoperation
を指定します。operation
パラメータは次のいずれかの文字列値をとります。
-
I
:object_id
で定義されているオブジェクトが、region_id
で定義されている地域内を移動するたびに通知メッセージが発行されます。 -
O
:object_id
で定義されているオブジェクトが、region_id
で定義されている地域外を移動するたびに通知メッセージが発行されます。 -
T
:object_id
で定義されているオブジェクトが、region_id
で定義されている地域の内から外に、または外から内に遷移した場合にのみ通知メッセージが発行されます。 -
D
:region_id
で定義されている地域内でのobject_id
で定義されているオブジェクトの追跡を無効にします。このオブジェクトの追跡を再度有効にするには、別の追跡メッセージを送信する必要があります。
オブジェクトを作成して追跡地域を構成すると、そのオブジェクトの新しい位置メッセージを送信できます。オブジェクトが移動するにつれて、位置が変わります。新しい位置メッセージが送信されるたびに、位置メッセージ・キューに挿入され、位置追跡サーバーで処理されます。位置メッセージが処理され、必要に応じて通知メッセージが生成されます。アプリケーションでは、通知キューをモニターし、新しい通知が生成されるたびに通知メッセージを処理できます。
ユーザーが位置追跡サーバーを実行するには、次の追加権限が必要です。
GRANT aq_administrator_role, create job, manage scheduler to <USER>; grant execute on dbms_aq to <USER>;
GRANT execute on dbms_aqadm to <USER>;
GRANT execute on dbms_lock to <USER>;
GRANT execute on dbms_aqin to <USER>;
GRANT execute on dbms_aqjms to <USER>;
親トピック: 位置追跡サーバー