Dashboard Correlator
High-Level Process Flows







JMS Messaging Entry Point

Incoming JMS messages to be processed by the Correlator application are received by one of the following 3 classes:

The <jms:listener-container> beans in correlator.xml map a particular JMS destination (queue or topic) to a "handling" method in one of these classes (example shown below):
<jms:listener-container connection-factory="connectionFactory" destination-type="topic" concurrency="1"> <!—Concurrency=1 for topics --> <jms:listener destination="#{esbProperties.finalisedSettingQueue}" ref="systemSettingChangeEntryPoint" method="receiveCorrelationWindowChange"/> </jms:listener-container>
There is one listener container for queues, and one for topics.

Main Event Processing Flows

Listed below are the high-level event processing flows for down/up event handling and correlation. This is only an outline of the overall algorithm (a guide to what these parts of the application do, rather than a detailed explanation).
Note that correlation is handled in a cross-cutting thread rather than in the event handling threads themselves to ensure a cleaner concurrent algorithm. The event processing threads are as short running as possible, can run in parallel (thus maximising parallel processing), but do not share mutable state with one another. They do, however, share mutable state with the correlation thread (see concurrency document for more detail on high-level concurrency approach).

DOWN Event

UP Event


Correlation