Tengo un escenario en el que usamos spring jms para publicar eventos en la cola y actualizar el estado en la base de datos, pero a veces la publicación en la cola final es exitosa, pero la actualización del estado en la base de datos falla, por lo que en este escenario particular, los eventos publicados en la cola deben revertirse como actualización a la base de datos falla, por lo que la publicación en la cola está en otro marco y la actualización en la base de datos es otro marco, por lo que no podemos poner la publicación del evento en la cola y la actualización de la base de datos en el mismo lugar que usamos actualmente JMSTEMPLATE.EXECUTE(new ProducerCallback{}) para publicar en cola.
Soy consciente de que cuando la ejecución llega al final del JMSTEMPLATE.EXECUTE(new ProducerCallback{}) se confirmará, pero la lógica de actualización de mi base de datos está fuera del JMSTEMPLATE.EXECUTE(new ProducerCallback{}) , por lo que quiero controlar la publicación del evento en la cola basado en la inserción exitosa en la base de datos, lo que significa que si la inserción de la respuesta exitosa falla, los eventos publicados en la cola deben revertirse.
¿Puede alguien ayudarme a averiguar cómo lograr este escenario?
Gracias por adelantado.
También debe realizar la actualización de la base de datos dentro del método doInJms() . Si se lanza una excepción, las actualizaciones de JMS se revertirán.