0

我正在使用带有 JBOSS MQ 的 Spring JmsTemplate。我是否需要在我的 jmsTemplate 配置文件中使用“sessionTransacted”属性?如果我不专门配置它,它的默认值是什么?

4

1 回答 1

0

你可以有你的配置是这样的:

   <!-- this is the Message Driven POJO (MDP) -->
<bean id="messageListener" class="jmsexample.ExampleListener" />

<!-- and this is the message listener container -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="destination"/>
    <property name="messageListener" ref="messageListener" />
    <property name="sessionTransacted" value="true" />
   <property name="concurrentConsumers" value="5" />
</bean>

您的 javax.jms.MessageListener 实现应该被结构化,以便重新抛出异常以通知失败:

  public void onMessage(final Message message) {

        LOGGER.debug("MessageReceiver::onMessage started");
        try {
          //do you service related operations here 
        } catch (Exception ex) {
            LOGGER.error("Error while performing popration", ex);

            throw new RuntimeException("Exception in procesing message");
        }
        LOGGER.debug("MessageReceiver::onMessage completed");

    }
于 2015-07-26T02:58:18.087 回答