c - Tibco RV C 客户端停止接收消息

标签 c tibco

我有一个 C 客户端正在监听 Tibco RV(使用 8.4.0)。源非常频繁地在 PREFIX1.* 和 PREFIX2.* 上发出消息(每秒可能多次)。

我有六个线程,每个线程监听一个特定的后缀,例如 PREFIX1.SUFFIX_A 和 PREFIX2.SUFFIX_A。因此每个线程都有一个监听器和自己的用于这两个消息的队列。我的队列大小限制为 1000,如果达到该限制,则会删除最旧的 200 个(但在繁忙时间队列中的数量永远不会超过 40 个)。

正常运行几个小时后,每天程序都会突然停止接收数据。源继续发布,但我不再从任何队列调度事件。我不明白是什么导致了这种情况(除了删除监听器之外)。

什么可能导致监听停止?或者,考虑到系统频率很高,如何对此进行调查?我可以通过 C 接口(interface)判断监听器是否仍然处于事件状态吗?我在 API 中看不到任何相关信息。

感谢您的帮助, -戴夫

最佳答案

看起来问题是机器只安装了部分 RV。特别是,我们为该机器提供的软件包中没有 rv 守护程序。实际上,我有点困惑在重新阅读文档后我们是如何设法获取网络数据的,但似乎没有守护进程,我们可以实现网络,直到出现一个小网络问题,然后什么也没有;使用守护进程我们可以从网络错误中恢复。

因此,这种情况的修复方法只是安装完整的软件包并确保守护进程持续运行。现在问题似乎已经消失了。

关于c - Tibco RV C 客户端停止接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48399432/

相关文章:

c - 如何释放我的单链表程序?

java - 从 natted ip 连接到 Tibco 队列失败

java - 使用 XA 事务时通过 Spring Integration 和 WebSphere 有效利用消费者

c - 当我运行它时,此代码不执行任何操作。为什么?

c - C 中是否有任何机制可以从用户那里获取密码,就像我们在 JAVA 中作为密码字段一样

c - 使用动态数组调整循环队列的大小

c - 使用 fread 通过 UDP 发送数据的问题

xpath - TIBCO设计器中的“text()= 0”是什么意思?

datatable - Spotfire - 如何对数据表列中唯一的未过滤值进行属性控制

c# - 我只有 Tibco.EMS.dll,我还需要什么?