[
https://issues.jboss.org/browse/JBMESSAGING-1851?page=com.atlassian.jira....
]
Yong Hao Gao commented on JBMESSAGING-1851:
-------------------------------------------
I'm considering to add two attributes 'retryChangeRate' and
'retryChangeRateInterval' to the Connection Factory to fix this.
Failure to send changeRate message results in idle client
---------------------------------------------------------
Key: JBMESSAGING-1851
URL:
https://issues.jboss.org/browse/JBMESSAGING-1851
Project: JBoss Messaging
Issue Type: Bug
Affects Versions: 1.4.0.SP3.CP09
Reporter: Justin Bertram
Assignee: Yong Hao Gao
If a client fails to send a changeRate message, e.g.:
ERROR [org.jboss.jms.client.container.ClientConsumer] Failed to send changeRate message
org.jboss.jms.exception.MessagingNetworkFailureException
at
org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:245)
at
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
at
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
at
org.jboss.jms.client.delegate.ClientConsumerDelegate.org$jboss$jms$client$delegate$ClientConsumerDelegate$changeRate$aop(ClientConsumerDelegate.java:138)
at
org.jboss.jms.client.delegate.ClientConsumerDelegate$changeRate_N952316153687074823.invokeNext(ClientConsumerDelegate$changeRate_N952316153687074823.java)
at
org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:92)
at
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at
org.jboss.jms.client.delegate.ClientConsumerDelegate$changeRate_N952316153687074823.invokeNext(ClientConsumerDelegate$changeRate_N952316153687074823.java)
at
org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
at
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at
org.jboss.jms.client.delegate.ClientConsumerDelegate$changeRate_N952316153687074823.invokeNext(ClientConsumerDelegate$changeRate_N952316153687074823.java)
at
org.jboss.jms.client.delegate.ClientConsumerDelegate.changeRate(ClientConsumerDelegate.java)
at
org.jboss.jms.client.container.ClientConsumer.sendChangeRateMessage(ClientConsumer.java:754)
at
org.jboss.jms.client.container.ClientConsumer.checkSendChangeRate(ClientConsumer.java:913)
at
org.jboss.jms.client.container.ClientConsumer.access$1300(ClientConsumer.java:56)
at
org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1026)
at
org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:104)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.rmi.MarshalException: Failed to communicate. Problem during
marshalling/unmarshalling; nested exception is:
java.io.EOFException
at
org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:131)
at
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.handleOtherException(MicroSocketClientInvoker.java:812)
at
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:725)
at
org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:458)
at
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:141)
at org.jboss.remoting.Client.invoke(Client.java:1935)
at org.jboss.remoting.Client.invoke(Client.java:788)
at org.jboss.remoting.Client.invoke(Client.java:776)
at
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
... 18 more
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at org.jboss.jms.wireformat.JMSWireFormat.read(JMSWireFormat.java:288)
at
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1036)
at
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:694)
... 24 more
The server will never know that the client needs more messages. Therefore the client
will just sit there idle while messages on the server accumulate in its subscription.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira