Solace Community is getting a facelift!

On March 3rd we will be starting the process of migrating Solace Community to a new platform. As a result, Solace Community will go in to a temporary read-only state. You will still be able to come onto Solace Community and search through posts to find answers, but you won't be able to ask questions, post comments, or react in any way.

We hope to have the migration complete by Wednesday March 5th (or sooner), so please keep an eye out!

"Guaranteed Message Publish Window Size" with (Solace) JMS

Mike13
Mike13 Member Posts: 29

Hi there
In one of our applications we use the com.solacesystems.sol-jms (version 10.6.4).
I want to configure publishing as described in
https://solace.com/blog/understanding-guaranteed-message-publish-window-sizes-and-acknowledgement/
I found this:
https://docs.solace.com/Solace-JMS-API/Message-Delivery-Propert.htm#jms_properties_39190069_303737
Is there a way to do that programmatically? Something like (this example does not seem to work):


SolConnection solConnection = (SolConnection) connection;
solConnection.getJCSMPProperties().setProperty(JCSMPProperties.PUB_ACK_WINDOW_SIZE, Integer.valueOf(255));

Best regards
Mike

Tagged:

Comments

  • Mike13
    Mike13 Member Posts: 29
    edited March 2021 #2

    Some additional information:

  • marc
    marc Member, Administrator, Moderator, Employee Posts: 973 admin

    Hi @Mike13,
    The Solace JMS API supports JMS version 1.1 which only supports a synchronous sends, so essentially waiting for an ack before returning. Because of this the Solace JMS API only allows for a window size of 1 when publishing persistent messages. As you've found, you can change the window size for non-persistent messages. This is a bit more clear when modifying the Publisher Window Size (msgs) property in the JMS Connection Factory settings in PubSub+ Manager.

    A few other notes:

    • The property you refer to at this link is for the consumer side only. Not publishing.
    • Another option would be to use the Solace JCSMP API if you need to publish persistent messages in a larger window size.

    @Ragnar please feel free to chime in if I slipped up anywhere :)

  • Mike13
    Mike13 Member Posts: 29

    Hi @marc
    Thank you for your reply!
    We will now switch to non persisted for messages where possible.
    Solace JCSMP API is unfortunately currently not a variant.
    Best regards
    Mike

  • ahabel
    ahabel Member Posts: 9 ✭✭

    Hi @marc,
    sorry to bring up that old topic again, but we just ran into this issue and I've found your notes here.
    What confuses me a lot is the part of the documentation that says: "for non-persistent guaranteed messages sent by the Publisher".

    So, how could a non-persistent message be guaranteed?

    Or in other words, our szenario is like that:
    We're sending JMS messages to a dynamic Solace Topic (including country code and other dynamic values) on an HA Broker and have - depending on the dynamic values - around 1 to 50 queues with matching subscriptions per message.

    As we cannot tollerate any data loss, we assumed persistent is the right and obvious setting, however - what would be the difference in this scenario if we'd choose Non-Persistent?
    Would the message be ACKed to the Publisher before it is persisted in any of the subscribing queues or synched to the passive node?

    best regards
    Andreas

This Month's Leaders

This Week's Leaders