2

ehcache を使用してみましたが、うまくいきました。そして、ehcache RMI を使用して分散キャッシュを実装しようとしています。URL に記載されている手順に従いました: http://ehcache.org/documentation/distributed_caching_with_rmi.html?cf03800515=21D4D871!NTAxODEzNDE0OmNvcnByYWRpdXNzc286vsRypkVtSPb7t3MnL22gFQ==#

しかし、分散キャッシュが機能していることはわかりませんでした...

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//<remotemachineip>:<i want to know what port id should be given here>/deviceCache1"/>

<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=<localmachineip>,port=<i want to know what port id should be given here>,
socketTimeoutMillis=120000"/>

ポート番号を指定し、2 台のマシンでスタンドアロンの Java コードを使用しています。まず、データを「deviceCache1」に入れる友人のマシンでメイン プログラムを実行し、メイン プログラムでそのキャッシュにアクセスしようとします。しかし、2台のマシン間で接続が発生していません。

ばかげているように聞こえるかもしれませんが、キャッシングに関して知っておく必要があることはほとんどありません。誰かが私の疑問を明確にして助けてください。私の質問は次のとおりです。 1. 両方のマシンの ehcache.xml でどのポート ID を指定する必要がありますか? 2. rmi ポートを使用するには、Windows サービスを有効にする必要がありますか? 3. 2 台のマシンを接続するために他のコードを追加する必要はありますか?

至急助けてください。ありがとう

4

2 に答える 2

3

コメントのサイズ制限のため、これがあなたの質問に答えます

サーバー1の構成は次のようになります

<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
    properties="hostName=localhost, port=40001,socketTimeoutMillis=2000"/>

server2 の構成は次のようになります

<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
    properties="hostName=localhost, port=40002,socketTimeoutMillis=2000"/>

問題が解決しない場合は、ehcache.xml を貼り付けます。それがあなたの質問に答えるなら、親切に答えを受け入れてください。

于 2011-02-04T17:49:40.250 に答える
0

また、cacheEventListenerFactory をキャッシュに追加する必要があります (複製する必要があります)。

memoryStoreEvictionPolicy="LFU" diskPersistent="true" timeToLiveSeconds
="86400" maxElementsOnDisk="1000">

任意のポートを指定できます(システムで使用されていない

于 2011-02-03T23:50:27.567 に答える