2016-02-03 4 views
0

У меня есть приложение с пружинным загрузочным приложением, работающее как сервер 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 

На сервере эта линия на бревне появляется? Брандмауэр, прокси, сеть, ресурсы, версия?

ответ

0

Скорее проблема, сети тогда, некоторые из вещей, которые я хотел бы сделать:

1) Ping HornetQ от проблемного клиента и пинг клиента с сервера HornetQ. Если вы не можете выполнить ping с обеих сторон, это, скорее всего, проблема конфигурации, такая как плохая сетевая маска или шлюз или что-то в этом роде. Traceroute/tracert - ваш друг.

2) Из проблемного клиента попробуйте подключиться к серверу Hornetq на порту 5446 (при условии, что вы используете значение по умолчанию). Если порт открыт, введите некоторые символы мусора и посмотрите, получаете ли вы ответ, даже если мусор получает какой-то ответ, следует указать, что клиент может добраться до сервера.

3) Включите пучок больше регистрации, в зависимости от того, как он настроен или запущен в JBoss или на каком-либо другом сервере приложений, вы можете изменить то, что конкретно хотите сделать, не можете рассказать вам, не зная деталей вашей реализации. Ведение журнала отладки на стороне клиента должно быть вашим другом.

+0

Telnet работает (это интригующая часть), и журнал находится на трассе, но я не могу найти там ничего полезного. – pgrazek

+0

Любой брандмауэр или что-то нюхающее движение? Является ли клиент, который не может получить JBoss/Hornetq в другой подсети, чем клиенты, которые могут подключиться? Может ли быть что-то среднее между тем, что фильтрует этот определенный трафик на основе контента? Возможно, что telnet для порта 5446 ничего не запускает, потому что вы не отправили данные в правильном протоколе, но это действительно сообщение Hornetq. Тот факт, что вы не видите ничего в журнале JBoss, означает, что он даже не получил его, возможно, стоит попробовать netstat -a на ОС. Вы также можете проверить, что слушает JBoss, может быть конкретная подсеть. –

Смежные вопросы