У меня есть приложение с пружинным загрузочным приложением, работающее как сервер HornetQ, и ~ 10 клиентских приложений, отправляющих и принимающих сообщения без каких-либо проблем. Но есть один конкретный клиент, который отказывается подключаться со следующим исключением:Клиент не может подключиться к серверу HornetQ
2016-01-29 16:22:19.389 WARN 4764 --- [re-check-thread] org.hornetq.core.client : HQ212037: Connection failure has been detected: HQ119014: Did not receive data from /xx.xxx.xx.xxx:61350. It is likely the client has exited or crashed without closing its connection, or the network between the server and client has failed. You also might have configured connection-ttl and client-failure-check-period incorrectly. Please check user manual for more information. The connection will now be closed. [code=CONNECTION_TIMEDOUT]
Любые направления, чтобы выяснить, что случилось с этим клиентом:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: HQ119014: Timed out waiting for response when sending packet 30
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169)
at org.springframework.jms.core.JmsTemplate.executeLocal(JmsTemplate.java:987)
at org.springframework.jms.core.JmsTemplate.sendAndReceive(JmsTemplate.java:923)
at coral.rapidreconciler.agent.jms.AgentConnectionJms.connectToValc(AgentConnectionJms.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.jms.JMSException: HQ119014: Timed out waiting for response when sending packet 30
at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:390)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:891)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:800)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:337)
at org.hornetq.jms.client.HornetQConnection.authorize(HornetQConnection.java:719)
at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:762)
at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:112)
at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:107)
at org.springframework.jms.core.JmsTemplate.executeLocal(JmsTemplate.java:976)
... 15 common frames omitted
Caused by: org.hornetq.api.core.HornetQConnectionTimedOutException: HQ119014: Timed out waiting for response when sending packet 30
... 24 common frames omitted
На сервере эта линия на бревне появляется? Брандмауэр, прокси, сеть, ресурсы, версия?
Telnet работает (это интригующая часть), и журнал находится на трассе, но я не могу найти там ничего полезного. – pgrazek
Любой брандмауэр или что-то нюхающее движение? Является ли клиент, который не может получить JBoss/Hornetq в другой подсети, чем клиенты, которые могут подключиться? Может ли быть что-то среднее между тем, что фильтрует этот определенный трафик на основе контента? Возможно, что telnet для порта 5446 ничего не запускает, потому что вы не отправили данные в правильном протоколе, но это действительно сообщение Hornetq. Тот факт, что вы не видите ничего в журнале JBoss, означает, что он даже не получил его, возможно, стоит попробовать netstat -a на ОС. Вы также можете проверить, что слушает JBoss, может быть конкретная подсеть. –