zoukankan      html  css  js  c++  java
  • Cannot send, channel has already failed:

    在这里插入图片描述
    背景:

    一个同事往这个队列发数据,另一个同事从这个队列取数据,进行解析。
       这是昨天同事昨天消费者 消费activemq 队列,一开始有正常,运行了一段时间后,发现突然消费者变为零了。因为有监控。之后怎么也连不上。然后报了这个错。
       javax.jms.JMSException: Cannot send, channel has already failed: tcp://IP:61616
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1409)
    at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1496)
    at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:524)
    

    分析:
    本以为是同事写的程序有问题,就用本地写了一个最简单的取数据程序,依旧是报这个错。

    为了不让队列监控一直报警,就让发送数据的同事A 停止 生产者程序。
    突然之后就可以正常取程序了。

    问题锁定:
    这才怀疑是生产者出现的问题。是因为他每次发送消息都new 一个连接导致超出默认最大连接数1000 。所以无法再有连接队列,导致队列无法连接

    发生这个错误,去检查下自己代码,是否是每次都创建一个连接,而没有关闭连接。

    一般分为两种连接
    一种是长连接,适用于处于一值发送数据,
    一种短连接,就是连接了,发送完数据,就关闭连接

            </div>
  • 相关阅读:
    Milking Time---poj3616(简单dp)
    elasticsearch-入门(一)
    Spring Cloud Sleuth(十四)
    Spring Cloud Stream(十三)
    Spring Cloud-Bus(十二)
    Spring Cloud-config(十一)
    mac Gitblit安装
    git学习笔记
    java陷阱之spring事物管理导致锁无效
    Spring Cloud-Zuul(十)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10449169.html
Copyright © 2011-2022 走看看