0

アプリケーションを から に移行しActiveMQ 5.5.1ましたActiveMQ 5.8.0activemq.xml私のアプリケーションには、次のようにファイルに永続化構成があります。

    <persistenceAdapter>
     <kahaPersistenceAdapter directory="${activemq.base}/data/msg" maxDataFileLength="20 Mb"/>
    </persistenceAdapter>

しかし、activemq を開始すると、wrapper.logファイルで次の例外が発生します。

INFO   | jvm 1    | 2013/02/24 10:43:28 | Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at java.net.URLClassLoader$1.run(Unknown Source)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at java.security.AccessController.doPrivileged(Native Method)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at java.net.URLClassLoader.findClass(Unknown Source)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at java.lang.ClassLoader.loadClass(Unknown Source)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at java.lang.ClassLoader.loadClass(Unknown Source)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.loadClass(XBeanQNameHelper.java:107)
INFO   | jvm 1    | 2013/02/24 10:43:28 |   at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:72)

注: アプリケーションのキューにメッセージが保存されてactivemq 5.5.1おり、永続化構成を変更できません。

4

2 に答える 2

4

v5.8.0 では、ブローカーを実行するためだけにプルする必要がある jar の量を縮小できるように、依存関係が少し分割されています。Kaha アダプターは activemq-amq-store コンポーネント内にあるため、使用する場合はそれをプロジェクトに取り込む必要があります。

このアダプターは非推奨であり、v5.9.0 でなくなるため、サポートされているアダプターの 1 つに移動することをお勧めします。現在、デフォルトのアダプターは KahaDB であり、activemq-kahadb-store にあります。また、より高速なインデックスを持つ LevelDB アダプターを試すこともできますが、まだ新しく、問題が発生する可能性があります。

古いストアから新しい KahaDB ストアに簡単に移動できる移行ツールはありませんが、KahaDB で新しいブローカーをセットアップし、ネットワーク コネクタを使用して古いブローカーに接続することでこれを行うことができます。mew ブローカーはすべてのメッセージを排出し、新しいブローカーが古いブローカーの古いストアにメッセージがある宛先への要求を登録すると、それらを KahaDB ストアに保存する必要があります。

于 2013-02-24T11:48:51.177 に答える
1

activemq-all-5.8.0.jarクラスパスを入れましたか?

非推奨ですKahaPersistenceAdapterが、まだ jar に含まれています。

于 2013-02-24T10:12:20.797 に答える