【问题标题】:TIBCO JMS with .Net client - problem with stuck messages in queues带有 .Net 客户端的 TIBCO JMS - 队列中卡住消息的问题
【发布时间】:2011-03-18 23:22:16
【问题描述】:

我们将 TIBCO JMS 4.3.3 与 .Net TIBCO.EMS.dll 用于 .net 2.0 的相同版本 我们遇到了队列中卡住消息的巨大问题。我们正在使用从主题桥接的一个队列中的消息。我们的应用程序创建了多个具有长期会话的消费者——每个长期会话都有一个消费者。会话和消费者是在主线程中创建的,但消费者自己使用 Receive() 方法在单独的线程上使用带有超时的消息。每个消费者都有自己的线程在其中工作。在每次成功接收时,我们都会在会话上调用 Commit,该会话创建了接收消息的消费者(抱歉措辞丑陋)。

问题是,当这个队列被大量填充时(通过主题的桥),许多消息被卡住 - 没有线程可以接收它们,我们可以清楚地看到它们正在浏览队列,如果我们重新启动它们,它们会被重新处理应用。我们还看到,当消息卡住时,如果在 TIBCO 控制台中运行“显示消费者”,则发送消息的数量与确认消息的数量不相等。

我们完全迷失了 - 我们尝试为此队列启用和禁用预取。两种解决方案都不起作用。我们将接收超时时间从 1 秒增加到 1 分钟,当待处理消息的数量超过某个边界时,仍然有消息卡住。

我们将不胜感激任何帮助、提示或建议。

【问题讨论】:

    标签: .net jms tibco-ems


    【解决方案1】:

    最后我们发现TIBCO EMS 4.4.3版本有一个bug导致一些客户端连接冻结。它已在 5.x 中修复

    【讨论】:

      【解决方案2】:

      您的线程代码中充当队列接收器的某处似乎缺少确认\提交。 我建议查看消费者代码..也许是多线程。我假设所有线程都在监听唯一的队列..

      -hB

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 2021-11-07
        • 2013-11-14
        • 1970-01-01
        • 2013-06-21
        • 2014-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多