简体   繁体   English

Wildfly 10 中 HornetQ 的 JMSException

[英]JMSException for HornetQ in Wildfly 10

I am running more than one schedulers at a time with 1000ms and 500ms repeatInterval.我一次运行多个调度程序,重复间隔为 1000 毫秒和 500 毫秒。 The schedular reads some messages from queue, processes them, and store in a MySQL database.调度程序从队列中读取一些消息,对其进行处理,并存储在 MySQL 数据库中。 In middle of these process sometimes I am getting this kind of exceptions.在这些过程的中间,有时我会遇到这种异常。

javax.jms.JMSException: AMQ119014: Timed out after waiting 30,000 ms for response when sending packet 71
2020-02-25 12:05:27,483 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:398)
2020-02-25 12:05:27,483 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:304)
2020-02-25 12:05:27,484 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendFullMessage(ActiveMQSessionContext.java:378)
2020-02-25 12:05:27,484 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.sendRegularMessage(ClientProducerImpl.java:286)
2020-02-25 12:05:27,485 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:264)
2020-02-25 12:05:27,485 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:122)
2020-02-25 12:05:27,485 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.doSendx(ActiveMQMessageProducer.java:477)
2020-02-25 12:05:27,486 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:173)
2020-02-25 12:05:27,486 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at com.ecomm.web.jmsqueue.SubmitToJMS.sendJMSMessagewithpriority(SubmitToJMS.java:197)
2020-02-25 12:05:27,486 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at com.ecomm.web.jmsqueue.InputMsgNewServerQueue.sendtosenderQueue(InputMsgNewServerQueue.java:78)
2020-02-25 12:05:27,486 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at com.pl4sms.web.thread.InputMsgSchHighPriority.execute(InputMsgSchHighPriority.java:36)
2020-02-25 12:05:27,487 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
2020-02-25 12:05:27,487 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
2020-02-25 12:05:27,487 ERROR [stderr] (DefaultQuartzScheduler_Worker-5) Caused by: ActiveMQConnectionTimedOutException[errorType=CONNECTION_TIMEDOUT message=AMQ119014: Timed out after waiting 30,000 ms for response when sending packet 71]
2020-02-25 12:05:27,488 ERROR [stderr] (DefaultQuartzScheduler_Worker-5)        ... 13 more
2020-02-25 12:05:27,488 ERROR [com.ecomm.web.jmsqueue.SubmitToJMS] (DefaultQuartzScheduler_Worker-5) javax.jms.JMSException: AMQ119014: Timed out after waiting 30,000 ms for response when sending packet 71

Could you describe your problem at least a little.你能不能至少描述一下你的问题。 A CONNECTION_TIMEDOUT jut means that you can't connect which is some configuration issue. A CONNECTION_TIMEDOUT 突出意味着您无法连接,这是一些配置问题。

Your class com.ecomm.web.jmsqueue.SubmitToJMS is attempting to send a message, but this operation is timing out waiting for a response from the broker.您的类com.ecomm.web.jmsqueue.SubmitToJMS正在尝试发送消息,但此操作超时等待代理的响应。 You should either increase the time out on the client (eg by using the callTimeout parameter on the client URL, defaults to 30000 milliseconds) or investigate why the broker receiving the message isn't responding to the client within the allotted time.您应该增加客户端的超时时间(例如,通过在客户端 URL 上使用callTimeout参数,默认为30000毫秒)或调查接收消息的代理为什么没有在分配的时间内响应客户端。

Just in case.以防万一。 I had the same problem with camel routing.我在骆驼路由方面遇到了同样的问题。

.transacted() option removed this problem: .transacted()选项消除了这个问题:

from("timer:hello?period=10s")
               .routeId("hello1")
               .transacted()
               .setBody(simple("This is plain string"))
               .to("jms:queue:consumerQueueName");

java 18 + wildfly 20 + artemis 2.25.0 java 18 + 野蝇 20 + 阿尔忒弥斯 2.25.0

all via JNDI全部通过 JNDI

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM