PDA

View Full Version : [JSP JDBC]Transazioni atomiche


swdev
23-02-2005, 21:49
Qualcuno sa come riunire una SELECT che verifichi la presenza di un record, e una INSERT che in caso contrario lo inserisca in un'unica transazione atomica?serve per un sito di prenotazioni online per evitare che due utenti prenotino la stessa risorsa.

kingv
23-02-2005, 22:17
se sono sullo stesso database basta che sull'oggetto Connection chiami:
conn.setAutoCommit(false);
e poi a mano dopo che hai fatto le operazioni di cui hai bisogno chiami commit() o rollback() a seconda che vada tutto bene o meno.


Se i db sono differenti la cosa si complica ma si puo' fare ugualmente.

kingv
23-02-2005, 22:23
ho riletto ora il tuo post, tu non hai bisogno di una maniera di chiamare commit/rollback, come se facessi due insert una dipendente dall'altra, bensė di un meccanismo di locking delle tabelle.
Questo č generalmente dipendente dal db che usi. QUal č?


[EDIT]

forse c'e' anche una maniera indipendente dal db sottostante, dai un occhio al metodo:
Connection.setIsolationLevel()
in particolare con TRANSACTION_REPEATABLE_READ e TRANSACTION_SERIALIZABLE come argomento.