java - JMSException InterruptedIOException - 生产者线程被中断

标签 java jms rabbitmq activemq blockingqueue

我收到 JMS 异常,队列似乎没有退出或没有完成任务。

消息是异步的,大部分时间都可以正常工作,但有时会出现异常。似乎听众一直在听另一边,但在生产者那边得到了这个异常。

javax.jms.JMSException: java.io.InterruptedIOException
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1266)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1350)
at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:495)
at com.vtech.mqservice.response.SendResponse.sendResponseToQueue(SendResponse.java:44)


Caused by: java.io.InterruptedIOException
at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:102)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:74)
at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:79)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1244)
... 0 more

请帮助我确定导致生产者线程中断的原因。

我会将 activemq 版本升级到最新版本并更新结果。

请指出正确的方向?

更新:正在使用的ActiveMQ版本是activemq-all-5.3.0.jar

最佳答案

我用谷歌搜索了你的异常没有得到准确的答案,但后来我查看了 ActiveMQ 的 WireFormatNegotiator 的源代码。

你可以在这里找到,http://alvinalexander.com/java/jwarehouse/activemq/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java.shtml

public void oneway(Object command) throws IOException {
    try {
        if (!readyCountDownLatch.await(negotiateTimeout, TimeUnit.MILLISECONDS)) {
            throw new IOException("Wire format negotiation timeout: peer did not send his wire format.");
        }
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        throw new InterruptedIOException();
    }
    super.oneway(command);
}

我认为您的问题与“negotiateTimeout”有关。也许您应该设置一定的超时时间,或者如果您之前设置过超时则将其删除。

关于java - JMSException InterruptedIOException - 生产者线程被中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31927655/

相关文章:

Java MySQL SSL 错误

Java:可序列化的内部类和匿名类是否应该有 SerialVersionUID?

jms - 如何使用 Activemq 虚拟主题?

java - Solace JMS Consumer 重新连接后停止

jenkins - 使用rabbitmq消费者插件配置gerrit触发器

node.js - 使用 Node.js 的 AMQP,如何发布/订阅?

java - 字符串到json转换问题

java - 如何从表列javafx中删除行

java - 如何从 HTTP 基本身份验证中获取密码

go - 如何检查 channel 是否仍在 streadway/amqp RabbitMQ 客户端中工作?