即使使用JDBC持久性,ActiveMQ是否总是需要KahaDB库?

时间:2013-01-16 16:14:42

标签: activemq

我正在尝试使用JDBC持久性设置以下代理:

<amq:broker id="activeMQBroker" brokerName="activeMQBroker" useJmx="false" persistent="true">
    <amq:transportConnectors>
        <amq:transportConnector name="vm" uri="vm://activeMQBroker" />
    </amq:transportConnectors>
    <amq:persistenceAdapter>
        <amq:jdbcPersistenceAdapter dataSource="#dataSource" />
    </amq:persistenceAdapter>
</amq:broker>

启动时,我得到:

java.lang.NoClassDefFoundError: org/apache/kahadb/page/Transaction$Closure

如果我将KahaDB JAR添加到类路径中,一切都很好,并且创建了ActiveMQ数据库表(在Postgres中)。但是,我宁愿没有这种额外的依赖,因为我没有使用它。

任何想法为什么ActiveMQ仍在寻找KahaDB,即使我正在使用JDBC?我尝试设置schedulerSupport="false",如this question中所述,但没有运气。

P.S。有足够代表的人可以创建一个“KahaDB”标签吗?

1 个答案:

答案 0 :(得分:2)

当前版本的ActiveMQ非常难以与KahaDB 绑定 。 TempStore使用一个分页列表,下面也使用了KahaDB。最简单的只包括库。