GARANTIZAR QUE LOS DATOS QUEDEN EN LA BASE DE DATOS EN UNA PERDIDA DEL CANAL DE COMUNICACION

tenemos los siguiente puntos donde viaja la informacion:

1)obtengo una lista ciudades de un ws que consumo, segun la ciuda que se escoja bota unos numeros que corresponde los barrios de la ciudad y segun el barrio selecciona una casa de ese barrio, con esa selecion arroja un precio de impuestos a pagar... y se habilita el boton imprimir cuando se de en el boton de imprimir pasa lo siguinte:

2)se guarda en nuestra base de datos la informacion en un estado pendiente!
3)una vez que este es nuestra base de datos la info se guarda una informacion en la base de datos que maneja prestadora de servicio a traves de su WS

4) cuando se guarda alla en la empresa prestadora de servicio del WS ellos generan un codigo de de pago y ese numero que me llega devuelta lo inserto en mi base de datos con un update y asi el ticket de estado pendiente pasa hacer ticket Impreso.

mis dudas son los multiples posibles caminos donde puede tener una perdida de comunicacion:

por ejemplo que pasa si la empresa prestadora de servicio me responde correctamente pero antes que llegue la informacion a mi red se pierde por un posible fallo de las empresas prestadores de servicio de internet.

si pasa eso mi ticket en la base de datos queda en estado pendiente y no cambia a estado Impreso.

tambien se puede presentar que me llegue respuesta del ws pero cuando voy el estado en la base de datos mi red falle.

ustedes muchahos que son experto ya programando ambientes de este estilo... que hay que tener en cuenta a la hora de programar con java , si el canal de comunicacion es por sockets que timeout es el mas optimo por ejemplo..son cosas que aunque las estoy leyendo no me queda claro como validar todos esos posibles perdidad de comunicacion.

para que me entiendan un poco mas:

@empresa inpuestos(ellos nos dan un jar en java para consumir el web service via VPN) <------------------------------------------->Punto de pago1...N ---------------

los puntos de pago son 400.