Domanda

che io chiamo un bean di sessione remota senza stato da un'applicazione J2SE e vorrei mettere in cache il riferimento al bean di sessione al fine di ridurre il costo della ricerca. Va bene?

Nel EJB2 modello ServiceLocator era comunemente usato per ricerche nella cache a risorse remote, ma EJB3 non ha separato EJB casa (che erano di solito cache) e gli oggetti remoti.

Googling intorno, una risposta comune a questo è quello di utilizzare l'iniezione EJB3, ma dal momento che sto facendo una chiamata a un server EJB remota da un client J2SE, non posso utilizzare l'iniezione.

È stato utile?

Soluzione

Sì, possono essere memorizzate nella cache. Ma io non so se il comportamento è definito quello che accadrà si dovrebbe avere un riferimento nella cache e il server viene riavviato sotto di esso. È possibile verificare tale scenario, ma il comportamento può variare con il contenitore.

Altri suggerimenti

Se il server va via, i riferimenti diventano non validi.

Per quanto riguarda la memorizzazione nella cache durante il ciclo di vita normale, questo dovrebbe andare bene. Ho fatto questo per anni, sia in EJB2 e EJB3, e mai avuto un problema. In generale ho solo una classe statica 'LookupServices' che sembra proprio la casa, o torna quello esistente se è già lì -. E lo memorizza in una mappa

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top