Le transazioni di database sono un concetto familiare.Transazione JMS
try {
...
..
updateDB()
..
...
commit();
} catch error {
rollback();
}
se si verifica un errore, eventuali modifiche apportate da updateDB verranno eliminate.
Desideravo sapere cosa annullerà un rollback della transazione nella coda dei messaggi.
try{
...
...
//EDIT: swapped the order of receive and send
Message m = queue1.receiveMessage(..)
..
..
queue2.sendMessage(..)
..
..
commit();
} catch error {
rollback();
}
specificamente, quale sarà rollback fanno
- annullare l'invio di un messaggio
- non-ricevere il messaggio cioè rimettere il messaggio ricevuto di nuovo la fila
o sono estendendo l'analogia del database tx troppo lontano.
grazie
EDIT: Non sto dicendo l'invio e ricezione operazioni sono correlate. Volevo solo dire che ci sono due operazioni che cambiano lo stato del broker di messaggi: la ricezione eliminerà un messaggio dalla coda che non sarà disponibile per altri consumatori se ce ne fossero.
grazie per i vostri approfondimenti. ma non stavo insinuando che stavo aspettando una risposta del messaggio di invio, volevo solo indicare due cambiamenti di stato. ho aggiunto chiarimenti alla mia domanda e ho scambiato l'ordine di ricezione/invio di messaggi. – mzzzzb