我正在尝试使用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中)。不过,我宁可不要这种额外的依赖关系,因为我没有使用它。

知道为什么即使我使用JDBC,ActiveMQ仍在寻找KahaDB吗?我尝试按照this question中所述设置schedulerSupport="false",但是没有运气。

附言能否请有足够代表的人创建一个“KahaDB”标签?

最佳答案

ActiveMQ的当前版本是,很难将与KahaDB bundle 在一起。 TempStore使用在其下也使用KahaDB的分页列表。仅包含库是最简单的。

关于activemq - 即使使用JDBC持久性,ActiveMQ是否始终需要KahaDB库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14362800/

10-10 15:52