2011-01-15 12 views
9

Sto cercando di installare Hibernate con cache distribuita dove ho un'applicazione che scrive sul DB e un'altra che legge dal DB. C'è un modo semplice per notificare l'applicazione di lettura quando la scrittura è stata scritta tramite Hibernate? La cache distribuita invalida la cache, ma ho bisogno dell'applicazione di lettura per sapere che è stata apportata una modifica per aggiornare immediatamente i suoi dati.Hibernate Distributed Cache: più applicazioni possono condividere la stessa cache?

Grazie, D

risposta

3

non avete intenzione di ottenere questo lavoro senza un certo sforzo, credo, anche se tutti i componenti sono lì per fare i singoli bit necessari.

In particolare, Hibernate ha il supporto integrato per JBossCache 2 come 2nd-level distributed cache. JBossCache fa fornisce un'architettura di eventi che consente di ascoltare le modifiche nella cache.

La sfida sarà quella di legare insieme i due e capire come ascoltare le modifiche nella configurazione di JBossCache che utilizza la sospensione. Dovrebbe essere possibile, dovrai solo fare un po 'di lettura.

JBossCache2 è un po 'vecchio ora, ma è l'ultima versione che Hibernate supporta out-of-the-box. C'è una documentazione sul sito web di JBossCache per far funzionare v3 con Hibernate, ma questo richiede un lavoro extra.

Modifica: Sembra che lo sviluppo di JBossCache venga interrotto a favore della sua sostituzione, Infinispan. C'è documentazione su come integrate that with Hibernate.

+0

Grazie per la risposta, ma non sono sicuro della vostra risposta. Ho fatto qualche ricerca e penso di aver bisogno di usare semplicemente una cache di replica. (EHCache, Infinispan, JBossCache forniscono tutte implementazioni di cache di replica che funzionano immediatamente con Hibernate). La differenza tra una cache di replica e una cache distribuita è che un add/update/delete nella cache di replica aggiornerà tutti i nodi, dove, come in una normale cache distratta, invaliderà solo. http://docs.jboss.org/jbosscache/1.4.0/TreeCache/en/html/replication.html –

+0

@DD: Non farti distrarre troppo dalla terminologia e ciò che pensi sia replicato/distribuito. Tutte le tecnologie sopra menzionate faranno tutte le cose che menzioni. – skaffman

+0

Non sei sicuro di cosa intendi. "Non sembra necessario utilizzare un'architettura di eventi per farlo. La replica delle soluzioni cache lo fa immediatamente. Quindi quando si dice che è una sfida per legare i due insieme, questo non sembra essere il caso. Sembra abbastanza semplice, ma devo ancora provarlo :-) http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-cache –

Problemi correlati