2013-08-30 9 views
5

Sto pianificando di creare un'applicazione desktop che utilizzi Hibernate e MySQL come origine dati. Mi piacerebbe eseguire l'applicazione desktop su più macchine ma voglio che tutti leggano/scrivano nello stesso database MySQL. È possibile? La mia preoccupazione riguarda il problema della concorrenza quando due applicazioni stanno tentando di accedere/modificare le stesse informazioni. Esiste una soluzione alternativa per più applicazioni ORM per la sincronizzazione sincrona dei database in tempo reale (se non è consentito un singolo database)?Collegare due o più applicazioni allo stesso database utilizzando Hibernate

C'erano alcune domande simili a mio sullo stackoverflow ma le loro risposte non mi soddisfano.

+0

: S che la concorrenza appartiene a gestire il motore mysql .. non la vostra applicazione. Il dbms lo farà per te – nachokk

+0

Devi assicurarti di avere MySQL configurato per questo, però. Le impostazioni predefinite (che danno la sua prestazione presumibilmente eccezionale) non sono sicure dal punto di vista delle transazioni. – chrylis

risposta

6

È possibile avere più app basate sull'ibernazione che parlano con lo stesso database. Per la maggior parte, è più o meno lo stesso che eseguire più thread che parlano allo stesso database.

Il problema più comune che è probabile che si verifichi si verifica se la configurazione di sospensione utilizza una cache di secondo livello. Quando hibernate è configurato con una cache di secondo livello, si presuppone che la cache sia coerente con il database sottostante. Quando una singola applicazione si collega al database, la cache di secondo livello può esistere nella RAM locale del server dell'app e tutto è buono.

Se si dispone di più server (se sono in esecuzione la stessa applicazione o diversi), è necessario disporre di un'unica cache di secondo livello condivisa da tutti i server. O non è necessario utilizzare una cache di secondo livello.

Sono disponibili diverse soluzioni di cache distribuita per la cache di secondo livello di Hibernate - google ti aiuterà a ricercare le varie opzioni se decidi di seguire questa strada.

Lo stesso argomento si applica anche alla cache di query.

Problemi correlati