JCSMP Ack mode

slsbel Member Posts: 13
edited November 2022 in General Discussions #1


I'm creating a Jcsmp session based on this tutorial: solace-samples-java-jcsmp/QueueConsumer.java at master · SolaceSamples/solace-samples-java-jcsmp · GitHub.

even if I'm setting the flow_prop.setAckMode(JCSMPProperties.SUPPORTED_MESSAGE_ACK_CLIENT);

and passing the flow_prop to the session as in the tutorial.

the generated message session ack mode is : messageAckMode ="auto_ack"

is anything missing in the configuration of the session?

Thank you!



  • slsbel
    slsbel Member Posts: 13
    edited November 2022 #2

    I think I know what is causing this issue!

    The session is created based on SpringJCSMPFactory, and SolaceJavaAutoConfiguration Bean.

    as follow:

    solaceFactory = solaceJavaAutoConfiguration.getSpringJCSMPFactory();
    session = solaceFactory.createSession();

    That is giving me access to the broker and the queue based on the Spring boot application properties


    How I can pass other properties to the session if it is created based on SpringBoot JCSMP Factory? since the SpringJCSMPFactory createSession() method doesn't accept JCSMPProperties as parameter?

  • slsbel
    slsbel Member Posts: 13
    edited November 2022 #3

    I was able to resolve this issue by getting the JCSMPProperties from the SolaceJavaAutoConfiguration Bean (to access the properties from the application.properties file) as follows:

    JCSMPProperties jcsmpProperties = solaceJavaAutoConfiguration.getJCSMPProperties();

    and setting the acknowledgment using the property setter:


    and finally, I'm creating the session using the JCSMPFactory instead of the SpringJCSMPFactory , and passing the properties.

    session = JCSMPFactory.onlyInstance().createSession(jcsmpProperties);

    I'm not sure if there is a way to achieve the same configuration using SpringJCSMPFactory?