I have created branch
(
https://github.com/zvrablik/tomcatInfinispanSessionManager/tree/classloader)
where only first InfinispanSessionManager create DefaultCacheManager.
All created caches set explicitly class loader to configuration and
DecoratedCache is used to access cache.
See InfinispanSessionManager.initInfinispan method.
my infinispan configuration (all created caches use default settings):
<infinispan xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:5.0
http://www.infinispan.org/schemas/infinispan-config-5.0.xsd"
xmlns="urn:infinispan:config:5.0">
<global>
<transport clusterName="tomcatSession"/>
<globalJmxStatistics enabled="true" allowDuplicateDomains="true"/>
</global>
<!-- use only default cache for all caches created by session manger -->
<!-- to specify custom parameters to one cache create named cache with
name _session_attrContainerName
where ContainerName is name of war application -->
<default>
<jmxStatistics enabled="true"/>
<clustering mode="distribution">
<l1 enabled="false" lifespan="600000"/>
<hash numOwners="2" rehashRpcTimeout="6000"/>
<sync/>
</clustering>
<invocationBatching enabled="true"/>
</default>
</infinispan>
I use tomcat 6.0.29 and Infinispan 5.1.Beta5, java 6 update 26 on
Debian stable 64bit.
I get exception on node which should replicate state sent from another node.
See attached tomcat log.
The missing class is available only through testLB war application classloader.
2. locking and distributed transactions
============================
I use FineGrainedAtomicMap to store session attriubtes. I don't use
any locking nor XA transactions.
Do I have to use locking or XA transactions? I think autocommit mode
could be better in this case
and tomcat doesn't have XA manager by default. I am using distributed
transactions only in relational databases.