I dont need to look at the new trace to know that the old trace shows an issue which is not in the client. The consumer asked for one message be sent or the credit discarded, and the server discarded the credit without sending a message (at least three of which were just sent to and accepted by it immediately prior, and which you indicate are visible on your queue).
The "consumer.receiveNoWait()" and "consumer.receive(100)" do different things under the cover (unless a message is already locally available at the client when the call is made, something you are deliberately preventing from happening by configuring zero prefetch) so it isnt surprising things might behave differently against a server. The former grants 1 credit in a draining flow in this case, requesting it either gets a message if available or an indication none are available (here its getting such an indication). The latter grants a credit, leaves it outstanding as you provided a receive time period, returns any message arriving within the timeout, or drains the credit upon timeout (thus ensuring your requested zero-prefetch behaviour) and either returns a message if it arrives or null if one does not. The difference with the receive(100) is likely that the server sends the message due to the credit being outstanding for a period, and not due to any subsequent drain attempts, which may no longer even occur if the message is sent sufficiently quickly. The new logs show they mostly dont happen at all and only sometimes do, but I'd guess even in those cases the arriving message was probably still put in-flight before the draining flows were received. Robbie On Wed, 19 Jun 2019 at 13:03, akabhishek1 <[email protected]> wrote: > > Hi Robbie, > > Thanks a lot for quick reply. I replaced only "consumer.receiveNoWait()" > operation to "consumer.receive(100)" is source code and kept everything > same. > > Please find the attached updated log. As you can see that, I am able to > receive messages continuously. > > It will be very difficult for me to justify ServiceBus team for this issue, > as One operation "receive(100)" is working fine, but other operation > "receiveNoWait()" is not working fine. > > Please take a look on attached log, if you still feel that there is no issue > from Qpid side then please let me know, so I can raise ticket against > ServiceBus team. > > Regards, > Abhishek Kumar > ReceiveWaitDurationLogs.txt > <http://qpid.2158936.n2.nabble.com/file/t396358/ReceiveWaitDurationLogs.txt> > > > > -- > 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]
