ActiveMQ忽略persistent = false

时间:2010-06-17 13:53:36

标签: unit-testing spring activemq

我使用Active MQ进行集成测试我的应用程序。我在spring配置中定义了一个active-mq代理,如下所示:

<amq:broker useJmx="false" 
           persistent="false" 
           deleteAllMessagesOnStartup="true" 
           useShutdownHook="true">

    <amq:transportConnectors>
        <amq:transportConnector uri="tcp://localhost:0"/>
    </amq:transportConnectors>
</amq:broker>

但它似乎忽略了persistent=false,每次运行测试套件时,我都会创建一个名为activemq-data的文件夹

我需要做什么才能使Active MQ不持久?

3 个答案:

答案 0 :(得分:1)

除了添加persistant =“false”之外,解决方案是在activemq.xml中注释掉以下行:

 <persistenceAdapter>
            <kahaDB directory="${activemq.base}/data/kahadb"/>
 </persistenceAdapter>

此外,此时清除您的数据目录并没有受到伤害......

答案 1 :(得分:0)

我会使用ActiveMQ 5.3.2 - 这看起来像是旧版本。 顺便说一句 - 你不需要deleteAllMessagesOnStartup - 因为你不会使用持久性消息存储

欢呼声,

罗布

答案 2 :(得分:0)

即使在评论持久适配器时,它也会创建该目录。但是,如果代理URL中为et broker.persistent=false,则持久性将被禁用。我仍然想知道为什么,在这一点上,这是在5.4.2。