2009-04-05 14 views
5

Llamo a un bean sesión sin estado remoto desde una aplicación J2SE y me gustaría guardar en la memoria caché la referencia al bean de sesión para reducir el costo de la búsqueda. ¿Esta bien?¿Se pueden guardar en memoria caché las referencias remotas de beans de sesión sin estado en EJB3?

En EJB2, el patrón ServiceLocator se usaba comúnmente para almacenar en caché las búsquedas en recursos remotos, pero EJB3 no tiene objetos EJB3 Home (que generalmente se almacenan en caché) y Remote.

Buscando en Google, una respuesta común a esto es usar la inyección EJB3, pero como estoy haciendo una llamada a un servidor EJB remoto desde un cliente J2SE, no puedo usar la inyección.

Respuesta

2

Sí, se pueden almacenar en caché. Pero no sé si se define el comportamiento de lo que sucederá si tiene una referencia en caché y el servidor se reinicia debajo de ella. Puede probar ese escenario, pero el comportamiento puede variar con el contenedor.

1

Si el servidor desaparece, sus referencias dejan de ser válidas.

En cuanto al almacenamiento en caché durante el ciclo de vida normal, esto debería estar bien. Lo he hecho durante años, tanto en EJB2 como en EJB3, y nunca tuve un problema. En general, solo tengo una clase estática de 'LookupServices' que solo busca la casa, o devuelve la existente, si ya está allí, y la almacena en un mapa.

Cuestiones relacionadas