Questa è probabilmente una domanda comune e ho letto molto su questo argomento, ma non riesco a trovare una soluzione.
Supponiamo di avere un'applicazione enterprise in un server glassfish situato a New York.
Quindi, la mia applicazione cresce molto velocemente e ho bisogno di un altro server con loadbalancer.
Ora la mia applicazione è in esecuzione su due server diversi collegati a un servizio di bilanciamento del carico.
Il problema, penso che sia un problema molto comune, è che agisce come due applicazioni completamente diverse eseguite su server diversi, anche se hanno lo stesso codice. Entrambi i server agiscono in modo completamente diverso.
Questo porta a un problema di concorrenza nel mio database, poiché entrambi i server puntano allo stesso db.
Ad esempio, entrambi i server allo stesso tempo (supponiamo), prova ad aggiornare lo stesso registro nel database, il primo server aggiornerà un campo (come "balance = 10 + 1") e l'altro server lo farà lo stesso, il risultato sarà il saldo = 11 invece 12 perché entrambi hanno ottenuto il valore originale allo stesso tempo.
Che cosa consiglia per questo problema ?, stiamo usando un'istanza del server Payara e apparentemente payara ha un'integrazione di nocciola che può essere un indizio.