Try OpenEdge Now
skip to main content
BP Server Developer's Guide
JMS based event publisher : Event publisher architecture
 

Event publisher architecture

The architecture is shown in Figure 20.
Figure 20. JMS event publisher architecture
The BP Server saves all the events in the BizEvent Table. The EventReader polls on the BizEvent table and reads all the events periodically. You can modify the configuration file of the EventReader to define the number of events to be read for each database access, the transaction size, and the sleep interval between database accesses.
The EventReader reads the events from the database, and invokes the publish(CommonEvent) method on each sender class. The sender class applies the prefilter conditions on the event and then publishes using JMS or any other technology. The EventPublisher supports a default sender class implemented using JMS. You can also specify any other sender classes in the property file.
An event channel is essentially a placeholder for the specific type of event from where the subscribers or listeners retrieve the events. For the default JMS sender, the event channel corresponds to a JMS topic or queue. The type of events sent to an event channel are controlled by using prefilter properties. For example, you can define separate event channels for each process template, so that events of a specific process template are published to its specific event channel.
The default JMSSender class reads the event channel information from the database and caches it into memory. You can apply the post-filter conditions on the event channel to control the message delivery to the listeners or subscribers. In the case of JMS, you can choose the JMS SQL92 queries as post-filter conditions by including the process data in each JMS message as message properties. The JMS Server tests these conditions and delivers the message to a listener only when the SQL92 query returns true.