[
https://issues.apache.org/jira/browse/QPIDJMS-516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17222260#comment-17222260
]
Timothy A. Bish commented on QPIDJMS-516:
-----------------------------------------
If the remote server you are connecting to doesn't support drain (it really
should at this point if it doesn't) then you will get these errors when you are
trying to receive and the prefetch buffer is empty. You've not provided any
real help in determining what is going on though so please provide more
information like the remote peer you are using and capturing frame traces as
outlined in the
[documentation|http://qpid.apache.org/releases/qpid-jms-0.54.0/docs/index.html#logging].
It is possible to work around lack of support for drain on the remote using
the configuration options to disable draining as documented.
{quote}jms.receiveNoWaitLocalOnly If enabled receiveNoWait calls will only
check a consumers local message buffer, otherwise the remote peer is checked to
ensure there are really no messages available. Default is false, the remote is
checked.
{quote}
> Constantly receiving drain request timeouts
> -------------------------------------------
>
> Key: QPIDJMS-516
> URL: https://issues.apache.org/jira/browse/QPIDJMS-516
> Project: Qpid JMS
> Issue Type: Bug
> Components: qpid-jms-client
> Affects Versions: 0.54.0
> Reporter: Sai Pothuraju
> Priority: Major
>
> We notice a behavior where once we are able to connect and receive messages,
> at some point, the consumer stops sending acknowledgements. After 60 seconds,
> we get hit the drain timeout exception even though the messages are being
> sent.
> Reproducible using one of the examples provided
> [https://github.com/apache/qpid-jms/blob/master/qpid-jms-examples/src/main/java/org/apache/qpid/jms/example/Receiver.java]
> org.apache.qpid.jms.JmsOperationTimedOutException: Remote did not respond to
> a drain request in timeorg.apache.qpid.jms.JmsOperationTimedOutException:
> Remote did not respond to a drain request in time at
> org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException.toJMSException(ProviderOperationTimedOutException.java:39)
> at
> org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException.toJMSException(ProviderOperationTimedOutException.java:25)
> at
> org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:80)
> at
> org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:112)
> at org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:915) at
> org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:899) at
> org.apache.qpid.jms.JmsMessageConsumer.performPullIfRequired(JmsMessageConsumer.java:732)
> at
> org.apache.qpid.jms.JmsMessageConsumer.dequeue(JmsMessageConsumer.java:332)
> at
> org.apache.qpid.jms.JmsMessageConsumer.receive(JmsMessageConsumer.java:213)
> at com.aireon.amqp.App.main(App.java:85)Caused by:
> org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException:
> Remote did not respond to a drain request in time at
> org.apache.qpid.jms.provider.amqp.AmqpConsumer.lambda$stop$1(AmqpConsumer.java:184)
> at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) at
> io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:170)
> at
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at java.base/java.lang.Thread.run(Thread.java:832)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]