Hi Scott,
demanding people to configure a new cache for each application is very
tricky because of ISPN-658, unless you're referring to creating a
whole new instance of Infinispan, with a dedicated new CacheManager
and either starting a new JGroups channel or using the JGroups
multiplexer Paul had written. In case of the multiplexer I'm not sure
if the channel identifiers could be assigned dynamically according to
application deployments and at the same time be consistent with the
identifier numbers chosen on other application server instances, where
different applications might be deployed or in different order, so my
guess is that people would need to deal with additional JGroups
configurations and handle the burden of extra network ports to be
configured and managed.
Using a rich key containing also the PU and application name seems the
best option to me, and I wouldn't worry too much about the additional
payload as that needs to be transferred anyway: I don't see how the
receiving side could route the command to the proper application
otherwise.
I think it would be nice - if possible - to not change the
regionfactory contract but in some way wrap the keys normally
produced, to keep it simple and avoid the payload for those cases it's
not deployed in AS7.
Sanne
2011/8/16 Scott Marlow <smarlow(a)redhat.com>:
I'm looking at o.h.c.i.InfinispanRegionFactory and wondering how
best to
configure the 2lc for AS 7.1. After a recent forum discussion and
opening AS7-1544, I need to make some corrections to properly
accommodate multiple JPA persistence units sharing the same underlying
cache definition or having their own.
Currently, with AS 7.0/7.0.1, I think each application should have its
own Infinispan cache definition. In theory, the same cache definition
could be shared if entity class names are unique across all persistence
units (within apps and across different applications). This can be
accommodated currently by adding additional Infinispan configuration
entries to the AS7 standalone.xml (or domain.xml).
One question that I have, is could we add an additional key for
identifying the 2lc cache. The additional key that I have at the time
of creating the container managed entity manager, is the "application
name scoped persistence unit name" (includes the PU name and the
application/containing jar name). Perhaps that could be passed into
InfinispanRegionFactory via a property representing a unique way to
refer to all 2lc entries for a specific applications persistence unit
definition. I'm not sure how desirable it would be to further qualify
the cache entries with this additional information (especially if it
increases the payload transferred during replication).
I think the alternative would be to have each application, configure
their own cache definition (either to share with all applications PU or
create a separate definition per PU). This might be close to what I
already described as a workaround in the
http://community.jboss.org/message/620903 forum post.
What do you think?
Scott
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev