Я запускаю Rendezvous на ПК с Windows 7. Я запустил пример кода C ++, предоставленного Tibco, реализовав простой сертифицированный отправитель сообщений (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 для распечатки значений status и seqno в целях устранения неполадок, но в остальном код такой, как есть.)
Кто-нибудь, кто работал с этим примером кода Rendezvous, знает, является ли это ожидаемым поведением? Почему сообщение с seqno = 1 не подтверждено? Почему слушатель никогда не видит сообщение с seqno = 1? Почему сообщение с seqno = 0 приводит к состоянию «Элемент не найден»?
Задача ещё не решена.
Других решений пока нет …