1

我在 Windows 7 PC 上运行 Rendezvous。我运行了 Tibco 提供的 C++ 示例代码,实现了一个简单的认证消息发送器 (cmsender.cpp) 和一个认证消息侦听器 (cmlistener.cpp)。

原则上,看起来运行这两个程序的结果是发送者发送 10 条消息,而侦听器应该收到 10 条消息并明确确认每条消息都已收到。但是,输出中的某些内容看起来不正确:

发件人输出:

Publishing 10 certified messages on subject cm.test.subject
Publishing message: {index=1}
Publishing message: {index=2}
Confirmed message with seqno=2
Publishing message: {index=3}
Confirmed message with seqno=3
Publishing message: {index=4}
Confirmed message with seqno=4
Publishing message: {index=5}
Confirmed message with seqno=5
Publishing message: {index=6}
Confirmed message with seqno=6
Publishing message: {index=7}
Confirmed message with seqno=7
Publishing message: {index=8}
Confirmed message with seqno=8
Publishing message: {index=9}
Confirmed message with seqno=9
Publishing message: {index=10}
Last sequence number to be confirmed = 10
Confirmed message with seqno=10 

监听器输出:

Listening on subject: cm.test.subject
Received message: {index=1}
status=Item not found, seqno=0
Received message: {index=2}
status=Success, seqno=2
Confirming message with seqno=2
Received message: {index=3}
status=Success, seqno=3
Confirming message with seqno=3
Received message: {index=4}
status=Success, seqno=4
Confirming message with seqno=4
Received message: {index=5}
status=Success, seqno=5
Confirming message with seqno=5
Received message: {index=6}
status=Success, seqno=6
Confirming message with seqno=6
Received message: {index=7}
status=Success, seqno=7
Confirming message with seqno=7
Received message: {index=8}
status=Success, seqno=8
Confirming message with seqno=8
Received message: {index=9}
status=Success, seqno=9
Confirming message with seqno=9
Received message: {index=10}
status=Success, seqno=10
Confirming message with seqno=10

请注意,在发送方输出中,seqno=1 的消息永远不会被确认。此外,在侦听器输出中,未找到 seqno=0 的消息。(为了排除故障,我稍微修改了 Tibco cmlistener.cpp 示例代码以打印出状态和 seqno 值,但除此之外,代码保持原样。)

使用此 Rendezvous 示例代码的人是否知道这是否是预期的行为?为什么 seqno=1 的消息没有得到确认?为什么听者看不到 seqno=1 的消息?为什么 seqno=0 的消息会导致状态为“未找到项目”?

4

0 回答 0