0

Hibernate 2nd を使用する Web アプリケーションをセットアップしました。http://ehcache.org/documentation/distributed_caching_with_rmi.htmlの指示に従ってキャッシュと Ehcache をレベルアップします。

Web アプリケーションは、自動ピア検出を使用して、異なるネットワーク ノードの 2 つの異なる Tomcat インスタンスにデプロイされます。どちらの Tomcat にもまったく同じ WAR がデプロイされています。

WEB-INF/lib フォルダーと WEB-INF/classes フォルダーは同じで、キャッシュされたエンティティ クラスには serialVersionUID フィールドがありますが、Tomcat の security.policy をオーバーライドし、リモート クラスの読み込み用にセキュリティ マネージャーを有効にする必要がありました。

分散キャッシュは正常に動作しているようですが、すべての同期イベントで、ngrep でスニッフィングすると、この形式のメッセージが 3 つまたは 4 つ表示されます。

T 2011/06/14 10:00:52.304760 192.168.2.114:47000 -> 192.168.2.112:37795 [A]
Q....w....V....0...&..sr..java.util.ArrayListx.....a....I..sizepxp....w.....sr..org.hibernate.cache.CacheKey.......m...I..hashCodeL..entityModet..Lorg/hibernate/EntityMode
  ;L..entityOrRoleNamet..Ljava/lang/String;L..keyt..Ljava/io/Serializable;L..typet..Lorg/hibernate/type/Type;t.rfile:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/clas
  ses/ file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/activation-1.1.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/antlr-2.7.7.jar file:/mnt
  /hgfs/cool/webroot/default/webapps/ROOT/WEB-INF/lib/aopalliance-1.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/asm-1.5.3.jar file:/path/to/apps_/webr
  oot/default/webapps/ROOT/WEB-INF/lib/asm-attrs-1.5.3.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/aspectjweaver-1.6.8.jar file:/path/to/apps_/webroot/d
  efault/webapps/ROOT/WEB-INF/lib/backport-util-concurrent-3.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/cglib-2.1_3.jar file:/path/to/apps_/webroot/d
  efault/webapps/ROOT/WEB-INF/lib/commons-beanutils-1.8.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/commons-chain-1.2.jar file:/path/to/apps_/webroot/

これらのフレームははるかに長く、基本的に WAR WEB-INF/lib 内のすべての JAR ファイルをリストします。これにより、ネットワークの帯域幅が大量に浪費されています。

誰かが私が間違っているかもしれないことに光を当てることができますか? 両方の Web アプリケーションが同じクラスにアクセスできるため、リモート クラスをロードする必要はないと思いますが、それなしでは動作させることができませんでした。どちらも同じシリアル バージョン フィールドを持つ同じ JAR を持っていますが。私は java.rmi.codebase プロパティを設定しようとしましたが、私が読んだほとんどの例はアプレットとブラウザ内 JVM に関連しているため、どの値を設定すればよいかよくわかりません。

合理的な回避策は、キャッシュ クラスタ内のすべての同期イベント メッセージを肥大化させている迷惑な JAR ファイルのリストを取り除くことです。

前もって感謝します、

YJ

4

0 に答える 0