Entries by DIshant Langayan

Checking Solace Message Router Capabilities

Each Solace Message Router can support both direct messaging and guaranteed messaging, with the latter providing more capabilities and features to applications, such as dynamic queue provisioning, queue browsing, etc. Moreover, administrators can configure an appliance to prevent an application from, for example, creating queues on one Message VPN while granting permissions on another. If you’re new to Solace messaging, refer to the Solace Core Concepts for some background on Solace messaging in general and direct vs guaranteed messaging in particular.

In this post I will show how applications can query a Solace Message Router to discover some of these capabilities so applications can make intelligent decisions dynamically, and take appropriate action when a capability is not available on the Message VPN or Solace Message Router they are connecting to. I will also explain how to detect these capabilities using the Solace Java API. Detecting capabilities also allows applications to be more portable when moving from one environment to another, for example moving the application from development to QA to production.… Read the rest

Understanding Guaranteed Message Publish Window Sizes and Acknowledgments

One of the main advantages of Guaranteed Messaging (a.k.a.  Persistent Messaging or store-and-forward messaging), is that a receiver does not have to be available for the publisher to send messages as the Solace Message Router will persist the messages until the receiver becomes available again. The publisher is guaranteed that a message is successfully persisted by the Solace Message Router once it receives an acknowledgement for the message it sent. Persistence increases reliability but does add some overhead compared to Solace’s Direct Messaging, which provides no acknowledgments to the publisher.

Despite this overhead and the round trip times of acknowledgements, Solace Message Routers provide a high throughput rate for Guaranteed Messaging publishers. This high performance is enabled in the SMF protocol through the use of a Publish Window. In this post, I will introduce you to the concept of Publish Windows and their sizes, and how acknowledgements affect these windows. We will also look at when and how to adjust the sizes of the Publish Window using Solace’s Java API.… Read the rest

Blocking vs Non-Blocking Publishing with Solace Messaging

In this post, I will introduce you to the concepts of blocking vs non-blocking publish available with some of Solace’s APIs. You will also learn when and how to use these two modes in your applications. This feature is supported in only the Java RTO, C, and .NET Solace APIs. The Java API only supports a blocking publish model. For the purpose of this post we will be using Solace’s C API to demonstrate code samples and concepts, with references to documentation on how the same can be achieved using other available Solace APIs.

The post also assumes the following:

Blocking and non-blocking publish can be used with both Solace’s Direct Messaging Delivery mode as well as Guaranteed (a.k.a Persistent) Messaging Delivery mode. In this post we use Direct Messaging Delivery mode and any differences with Persistent Delivery mode will be highlighted when necessary.… Read the rest