Hide Forgot
++ This bug is a clone of bug 778979 ++ Date of First Response: 2009-09-04 11:29:45 Help Desk Ticket Reference: https://enterprise.redhat.com/issue-tracker/314948 project_key: SOA A cluster-safe 2nd level cache provider should be used instead of the HashtableCashProvider
TSS article describing how to switch to JBoss Cache. http://www.theserverside.com/tt/articles/article.tss?l=WorkflowEngineJBossCluster
Just thought I'd put Trev's answer in. "That depends on the 4.3 schedule. However it's a customer request so it stands a pretty good chance. "
Link: Added: This issue incorporates JBPM-2916
=== The result of grep "CacheProvider" in jars shipped with EAP -------------- ./deploy/ejb3.deployer/jboss-ejb3.jar org/jboss/ejb3/entity/OptimisticTreeCacheProviderHook.class org/jboss/ejb3/entity/TreeCacheProviderHook.class ./lib/hibernate3.jar org/hibernate/cache/AbstractJndiBoundCacheProvider.class org/hibernate/cache/CacheProvider.class org/hibernate/cache/EhCacheProvider.class org/hibernate/cache/HashtableCacheProvider.class org/hibernate/cache/JndiBoundTreeCacheProvider.class org/hibernate/cache/NoCacheProvider.class org/hibernate/cache/OSCacheProvider.class org/hibernate/cache/OptimisticTreeCacheProvider$TransactionManagerLookupAdaptor.class org/hibernate/cache/OptimisticTreeCacheProvider.class org/hibernate/cache/SwarmCacheProvider.class org/hibernate/cache/TreeCacheProvider$TransactionManagerLookupAdaptor.class org/hibernate/cache/TreeCacheProvider.class ./lib/jboss-hibernate.jar org/jboss/hibernate/cache/DeployedTreeCacheProvider.class --------------- === The result of grep "CacheProvider" in hibernate-jbc-cacheprovider-1.0.1.GA.jar --------------- ./hibernate-jbc-cacheprovider-1.0.1.GA.jar org/jboss/hibernate/jbc/cacheprovider/JndiBoundTreeCacheProvider.class org/jboss/hibernate/jbc/cacheprovider/JmxBoundTreeCacheProvider.class org/jboss/hibernate/jbc/cacheprovider/TreeCacheProvider.class org/jboss/hibernate/jbc/cacheprovider/TreeCacheProvider$TransactionManagerLookupAdaptor.class org/jboss/hibernate/jbc/cacheprovider/OptimisticJmxBoundTreeCacheProvider.class org/jboss/hibernate/jbc/cacheprovider/OptimisticJndiBoundTreeCacheProvider.class org/jboss/hibernate/jbc/cacheprovider/OptimisticTreeCacheProvider.class --------------- http://community.jboss.org/wiki/JBossCacheHibernate http://community.jboss.org/wiki/NewJBossCache14xBasedHibernate32CacheProvider The new CacheProviders have performance improvement and (Optimistic)JmxBoundTreeCacheProvider is easier to configure. Of course, if we support them, SOA-P should include hibernate-jbc-cacheprovider-1.0.1.GA.jar.
One consideration in http://www.theserverside.com/tt/articles/article.tss?l=WorkflowEngineJBossCluster is <attribute name="CacheMode">REPL_ASYNC</attribute> REPL_ASYNC may lose data integrity --- INVALIDATION_SYNC is the best option for entity cache, isn't it?
How about configuring JBossCache with <attribute name="CacheMode">LOCAL</attribute> for 'default' configuration of the SOA-P (not only for 'all' and 'production')? EhCache may be ok. HashtableCacheProvider would cause problem even in non-cluster environment as its cache entries don't expire.
I've made good progress in the project issue JBPM-2916. The JBoss Cache configuration I checked into the jBPM codebase is based on the recommendation from the hibernate-jbc-cacheprovider project. http://anonsvn.jboss.org/repos/jbossas/projects/cluster/hibernate-jbc-cacheprovider/trunk/src/test/java/org/jboss/hibernate/jbc/cacheprovider/functional/optimistic-treecache.xml This configuration has an eviction policy; it should remedy the OOMEs. It is set for LOCAL cache mode as well. Oddly enough the comments state that INVALIDATION_ASYNC is recommended for use with clustered caches. Makes me wonder whether the data integrity issues have been resolved. http://anonsvn.jboss.org/repos/jbpm/jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/service/jboss-service.xml The selected cache provider is JmxBoundTreeCacheProvider. The plain TreeCacheProvider (from package org.jboss.hibernate.jbc.cacheprovider) is for standalone cache instances, whereas JndiBoundTreeCacheProvider is for JNDI-bound caches. Subclasses named like Optimistic*TreeCacheProvider are deprecated. http://anonsvn.jboss.org/repos/jbpm/jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/hibernate.common.xml The jBPM 3 distribution script uncomments the "Data source", "JTA transaction" and "Clustered cache" sections of the above configuration and comments out the "JDBC connection" and "Memory cache" sections. The "nonstrict-read-write" cache usage is replaced with "transactional". Additionally the installer bundles the hibernate-jbc-cacheprovider library. These changes to the standalone codebase need to be incorporated into the platform as part of SOA-1406.
Configured jBPM to employ JBoss Cache 1.4 with Hibernate 3.2 on JBoss AS 4.x and JBoss Cache 2 with Hibernate 3.3 on JBoss AS 5.x. The IzPack installer writes one configuration or the other depending on the selected JBoss AS version. Project issue JBPM-2916 resolved.
Link: Added: This issue is related to SOA-2365
Writer: Added: dlesage
Release Notes Docs Status: Added: Documented as Resolved Issue
Release Notes Docs Status: Removed: Documented as Resolved Issue Added: Not Yet Documented Labels: Removed: rn-dlesage rn-done-resolved Added: rn-dlesage
Writer: Removed: dlesage Added: Darrin Release Notes Text: Added: JBoss Cache is now used in the cluster configuration of jBPM.
Release Notes Docs Status: Removed: Not Yet Documented Added: Documented as Resolved Issue
Link: Added: This issue Cloned to SOA-3640