如何使用 Tibco 认证消息模式?WebsphereMQ 是否提供相同的功能?JMS 规范是否定义了此功能?
2 回答
The equivalent of TIBCO RVCM in the JMS/EMS world is 'PERSISTENT' messaging to a durable subscription, more specifcially: use publish(..,DeliverMode.PERSISTENT,..) on the publisher and Session.createDurableSubscriber(..) on the consuming side.
That way you will ensure that every message published to this topic will end up at the subscriber, even if the subscriber is down for a while and that all messages are stored on disk before delivery, so it will survived tibemsd downtimes.
But be careful: unlike RVCM, where messages were stored on the publisher, with EMS messages are stored on the daemon (tibemsd), so one subscriber that is not picking up messages will let the memory and disk of the tibemsd grow and grow. Make sure you configure max_msg_memory and msg_swapping and TEST this !
with RVCM one rouge subscriber might influence only the publishers that are actually publishing to it, with EMS one rouge subscriber can influence memory and performance of the whole system.
我猜您正在寻找一种提供保证交付的消息传输。例如,如果消息的收件人不可用,当收件人再次在线时,消息将被传递?
TIBCO Rendezvous 有一种称为 Rendezvous Certified Messaging (RVCM) 的模式,该模式将消息存储在磁盘上,直到所有收件人都确认为止。TIBCO EMS 和 Websphere MQ 都允许配置具有类似功能的持久目标。有关如何配置和使用这些的详细信息,请参阅任一供应商针对您的特定语言提供的文档。
JMS 是一个规范而不是上述的实现,它指出当消息被标记为持久性时,JMS 提供者必须“特别注意确保消息不会由于 JMS 提供者故障而在传输过程中丢失”。请注意,可以使用 JMS API 访问 TIBCO EMS 和 Websphere MQ。