Я настроил веб-приложение, которое использует 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