Messaging Brokers


How to Upgrade Sonic Workbench 7.6.2 to Eclipse 3.4


Dispatching Messages Asynchronously in Progress Sonic ESB

All messages placed in the Outbox by a service are sent at one time. A service can create multiple messages and address them to multiple endpoints. None of these messages are sent until the entire service (XQServiceContext ctx) method has completed.

(from the page 89 of the Developer’s Guide)

[The Asynchronous Event Dispatch API] allows message dispatching at any time after service initialization and provides direct access to the framework dispatch mechanism instead of requiring messages to be placed in the service Outbox.

(from the page 321 of the Developer’s Guide)

public void service(final XQServiceContext ctx) {
  final XQMessage msg = ...

  final XQDispatch dispatcher = ctx.getDispatcher();


There is a SentWithDispatch metric in 7.6 that is also of interest.


Headers vs. Properties in ESBs

Headers are commonly used for service-level information (e.g. HTTP or JMS headers copied from incoming messages) and properties, for message-level information (e.g. data saved from previous messages in the itinerary) that could be instead added to messages.

While Progress Sonic ESB stores them together in XQ messages, both Fuse ESB and JBossESB store headers and properties apart.