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>
  • 相关阅读:
    C#与JS实现 获取指定字节长度 中英文混合字符串 的方法
    CKFinder_AspDotNet_2.4 破解方法 去版权
    MVC3中如何输出富文本
    CKEditor与CKFinder整合 MVC3
    vue项目多页配置
    设备宽度
    h5前端项目常见问题汇总
    react分享
    javascript-复制
    vue开发笔记
  • 原文地址:https://www.cnblogs.com/jpfss/p/10449169.html
Copyright © 2011-2022 走看看