The Event Joiner Processor is used to combine data from two event records with different GeoEvent Definitions using a matching key. The processor creates a new GeoEvent Definition which includes the attribute fields from each specified GeoEvent Definition. Once the processor has received an event record of each GeoEvent Definition, it copies the most recent data from each event record and sends the merged event out as a new GeoEvent.
To configure the Event Joiner Processor, select two GeoEvent Definitions and a field from each schema whose values will be used to perform the join. Once the processor receives an event record of each GeoEvent Definition type, with a matching attribute value (or key) from the join fields, a new GeoEvent will be created. The new event record will share the combined schema of the two GeoEvent Definitions used in the join. Attribute fields in the new GeoEvent Definition will maintain their original data types and order, but tags will be removed.
While waiting to perform a join, the Event Joiner Processor uses an internal cache to retain event records. The processor caches one event record of each unique attribute value for each GeoEvent Definition type. When the processor receives an event record with a previously observed attribute value, the older event record is discarded. This way only the most recently received event record for a given attribute value key will be used when joining two event records.
The cache for this processor is held in memory. The cache will be recreated if changes are published to a GeoEvent Service which includes an Event Joiner Processor or if the ArcGIS GeoEvent Server service is restarted. Stopping and starting a GeoEvent Service in GeoEvent Manager will not cause the cache to be recreated.
The Event Joiner Processor, like the Field Enricher (Feature Service) Processor, has a configurable cache size. When the number of cached event records received exceeds the configured cache size, older records in the cache will be purged to accommodate new event records.
When configuring an Event Joiner Processor, you must specify what should be done with the latest, cached, event records from each GeoEvent Definition after they are used to perform an event join. By default, cached event records will be discarded after they have been used and the processor will wait to receive a new event record of each type for a subsequent join. You can configure the processor, however, to retain its cached event records after a join and produce a new combined event record whenever a new event record of either GeoEvent Definition type is received.