Configuring Guaranteed Messaging

To enable clients to publish Guaranteed messages to and receive Guaranteed messages from a Solace PubSub+ event brokers, the following event broker configuration steps must be performed:

For JMS clients, the Connection Factory that is used must have the direct‑transport property set to false so that messages will be delivered using the Guaranteed Transport mode instead of the default Direct Transport mode. See Configuring Connection Factories.

Transaction Configuration

For client applications to publish and/or receive messages in local or XA transactions, you must also perform the additional configurations:

  • Enable transaction support in the client profile to be used. See Allowing Transacted Sessions.
  • If required, increase the value for the maximum number of transactions permitted property for the client profile used. See Configuring the Max Number of Transactions.
  • If required, increase the value for the maximum number of messages per transaction permitted property for the client profile used. See Configuring the Max Number of Messages Per Transaction. (Changing the maximum number of messages per transaction is a Controlled Availability (CA) feature and should only be used under the supervision of Solace support.)
  • For XA transactions, enable the xa property for the Connection Factory that is used. This property allows connecting JMS clients to also use XA transactions. (By default, this property is not enabled for the default Solace Connection Factory.)

CLI Command Sequence Example

The following CLI command sequence example shows the tasks required to start Guaranteed Messaging and configure a queue and topic endpoint on a Solace PubSub+ appliance.

This example assumes that basic event broker configuration tasks, such as starting the Message VPN and tasks described in IP Interface Configuration for Appliances, have been completed beforehand.

solace(configure)# hardware message-spool
solace(configure/hardware/message-spool)# disk-array wwn 60:06:01:60:e8:60:1c:00:02:88:44:db:5d:6d:de:11
solace(configure/hardware/message-spool)# no shutdown primary
solace(configure/hardware/message-spool)# end
 
solace(configure)# client-profile default
solace(configure/client-profile)# allow-guaranteed-message-receive 
solace(configure/client-profile)# allow-guaranteed-message-send 
solace(configure/client-profile)# exit
 
solace(configure)# client-username default message-vpn default
solace(configure/client-username)# client-profile default
solace(configure/client-username)# no shutdown
solace(configure/client-username)# exit
 
solace(configure)# message-spool message-vpn default 
solace(configure/message-spool)# max-spool-usage 60000
solace(configure/message-spool)# create queue testQueue
solace(configure/message-spool/queue)# permission all modify-topic
solace(configure/message-spool/queue)# no shutdown
solace(configure/message-spool/queue)# exit
solace(configure/message-spool)# create topic-endpoint testTopicEndpoint
solace(configure/message-spool/topic-endpoint)# permission all modify-topic
solace(configure/message-spool/topic-endpoint)# no shutdown
solace(configure/message-spool/topic-endpoint)# end