Skip To Content

ArcGIS Server をポーリング (フィーチャ サービス)

ArcGIS Server をポーリング (フィーチャ サービス) 入力コネクタを使用すると、ArcGIS Enterprise または ArcGIS Online マップ/フィーチャ サービス レイヤーでフィーチャ レコードをポーリングし、イベント レコードとして処理することができます。

使用上の注意

ArcGIS Server をポーリング (フィーチャ サービス) 入力コネクタを使用する際には、以下の点に注意してください。

  • この入力コネクタは、マップ サービスまたはフィーチャ サービス レイヤーからフィーチャを取得するために使用されます。
  • この入力コネクタは、フィーチャ JSON インバウンド アダプターとフィーチャ サービス インバウンド トランスポートを組み合わせます。 フィーチャ JSON インバウンド アダプターは、フィーチャ JSON を明示的に解釈します。 詳細については、「ジオメトリ オブジェクト」をご参照ください。
  • ArcGIS EnterpriseArcGIS OnlineArcGIS Server (スタンドアロン) マップ サービスおよびフィーチャ サービスがサポートされています。
  • サービス レイヤーを参照するには、[レイヤーの参照] オプションを使用するか、[サービス レイヤー URL] オプションで URL を指定します。 どちらの方法を使用する場合でも、登録済みデータ ストアへの接続を先に確立する必要があります。
  • その他すべての入力コネクタと同様、ジオイベント定義が必要です。 ジオイベント定義は、受信中のイベント レコードのスキーマを識別します。 詳細については、「ジオイベント定義」をご参照ください。
  • ジオイベント定義に含まれないイベント属性フィールドのデータ値は無視されます。
  • この入力コネクタは、指定の間隔で指定のマップ レイヤーまたはフィーチャ レイヤーを定期的にポーリングします。 Web サーバーや Web サービスと同様に、ポーリング間隔を極端に短くすることはお勧めしません (毎秒など)。
  • マップ サービスまたはフィーチャ サービスのポーリングごとに返されるフィーチャ レコード セットを識別するために、単純な WHERE 句が使用されます。 デフォルトでは、ポーリングされたフィーチャ レコード セットのすべてのレコードを含めます (例: WHERE 1=1)。 デフォルトの WHERE 句に手を加え、特定の属性値や論理条件を含めることができます。
  • この入力コネクタは、指定されたジオメトリと空間リレーションシップ (ポリゴンとの交差など) を使用する空間フィルターに対応しています。
  • この入力コネクタでは、必要に応じて、ポーリング対象のマップ レイヤーまたはフィーチャ レイヤーからポーリング済みのレコードを削除することができます。
  • この入力コネクタには、増分更新の取得という独自の機能があります。この機能では、[ObjectID] または [タイムスタンプ] の値を使用して、新しく追加された、または更新されたフィーチャ レコードをポーリングします。
  • 増分更新のポーリングを構成するには、4 つのオプションから選択できます。 フィーチャ レコードのオブジェクト ID、前回受信した以降のタイムスタンプというコンテキスト、前回のクエリ時間から現在までのタイムスタンプ間隔というコンテキスト、またはシステムの現在の日時とオーバーラップするタイムスタンプのいずれかを使用することができます。
  • 増分更新のポーリングの詳細については、Esri コミュニティの次のリソースをご参照ください。

パラメーター

ArcGIS Server をポーリング (フィーチャ サービス) 入力コネクタのパラメーターを次に示します。

パラメーター説明

名前

GeoEvent Manager で参照用として使用される入力コネクタの記述名。

登録済みのサーバー接続

ArcGIS Server にデータ ストアとして登録された ArcGIS EnterpriseArcGIS Online、または ArcGIS GeoEvent Server 接続。 登録済みのサーバー接続は、マップ サービス、フィーチャ サービス、フィーチャ レイヤーとそれらに含まれるレイヤー プロパティに関する情報をキャッシュします。

レイヤー タイプへの参照

レイヤーを参照するときのオプションを定義します。

  • [レイヤーの参照] - 登録されているデータ ストアのフォルダーを参照することでサービス レイヤーを参照します。
  • [サービス レイヤー URL] - 共有されているサービス レイヤーの URL を指定することでサービス レイヤーを参照します。

フォルダー

(条件)

ArcGIS Server サービス フォルダー、ArcGIS Enterprise ポータル、または ArcGIS Online コンテンツ アイテム フォルダー。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

サービス名

(条件)

フィーチャ レコードのポーリング元となるマップ/フィーチャ サービスの名前。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

レイヤー

(条件)

フィーチャ レコードにアクセスする際に使用されるマップ/フィーチャ サービスのフィーチャ レイヤー。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

サービス レイヤー URL

(条件)

サービス レイヤーへの URL。

注意:
URL によってサービス レイヤーを参照する場合、データ ストア接続が確立されていなければなりません。 サービス レイヤーは、パブリックにアクセス可能であるか、データ ストア接続を確立する認証情報を持つユーザーと共有されている必要があります。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [サービス レイヤー URL] に設定されている場合に表示され、[レイヤーの参照] に設定されている場合は非表示になります。

ジオイベント定義の作成

インバウンド イベント データに新しいジオイベント定義を使用するか、既存のジオイベント定義を使用するかを指定します。 GeoEvent Server がインバウンド データ属性フィールドおよびデータ タイプを理解するには、ジオイベント定義が必要です。

  • [はい] – 最初に受信したイベント レコードのスキーマに基づき、新しいジオイベント定義が作成されます。
  • [いいえ] – 新しいジオイベント定義は作成されません。 インバウンド イベント データのスキーマに一致する、既存のジオイベント定義が選択されます。

ジオイベント定義名 (新規)

(条件)

新しいジオイベント定義に与えられる名前。 指定した名前を持つジオイベント定義がすでに存在する場合、既存のジオイベント定義が使用されます。 最初に受信したデータ レコードを使用し、後続のデータ レコードで予期されるスキーマを決定します。新しいジオイベント定義は、最初のデータ レコードのスキーマに基づいて作成されます。

このパラメーターは、[ジオイベント定義の作成][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

ジオイベント定義名 (既存)

(条件)

受信したデータを適合して、GeoEvent Service によって処理されるイベント データを作成する際に使用する、既存のジオイベント定義の名前。

このパラメーターは、[ジオイベント定義の作成][いいえ] に設定されている場合に表示され、[はい] に設定されている場合は非表示になります。

更新間隔

マップ/フィーチャ サービスのフィーチャ レイヤーに対し、フィーチャ レコードのポーリングを行う間隔 (秒単位) を指定します。 デフォルトは [10] です (つまり、10 秒ごとに 1 回のポール リクエストが送信されます)。

増分更新の取得

キャッシュされた [ObjectID] または [Timestamp] 値を使用し、新しいフィーチャ レコードまたは更新されたフィーチャ レコードだけをリクエストするかどうかを指定します。 デフォルトは [いいえ] です。

  • [はい] - GeoEvent Server は、キャッシュされた [ObjectID] または [タイムスタンプ] のいずれかを使用し、増分更新をポーリングします。
  • [いいえ] - GeoEvent Server は、キャッシュされた [ObjectID] または [タイムスタンプ] をフィーチャ レコード ポールに組み込みません。

増分更新の識別方法

(条件)

GeoEvent Server が増分更新のポーリング時に、新たに追加された、または最近更新されたフィーチャレコードを識別する方法を指定します。 以下のオプションを使用できます。

  • [ObjectID]GeoEvent Server は、マップまたはフィーチャ サービスのポーリングから返されたフィーチャ レコード セットの最大のオブジェクト ID をキャッシュします。 Object ID が、最後のポーリングからキャッシュされた値よりも大きいフィーチャだけが、次回のポーリングに含まれます。
  • [前回受信した最新フィーチャのタイムスタンプ以降のタイムスタンプ] - GeoEvent Server は下限と未定義の上限を含む時系列クエリを作成します。 下限は前回のポーリングから取得した最新のフィーチャの日時になります。 上限は定義されません。 タイムスタンプが時系列クエリの下限より大きいフィーチャ レコードのみが、次回のポーリングに含まれます。 下限のタイムスタンプは、フィーチャ レコードの指定の属性フィールドから取得されます。
    注意:

    このクエリは、未来のタイムスタンプを持つフィーチャを返す場合があります。 これが発生した場合、以降のすべてのポーリングは、その未来のタイムスタンプより大きいデータを探します。

  • [前回のクエリ時間から現在までのタイムスタンプ間隔] - GeoEvent Server は下限と上限を含む時系列クエリを作成します。 下限は前回のクエリが実行された日時になります。 上限は現在の日時になります。 タイムスタンプが時系列クエリの範囲内にあるフィーチャ レコードのみが、次回のポーリングに含まれます。 フィーチャ レコードのタイムスタンプは、指定の属性フィールドから取得されます。
  • [前回のクエリ時間 (オーバーラップあり) から現在までのタイムスタンプ間隔] - GeoEvent Server は、前回のクエリの実行時間より指定の秒数だけ前の時間に等しい下限と、現在の日時に等しい上限を含む時系列クエリを作成します。 タイムスタンプが時系列クエリの範囲内にあるフィーチャ レコードのみが、次回のポーリングに含まれます。

このパラメーターは、[増分更新の取得][はい] に設定されている場合に表示され、[増分更新の取得][いいえ] に設定されている場合は非表示になります。

タイムスタンプのオーバーラップ期間 (秒)

(条件)

作成された時系列クエリの下限から差し引く秒数。 前回のクエリ時間から現在の時間までの値に対するクエリの実行時に時間的範囲を人為的に拡大するために使用されます。

このパラメーターは、[増分更新の識別方法][前回のクエリ時間 (オーバーラップあり) から現在までのタイムスタンプ間隔] に設定されている場合に表示されます。

増分更新を識別する時間フィールド

(条件)

値が時系列クエリの作成時に使用される属性フィールド。 フィーチャ レコードのタイムスタンプが、作成された時系列クエリの下限と上限の間にあるかどうかを決定するときにも使用されます。 データ タイプが Date である属性のみを選択できます。

このパラメーターは、[増分更新の識別方法][ObjectID] 以外の値に設定されている場合に表示されます。

クエリ定義

マップ/フィーチャ サービスのフィーチャ レイヤーをポーリングする際に返されるフィーチャ レコードを制限するための、論理表現を指定します。 この表現は、Structured Query Language (SQL) の WHERE 句の述部として使用されます。 次のようなケースがあります。

  • 1=1 - デフォルト。WHERE 1=1 句を作成し、使用可能なすべてのフィーチャ レコードをポーリングするために使用されます。
  • track_id LIKE '%AJP' - フィーチャ レコードと、AJP 文字列の任意の場所にある文字列リテラル TRACK_ID を一致させます。
  • reported_dt > timestamp '2019-04-05 22:30:00' - 指定したタイムスタンプよりも大きい日付/時間属性値を持つフィーチャ レコードを一致させます。

ジオメトリ フィルターの使用

ジオメトリ オブジェクトを空間フィルターとして使用し、マップ/フィーチャ サービスのフィーチャ レイヤーにポーリングするときに返されるフィーチャ レコードを制限するかどうかを指定します。 ジオメトリ フィルターを指定した場合、指定したクエリ定義と組み合わせ、フィーチャ レイヤー クエリから返されるフィーチャ レコードをさらに絞り込むことができます。 詳細については、「ジオメトリ オブジェクト」をご参照ください。

  • [はい] – 空間フィルターは、フィーチャ レイヤーのフィーチャに対してクエリを実行するために使用されます。
  • [いいえ] – 空間フィルターは、フィーチャ レイヤーのフィーチャに対してクエリを実行するために使用されません。

フィルター ジオメトリ

(条件)

フィーチャ JSON を使用して表現され、空間フィルターとして使用されるジオメトリ オブジェクト。 正確なジオメトリ オブジェクト構文の詳細については、「ジオメトリ オブジェクト」をご参照ください。

このパラメーターは、[ジオメトリ フィルターの使用][はい] に設定されている場合に表示されます。

ジオメトリ タイプ

(条件)

ジオメトリ フィルター用のフィーチャ JSON によって記述されるジオメトリのタイプを指定します。 サポートされるジオメトリ タイプは、エンベロープ、ポイント、ポリライン、ポリゴン、およびマルチポイントです。

このパラメーターは、[ジオメトリ フィルターの使用][はい] に設定されている場合に表示されます。

空間参照

(条件)

ジオメトリ フィルターの空間参照の Well-Known ID (WKID) を指定します。

このパラメーターは、[ジオメトリ フィルターの使用][はい] に設定されている場合に表示されます。

空間リレーションシップ

(条件)

マップ/フィーチャ サービスのフィーチャ レイヤーからポーリングされたフィーチャ レコードを評価し、ジオメトリ フィルターの条件を満たしているかどうかを確認するために使用する空間参照を指定します。

このパラメーターは、[ジオメトリ フィルターの使用][はい] に設定されている場合に表示されます。

ポーリングされたフィーチャを削除

フィーチャ サービスから返されたレコード セットのフィーチャ レコードを、フィーチャ サービスのフィーチャ レイヤーから削除するかどうかを指定します。 デフォルトは [いいえ] です。

検討事項および制限事項

ArcGIS Server をポーリング (フィーチャ サービス) 入力には、新たに追加された、または最近更新されたフィーチャレコードのみをポーリングする独自の機能があり、この機能は、以前に処理されたフィーチャ レコードの取り込み、適合、処理を行わないが、以前に処理されたフィーチャ レコードをデータ ソースから削除しない場合に役立ちます。 ただし、増分更新をポーリングする機能は、サービスの再起動またはサーバー コンピューターの再起動に関しては回復力がありません。 これは、この機能が新規または更新されたレコードのポーリングを継続的に実行するために、最新のオブジェクト ID または日時の値のメモリ キャッシュに依存しているためです。 いずれかのプレースホルダー値がシステムの再起動後に失われた場合、この入力コネクタは、以前に処理済みのレコードをポーリングします。 その結果、場合によっては、ジオイベント サービスによる誤検知の報告らしきものが作成される可能性があります。

ご利用のソリューションでシステムの再起動に対する回復力を高める必要がある場合は、代表的なフィールド値を使用して処理されているフィーチャ レコードにフラグを設定するというベスト プラクティスの実装を検討してください。 これは、増分更新のポーリング機能を使用する代わりに推奨されます。 たとえば、hasBeenProcessed などのフィールドをフィーチャ サービスのスキーマに追加することを検討します。 フィーチャ サービスで、新規のレコードにデフォルト値 0 が割り当てられるようにします。 この入力コネクタがレコードをポーリングするときに、0 が 1 に上書きされて、そのレコードが処理されたことが示されます。 これを実行するには、ジオイベント サービスでフィールド演算を使用します。 同時に、hasBeenProcessed < 1 というクエリ定義の WHERE 句を使用して入力コネクタを構成します。 これにより、GeoEvent Server が 0 (新規を意味する) である新しいレコードのみを hasBeenProcessed が取得することが保証されます。 フィーチャ レコードを再処理する必要があることがわかった場合は、フィーチャの編集ワークフローで返される hasBeenProcessed 属性の値が 1 から再び 0 に戻るようにして、レコードが次回のポーリングに含まれるようにします。

増分更新のポーリングの詳細については、Esri コミュニティの次のリソースをご参照ください。