camel 2.18.1 と camel-ehcache コンポーネントを使用して単純なキャッシュを構築しています。キャッシュのセットアップは正常に機能していますが、ehcache 3.1.2 を使用して mbeans を登録するのが難しいことがわかりました (これはキャメル経由で取り込まれます)。
ドキュメントを読む - ManagementService を使用して mbeans を登録する標準的な方法が API で利用できなくなったため、3.x でサポートを有効にする方法が明確ではありません。
ドキュメンテーションは、純粋な ehcache 実装と JSR-107 キャッシュ実装を少し混乱させます。
JSR-107 JCache 実装には JMX サポートをオンにするオプションがありますが、xml 構成を接続してキャッシュを開始すると、キャッシュの開始時に例外がスローされるように見えます。
Caused by: java.lang.IllegalArgumentException: Couldn't resolve Service org.ehcache.jsr107.config.Jsr107Service
参照用の私の xml 構成は次のとおりです。 ehcache 3.x の JMX サポートを有効にする方法と、どのような追加の依存関係が必要になるかについてのポインタはありますか?
<ehcache:config
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:ehcache="http://www.ehcache.org/v3"
xmlns:jcache="http://www.ehcache.org/v3/jsr107"
xsi:schemaLocation="
http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd
http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd">
<ehcache:service>
<jcache:defaults jsr-107-compliant-atomics="true" enable-management="true" enable-statistics="true">
<jcache:cache name="my-cache" template="myDefaultTemplate"/>
</jcache:defaults>
</ehcache:service>
<ehcache:persistence directory="/var/cache"/>
<ehcache:cache alias="cache-test">
<!--
OPTIONAL, defaults to no expiry
Entries to the Cache can be made to expire after a given time
-->
<ehcache:expiry>
<!--
time to idle, the maximum time for an entry to remain untouched
Entries to the Cache can be made to expire after a given time
other options are:
* <ttl>, time to live;
* <class>, for a custom Expiry implementation; or
* <none>, for no expiry
-->
<ehcache:tti unit="minutes">2</ehcache:tti>
</ehcache:expiry>
<!--
The maximal number of entries to be held in the Cache, prior to eviction starting
-->
<ehcache:heap unit="entries">200</ehcache:heap>
<!--
OPTIONAL
Any further elements in another namespace
-->
<jcache:mbeans enable-statistics="true" enable-management="true" />
</ehcache:cache>
<!--
OPTIONAL
A <cache-template> defines a named template that can be used be <cache> definitions in this same file
They have all the same property as the <cache> elements above
-->
<ehcache:cache-template name="myDefaultTemplate">
<ehcache:expiry>
<ehcache:none/>
</ehcache:expiry>
<!--
OPTIONAL
Any further elements in another namespace
-->
</ehcache:cache-template>
</ehcache:config>