2011-01-15 10 views
9

Estoy buscando configurar Hibernate con caché distribuida donde tengo una aplicación que escribe en el DB y otra que lee del DB. ¿Hay alguna manera fácil de notificar a la aplicación de lectura cuando la que está escribiendo ha escrito a través de Hibernate? La memoria caché distribuida invalidará la memoria caché, pero necesito la aplicación de lectura para saber que se ha realizado un cambio para actualizar sus datos de inmediato.Hibernate Distributed Cache: ¿pueden varias aplicaciones compartir el mismo caché?

Gracias, D

Respuesta

3

usted no va a conseguir este trabajo sin un poco de esfuerzo, creo que, a pesar de todos los componentes están ahí para hacer los bits individuales que necesita.

Específicamente, Hibernate tiene compatibilidad integrada para JBossCache 2 como 2nd-level distributed cache. JBossCache does proporciona una arquitectura de eventos que le permite escuchar los cambios en la memoria caché.

El desafío será unir las dos, y descubrir cómo escuchar los cambios en la configuración de JBossCache que utiliza hibernate. Debería ser posible, solo tendrás que leer un poco.

JBossCache2 es un poco viejo ahora, pero es la última versión que Hibernate admite desde el primer momento. Hay documentación en el sitio web de JBossCache para que v3 funcione con Hibernate, pero eso requiere un trabajo adicional.

Editar: Parece que el desarrollo de JBossCache se está deteniendo a favor de su reemplazo, Infinispan. Hay documentación sobre cómo integrate that with Hibernate.

+0

Gracias por su respuesta pero no estoy seguro de su respuesta. Investigué un poco y creo que necesito simplemente usar un caché de replicación. (EHCache, Infinispan, JBossCache proporcionan implementaciones de caché de replicación que funcionan de la caja con Hibernate). La diferencia entre una caché de replicación y una caché distribuida es que una adición/actualización/eliminación en la caché de replicación actualizará todos los nodos, mientras que en una caché distribuida regular solo invalidará. http://docs.jboss.org/jbosscache/1.4.0/TreeCache/en/html/replication.html –

+0

@DD: No se distraiga demasiado con la terminología, y lo que cree que se replica/distribuye significa. Todas las tecnologías anteriores harán cualquiera de las cosas que mencionas. – skaffman

+0

No estoy seguro de lo que quiere decir. ,, No parece que necesite utilizar una arquitectura de eventos para hacer esto. La replicación de soluciones de caché lo hace de la caja. Entonces, cuando dices que es un desafío unir los dos, ese no parece ser el caso. Suena bastante sencillo, pero aún tengo que intentarlo :-) http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-cache –

Cuestiones relacionadas