Ho un programma java, voglio inserire i dati in oracle db e solr allo stesso tempo. Come posso assicurarmi che i dati nel db e nel solr siano coerenti?
Non sapendo nulla di Solr, mi presumo che non sia transazionale.
In tal caso, avviare una transazione nel database Oracle e apportare le modifiche. Quindi apportare le modifiche corrispondenti in Solr. Se le modifiche Solr hanno esito positivo, eseguire il commit della transazione Oracle; in caso contrario, arrotolalo indietro.
Non è perfetto in alcun modo ma stai usando la forza transazionale di un elemento per sopperire alle carenze dell'altro.
Dovresti aggiornarne uno in una transazione e, mentre la transazione è ancora attiva, aggiornare l'altra. Se entrambi riescono, allora commetti la transazione. Se il primo o il secondo falliscono, ripristina la transazione.
Leggi altre domande sui tag design java architecture