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();

  dispatcher.dispatch(msg);
}

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s