Nuestro diseño tiene un jvm que es un jboss/webapp (lectura/escritura) que se utiliza para mantener los datos a través de la hibernación (usando jpa) a la base de datos. El modelo tiene 10-15 clases persistentes con 3-5 niveles de profundidad en las relaciones.¿Cómo mantener la coherencia de la memoria caché de Hibernate con dos aplicaciones Java?
Tenemos entonces un jvm separado que es el servidor que utiliza esta información. Como está funcionando continuamente, solo tenemos una larga sesión de DB (solo lectura).
Actualmente no hay caché intra-jvm involucrado, por lo que manualmente señalamos un jvm desde el otro.
Ahora cuando la aplicación web cambia algunos datos, le indica al servidor que vuelva a cargar los datos modificados. Lo que hemos encontrado es que necesitamos decirle a hibernate que purgue los datos y luego los vuelva a cargar. Simplemente haciendo un fetch/merge con el DB no hace el trabajo, principalmente con respecto a los objetos de varias capas en la jerarquía.
Cualquier idea sobre si hay algo fundamentalmente malo en este diseño o si alguien está haciendo esto y ha tenido más suerte trabajando con hibernate en las recargas.
Gracias, Chris
El uso de la APP, y @PersistenceContext para obtener el EntityManager - pero parece que necesitamos para una @PersistenceUnit EntityManagerFactory y para actualizar los datos, obtenemos un nuevo EntityManager. Suena bien, pero es una forma pesada de actualizar las cosas, pero si eso es lo que hace la gente ... –