The Sonic ESB adapter fulfills the following requirements:
Invoke a Sonic ESB Process or Service by sending a JMS Message to its Entry Endpoint. If either a process or service is selected for invocation, only the process or service name is captured at configuration time. At the execution time, the entry endpoint of the process or service is located by invoking client management APIs and the request message is sent to that entry endpoint. The benefit of this approach is if the Sonic ESB Process/Service Entry endpoint is later migrated to different JMS destination, the Sonic ESB adapter continue to function without any change.
Send a JMS Message to a particular JMS destination (also referred to as Endpoint), which resides on Sonic MQ. The message can be constructed using the dataslot values of a BusinessManager process instance. The Sonic ESB adapter workstep can be used to map BusinessManager dataslots to the message fields (as discussed in Mapping OpenEdge ABL dataslots to Sonic ESB message). At execution time, the Sonic ESB adapter workstep instance constructs a JMS message from dataslot values and then sends the message to either the entry endpoint of the Sonic ESB process (or service) or to the selected JMS Destination.
The Sonic ESB adapter workstep instance—after sending the message,—may want to wait for the response message and populate the output dataslot values. Sonic ESB adapter provides an option to select if the adapter workstep instance should wait for reply or not. If true, the Sonic ESB adapter searches for reply message at predefined OpenEdge-specific JMS destinations (listed below) residing on SonicMQ, in the same order of precedence:
OpenEdge.ResponseTopic
OpenEdge.ResponseQueue
The user can select any other JMS destination. The selected JMS destination, on which response message is expected, will be set for "JMSReplyTo" header property on the request message. A request message is the one that gets sent from the adapter and response message is the one that gets received by the adapter.
If an Exception occurs in the Sonic ESB process (or service) or the request message is rejected, a Fault or Rejected Message is sent to the configured reply JMS destination and the Sonic ESB adapter workstep instance gets suspended.