如何在视图中打开会话与jms连接/会话一起使用?

时间:2017-01-26 05:47:23

标签: hibernate session grails jms

我们有一个grails web应用程序接受http请求,并使用activemq将处理委托给pub-sub jms。

因为,在将消息发布到目标后返回http请求,是否在发布后立即关闭Open Session In View拦截器令牌?

当订户开始处理来自activemq队列的消息(服务方法是订户在这里)时,整个事务(订户服务方法中有多个事务)将在单个会话中,或者是否打开会话的休眠模板策略单个事务并在提交后关闭它将被使用? 如果是这样,对于单个jms消息处理,将会有多个会话将被打开和关闭?

我一直在摸不着头脑,但我无法解决问题,任何帮助都会有用!

1 个答案:

答案 0 :(得分:0)

好的,你有几个问题。

让我们从第一个开始:

  

...是在发布后立即关闭Open Session In View拦截器令牌吗?

它正常关闭。 HTTP请求结束时。发布JMS消息对此没有影响。

下一步:

  

当订户开始处理来自activemq队列的消息时......整个交易是否会在一个会话中......?

答案是取决于。这取决于您可以使用自己的代码更改默认行为。但是,如果您遵循单个事务服务方法的最常见模式来处理消息,那么将仅使用一个hibernate会话(由JMS插件功能提供)和一个事务(由您的服务方法提供)。事务和休眠会话都将关闭

相关问题