If you want to do reliable async sends then you need to make use of a CompletionListener to track/handle the async send completion, e.g: https://docs.oracle.com/javaee/7/api/javax/jms/MessageProducer.html#send-javax.jms.Message-javax.jms.CompletionListener-
The client then sends the message but does not wait for a response. The send call will block (if needed) for the sending link to have credit to send the message before returning. After the send call returns your CompletionListener tracks/handles completion of the send, successfully or otherwise. While an async send has yet to be completed, the Message object should not be accessed. Almost all of this is documented in the JMS spec, e.g the link above. Robbie On Thu, 6 Jun 2019 at 12:29, akabhishek1 <[email protected]> wrote: > > Hi Team, > > We are using "qpid-jms-client-0.40.0" to send messages to Azure ServiceBus. > At this moment, we are using "jms.forceSyncSend=true" to avoid message loss. > > We got the requirement to publish message asynchronously for better > throughtput. > > I have few questions around ASYNC operation to use it effectively in our > estate - > - How async operation are handling the messages internally (documentation is > very thin) > - Is this making network call to broker and waiting for responses? > - How the message reliability is maintained? > - what are the downsides of using ASYNC from a library usage perspective? > > Any insights, you can offer here. > > Regards, > Abhishek Kumar > > > > > > -- > Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
