如何配置Spring XD JMS源以使用DefaultMessageListenerContainer?

时间:2016-02-04 00:01:37

标签: spring-xd

为了使JMS主题订阅持久,似乎我需要确保

  1. DefaultMessageListenerContainer(而不是默认值
  2. 使用SimpleMessageListenerContainer)
  3. 流定义包含" durableSubscription = true acknowledge = transacted subscriptionName = xxxx pubSub = true"
  4. 我成功启用了' dmlc'通过在xd-singlenode.bat中指定spring.profiles.active但是有更好的方法,比如使用属性或yml吗?

    XD-singlenode.bat

      

    设置SPRING_XD_OPTS = -D spring.profiles.active = singlenode,dmlc   -Dspring.application.name = singlenode -Dlogging.config =%XD_CONFIG_LOCATION%/ xd-singlenode-logback.groovy -Dxd.home =%XD_HOME%

1 个答案:

答案 0 :(得分:2)

根据我们提供的JmsSourceModuleOptionsMetadata源代码:

public String[] profilesToActivate() {
    if ("transacted".equals(this.acknowledge)) {
        return new String[] { "dmlc" };
    }
    else {
        return new String[] { "smlc" };
    }
}

所以,看起来你的acknowledge=transacted足以继续

container-class="org.springframework.jms.listener.DefaultMessageListenerContainer"

在JMS来源中。