4.6.2 Notification Event Handler
For both unsolicited notifications and a brokered event notification, the Jolt client application requires an event handler routine that is invoked upon receipt of a notification. Jolt only supports a single handler per session. In Oracle Tuxedo versions, you cannot determine which event generated a notification. Therefore, you cannot invoke an event-specific handler based on a particular event.
The client application must provide a single handler (by
overriding the onReply()
method) per session that will
be invoked for all notifications received by that client for that
session. The single handler call-back function is used for both
unsolicited and event notification types. It is up to the
(user-supplied) handler routine to determine what event caused the
handler invocation and to take appropriate action. If the user does
not override the session handler, then notification messages are
silently discarded by the default handler.
The Jolt client provides the call back function by subclassing
the JoltSession class and overriding the onReply()
method with a user-defined onReply()
method.
In Oracle Tuxedo/ATMI clients, processing in the handler call-back function is limited to a subset of ATMI calls. This restriction does not apply to Jolt clients. Separate threads are used to monitor notifications and run the event handler method. A Jolt client can perform all Jolt-supported functionality from within the handler. All the rules that apply to a normal Jolt client program apply to the handler, such as a single transaction per session at any time.
Each invocation of the handler method takes place in a separate
thread. The application developer should ensure that the
onReply()
method is either synchronized or written
thread-safe, because separate threads could be executing the method
simultaneously.
Jolt uses an implicit model for enabling the handler routine.
When a client subscribes to an event, Jolt internally enables the
handler for that client, thus enabling unsolicited notifications as
well. A Jolt client cannot subscribe to event notifications without
also receiving unsolicited notifications. In addition, a single
onReply()
method is invoked for both types of
notifications.
Parent topic: Event Subscription and Notifications