Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 增加jms消息处理的延迟_Hibernate_Activemq_Xa_Atomikos - Fatal编程技术网

Hibernate 增加jms消息处理的延迟

Hibernate 增加jms消息处理的延迟,hibernate,activemq,xa,atomikos,Hibernate,Activemq,Xa,Atomikos,我将atomikos与Hibernate和ActiveMQ一起使用。我的事务涉及将消息提交到DB并发送到队列。然后,jmsreveiver读取消息并调用来自db的get 有些情况下,Atomikos已提交到队列,但hibernate提交仍在进行中,同时从接收方触发get查询。我试图找到是否有方法可以在XA事务中指定提交顺序,但答案似乎是不读取 所以我在想,有没有一种方法可以在消息处理过程中增加一些延迟,以便在提交成功时,消息只在5秒后被阻塞。activemq支持延迟消息,请参阅 你应该做的两件事

我将atomikos与Hibernate和ActiveMQ一起使用。我的事务涉及将消息提交到DB并发送到队列。然后,jmsreveiver读取消息并调用来自db的get

有些情况下,Atomikos已提交到队列,但hibernate提交仍在进行中,同时从接收方触发get查询。我试图找到是否有方法可以在XA事务中指定提交顺序,但答案似乎是不读取


所以我在想,有没有一种方法可以在消息处理过程中增加一些延迟,以便在提交成功时,消息只在5秒后被阻塞。

activemq支持延迟消息,请参阅

你应该做的两件事:

首先是在activemq.conf中添加schedulerSupport

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true">

然后在发送时添加
AMQ\u SCHEDULED\u DELAY
属性


比如
textMessage.setLongProperty(“AMQ\u SCHEDULED\u DELAY”,5000)

是的,这增加了请求的延迟,但我不确定这是否回答了关于引入延迟的问题,这是一个好主意。有没有办法在JBOSS中指定xa参与者的提交顺序?我知道XA没有指定参与者的提交顺序。但是像websphere这样的应用服务器定义了提交顺序,其中jdbc总是在JMS之前提交。是否有任何东西可以帮助排序提交顺序,任何由atomikos或XA或Jboss提供的东西。在我的例子中,它是
message.setLongProperty(“\u AMQ\u SCHED\u DELIVERY”,5000)