node.js - MQLight Node.js 客户端在空闲时间后停止接收消息。 MQ 8.0.0.3 上的 AMQP/MQ Light

标签 node.js ibm-mq amqp

我在将 Node.js 客户端与 IBM MQ 8.0.0.3 服务器一起使用时遇到问题。

我的 Node.js 应用程序接收消息效果很好,但如果我让应用程序空闲几个小时(在这个特定实例中,我让它空闲,大约 17 小时没有接收到任何消息),然后在 MQ 服务器上发布新消息,客户端上不会出现任何内容。

我已经为mqlight客户端可以发出的所有事件注册了监听器(除了drain,客户端只是一个接收者),并且在这17小时内没有发出任何事件。客户端计算机上的 Netstat 显示我仍然在端口 5672 上与 MQ 服务器建立了连接。

如果我重新启动客户端应用程序,消息会立即出现。

我是否缺少某些设置或配置?我需要能够相信,如果应用程序正在运行并连接,它将接收消息,并且我不想诉诸定期重新连接客户端作为解决方法。

我的客户端中使用的相关选项:

clientOptions.service = 'amqp://mqserver';
clientOptions.id = 'nodejsclient';

subscribeOptions.autoConfirm = false;
subscribeOptions.qos = 1;
subscribeOptions.ttl = 24*60*60*1000; //24 hours TTL

最佳答案

您表明您拥有 MQ v 8.0.0.3,但需要 MQ 版本 8.0.0.4 才能支持 MQ Light。

您可以尝试 8.0.0.4 看看是否能解决您的问题?您需要从 Passport Advantage 安装完整版本的 MQ 8.0.0.4,而不是向现有 MQ 8 安装添加修复包 4。

了解更多:MQ support for MQ Light and AMQP 1.0 released in 8.0.0.4

关于node.js - MQLight Node.js 客户端在空闲时间后停止接收消息。 MQ 8.0.0.3 上的 AMQP/MQ Light,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34016997/

相关文章:

java - 更改部署时读取 MDB 的主题的激活配置

javascript - 在删除具有相同 key 的文档后,如何通过使用Mongoose的deleteOne方法和 key 来获取错误?

java - 尝试加载 binding.gyp 时调用 'node findJavaHome.js' 返回退出状态 1。

azure - 我可以使用 Azure Migrate 工具将 IBM MQ 从本地迁移到 Azure 云吗

java - 我需要浏览 IBM MQ 并获取特定类型的消息,然后从队列中删除该消息

java - 在向其发布消息之前确保 AMQP 交换存在

java - Spring AMQP - 发布者确认不关闭未使用的 channel

ubuntu - 在 Ubuntu 中安装 RabbitMQ 的简单方法?

ios - APN 状态 '400,' 如何获取有关错误的更多数据?

node.js - 如何使用 Node.js 连接到 mongoDB compass