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