如何在Stomp和ActiveMQ(和Perl)中使用事务?

如何在Stomp和ActiveMQ(和Perl)中使用事务?

How do I use transactions with Stomp and ActiveMQ (and Perl)?

我试图用ActiveMQ替换一些定制的消息队列,我需要从Perl与他们(很多)交谈。 ActiveMQ提供了一个Stomp接口,而Perl具有Net :: Stomp,所以看起来应该没问题,但事实并非如此。

即使我通过Stomp发送了BEGIN命令,使用SEND发送的消息也会立即发布,并且即使我中止了事务,也不会发生任何事情。

我找不到任何明确的答案,表明不可能,不可能或存在相关的配置。 而且,Stomp似乎不是检查服务器错误响应的好协议。

我不走运吗?


顺便说一句,问Perl / ActiveMQ / Stomp问题的最佳地点是ActiveMQ用户论坛,因为许多Perl-Stomp人士都在那里闲逛。

STOMP事务的技巧是确保您发送的每条消息或发出的每条确认都包括事务ID头。请参阅STOMP协议的事务处理部分。

原因是,如果您的客户端是多线程的,那么使用STOMP可以同时进行许多事务-以及一些未处理的操作。


您必须将确认包装在事务中。

用伪代码(或伪STOMP)可以是:

  • 开始[TRANSACTION-ID]->发送到服务器
  • MESSAGE [MESSAGE-ID](接收到)<-从服务器接收到
  • ACK [MESSAGE-ID] [TRANSACTION-ID]->发送到服务器
  • COMMIT [TRANSACTION-ID]->发送到服务器

我已经使用PHP驱动程序进行了此工作(在传入框架对象进行确认时,修补中止调用以使用事务ID)。

不幸的是,在重新传递四个消息之后,客户端停止了。至少这发生在我身上。


看看Net :: Stomp :: Receipt。它是Net :: Stomp的子类,可实现Stomp协议中的"退回收据",并允许您确保正确接收消息,否则中止交易。


推荐阅读

    linux命令查看接口?

    linux命令查看接口?,系统,设备,地址,网络,信息,电脑,软件,情况,命令,灵活,lin

    linux命令替换失败?

    linux命令替换失败?,系统,基础知识,工具,代码,数据,情况,数字,命令,文件,内

    linux文件替换命令行?

    linux文件替换命令行?,资料,命令,文件,数据,名称,系统,实时,工作,字符串,批

    linux命令替换的字符?

    linux命令替换的字符?,命令,数据,系统,商业,字符串,文件,内容,方法,批量,字

    linux命令替换空格?

    linux命令替换空格?,工作,资料,工具,文件,空格,命令,源文件,逗号,操作,模式,L

    linux命令行替换所有?

    linux命令行替换所有?,名字,名称,软件,数据,资料,行长,命令,文件,字符串,批

    linux的文件替换命令?

    linux的文件替换命令?,系统,工作,实时,命令,文件,批量,字符串,内容,方法,表

    linux解压命令不替换?

    linux解压命令不替换?,系统,工作,设备,工具,异常,平台,环境,信息,命令,预期,L

    linux命令被替换文件?

    linux命令被替换文件?,系统,文件,命令,批量,工具,电脑,工作,保险,实时,字符

    如何在linux执行命令?

    如何在linux执行命令?,单位,电脑,命令,系统,基础,发行,工具,工作,信息,文件,m

    linuxvi替换命令?

    linuxvi替换命令?,档案,位置,命令,工作,底部,模式,编辑,文件,控制台,字符,lin

    linux替换日志命令?

    linux替换日志命令?,服务,系统,软件,代码,信息,文件,日志,首次,可取,工具,lin

    linux命令替换字符串?

    linux命令替换字符串?,字符串,文件,批量,首次,数据,命令,内容,方法,用字,结

    linux中替换单词命令?

    linux中替换单词命令?,资料,状态,工作,数据,命令,模式,文本,内容,单词,字符

    linux中替换字符命令?

    linux中替换字符命令?,工作,地址,系统,命令,资料,数据,信息,商业,管理,目录,L

    如何在linux命令清屏?

    如何在linux命令清屏?,系统,地址,信息,基础,电脑,命令,名称,集团,产品,管理,

    linux如何在线装命令?

    linux如何在线装命令?,软件,系统,环境,发行,在线,名称,简介,工具,设备,做好,

    linux替换文本命令?

    linux替换文本命令?,信息,系统,命令,内容,文件,文本,字符串,字符集,单词,字

    linux命令替换后门?

    linux命令替换后门?,系统,数据,工具,平台,工作,检测,最新,管理系统,通信,商

    linux替换文本的命令?

    linux替换文本的命令?,系统,地址,工作,信息,命令,标准,数据,内容,文件,字符