Necesita crear un jar (s) separado con todas las clases (y todas sus dependencias) qué instancias tiene previsto almacenar en caché y luego implementar este jar y ehcache.jar como una biblioteca (dependiendo de qué servidor de aplicaciones utilizar el procedimiento puede ser diferente), en el caso de Tomcat 6 eso significa simplemente copiar los archivos jar a la carpeta lib.
Lo que sucede entonces es que ehcache y sus clases de dominio serán cargadas por el cargador de clases compartido por todas las aplicaciones web, por lo que las instancias se guardarán en la memoria caché.
Las dependencias de las clases de su dominio son importantes, por lo que debería ver si este enfoque es factible en su proyecto. También podría afectar la forma en que reinicia las aplicaciones web.
Además, debe tener en cuenta que la caché y el uso compartido no son necesariamente lo mismo. La memoria caché es una optimización. Si coloca una instancia de objeto en la memoria caché, es posible que se desaloje de inmediato si, por ejemplo, la memoria caché no tiene suficiente espacio de almacenamiento o la configuración de la política de desalojo. Entonces puede ser que tenga que revisar la forma en que planea usar ecache en general.
¿Podría dar más información sobre lo que está tratando de lograr con la memoria caché compartida? – lucas
Quiero usarlo como un bloqueo distribuido. Podría usar una base de datos para indicar que una transacción está en progreso (pero creo que es un antipatrón). Usecase: War1 inicia un tx, lo almacena en caché. Esto evita que el mismo tx se inicie. War2 invalida tx en función de un evento externo. – ashitaka