我正在尝试用 ActiveMQ 替换一些定制的消息队列,我需要从 Perl 与他们(很多)交谈。 ActiveMQ 提供了一个 Stomp 接口(interface),而 Perl 有 Net::Stomp,所以这看起来应该没问题,但事实并非如此。
即使我通过 Stomp 发送 BEGIN 命令,使用 SEND 发送的消息也会立即发布,如果我 ABORT 事务,则不会发生任何事情。
我找不到任何明确的答案表明它是不可能的,这是可能的,或者有一些相关的配置。此外,Stomp 似乎不是检查服务器错误响应的好协议(protocol)。
我运气不好?
最佳答案
顺便说一句,询问 Perl/ActiveMQ/Stomp 问题的最佳地点是 ActiveMQ user forum很多 Perl-Stomp 的人都在那里闲逛。
STOMP 交易的诀窍是确保您发送的每条消息或您做出的每条确认都包含交易 ID header 。见transaction handling section of the STOMP protocol .
这样做的原因是,如果您的客户端是多线程的,那么使用 STOMP 您可以同时进行许多事务 - 以及一些非事务操作。
关于perl - 如何将事务与 Stomp 和 ActiveMQ(和 Perl)一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/79482/