gpt4 book ai didi

java - 如何判断 java.jms.TopicSubscriber 何时失去与消息代理的连接?

转载 作者:行者123 更新时间:2023-12-01 15:45:57 26 4
gpt4 key购买 nike

我今天正在试验 TopicSubscriber 对象(使用 ActiveMQ 作为我的消息代理和 JMS 提供程序)。我发现,如果我在建立连接后启动同步接收(超时 2 毫秒),并且在建立连接和启动第一次接收之间停止 ActiveMQ,则会引发异常。但是,如果我进行连接,然后成功接收,然后停止代理,然后进行第二次接收,那么我不会在该接收上抛出异常,而是始终收到一条空消息 - 没有迹象表明连接到即使等了几个小时,经纪人也迷路了。然后,重新启动 ActiveMQ 后,除非我的程序关闭并重新打开与它的连接,否则它的任何接收都不会工作。

我知道我可以围绕这个进行编码,但我想知道我是否错过了一些东西,知道如​​何判断我的连接是否丢失 - 请告诉我是否有办法,或者这只是一个“我需要围绕 ActiveMQ 的 JMS 实现的“功能”进行编码。

最佳答案

我使用 ActiveMQ 已经有几年了,尽管使用的是队列而不是主题,但我从未见过这样的行为。我也许可以看到,如果连接中断而代理无法正确断开消费者的连接,那么消费者可能不会立即意识到问题。我不确定,但我认为 ActiveMQ 消费者在建立连接后不会与代理进行太多对话。他们只是等待消息传递。尽管如此,我还是希望能有某种心跳,并且在 OpenWire Format page 上。 ,它确实意味着 OpenWire 有一个默认的 30 秒空闲时间。尝试进行一些网络监控以查看消费者是否尝试发送任何内容。如果它确实如此并且仍然没有意识到连接已断开,那么就会出现一些可疑的情况。否则,这可能只是找到正确方法来保持 Activity 状态的问题。 TCPTransport keepalive设置也可能是值得研究的。

关于java - 如何判断 java.jms.TopicSubscriber 何时失去与消息代理的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com