Ehcache Distributed RMI Передает список JAR-файлов в WEB-INF / lib при каждой синхронизации - PullRequest
0 голосов
/ 14 июня 2011

Я настроил веб-приложение, которое использует Hibernate 2nd. Уровень кэширования и Ehcache с использованием инструкций в http://ehcache.org/documentation/distributed_caching_with_rmi.html.

Веб-приложение разворачивается в двух разных экземплярах Tomcat в разных сетевых узлах с использованием автоматического обнаружения равноправных узлов. Оба Tomcats имеют одинаковую развернутую WAR.

Хотя папки WEB-INF / lib и WEB-INF / classes одинаковы, а у моих классов кэшированных сущностей есть поле serialVersionUID, мне пришлось переопределить Tomcat security.policy и включить диспетчер безопасности для загрузки удаленных классов.

Похоже, что распределенный кеш работает нормально, но при каждом событии синхронизации я вижу три или четыре сообщения в этом формате, прослушивая ngrep

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/

Эти кадры намного длиннее и, по сути, содержат список всех JAR-файлов в моем WAR WEB-INF / lib. Это тратит много пропускной способности в моей сети.

Кто-нибудь может пролить свет на то, что я могу делать неправильно? Поскольку оба веб-приложения имеют доступ к одним и тем же классам, я не вижу необходимости в загрузке удаленного класса, но я не смог заставить его работать без него. Хотя оба имеют одинаковые JAR с одинаковыми полями последовательной версии. Я попытался установить свойство java.rmi.codebase, но я не совсем уверен, какое значение мне следует установить, так как большинство прочитанных примеров относятся к апплетам и JVM в браузере.

Разумный обходной путь - избавиться от тех надоедливых списков файлов JAR, которые раздувают каждое сообщение о событии синхронизации в кластере кэша.

Заранее спасибо,

YJ

...