3

我正在尝试使用 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中所述,但没有运气。

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

4

1 回答 1

2

当前版本的 ActiveMQ KahaDB 紧密相关。TempStore 使用一个分页列表,该列表也使用 KahaDB。最简单的方法是只包含库。

于 2013-01-16T17:01:57.907 回答