Como saber que un Web service fue consumido de forma satisfactoria?

Tengo un par de web services hechos con Cxf y ahora se me presento un requerimiento, Quieren saber si el proceso de comunicacion con el cliente fue terminado de forma satisfactoria, alguna idea de por donde le puedo entrar?
Estoy verificando si algun Interceptors me ayuda a saber que el cliente recibio bien la informacion es esto posible?
Saludos cordiales.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

no veo cómo

Hay muchas configuraciones de red en las que simplemente no es posible saber qué pasó del otro lado. Al momento en que tu WS ya devuelve la respuesta pueden pasar varias cosas; finalmente tu WS escribe a un stream de un socket, pero en el camino pueden pasar varias cosas:

- Tu WS está en un contenedor (jboss, tomcat, etc) y entre eso y el cliente hay un web server (apache httpd). Tu WS envía la respuesta completa al httpd pero por alguna razón de ahí al cliente ya no llega completa.
- Hay un proxy entre tu contenedor o el httpd y se cae cuando le está contestando al cliente
- Túneles de SSH
- Latencia, buffers, etc de modo que tu proceso puede escribir completo al stream pero en el camino se pierde la info (el cliente no la puede leer pero tú no te das cuenta de eso)
- El cliente está leyendo la información, ya llegó a su equipo, está en un buffer de red, y en eso se muere la app mientras parseaba el xml de la respuesta...

en fin. Hay muchas formas en que tu servicio puede escribir la respuesta completa al stream, pero eso no significa que el cliente la reciba completa y que la haya podido procesar de manera satisfactoria.

Imagen de 2odrigo

Avefenix, Lo que pides es

Avefenix,

Lo que pides es posible, pero involucra colaboración TOTAL del cliente (se complica la lógica del mismo) - tip: el cliente debe confirmarte de vuelta que 'todo ok' para la transaccion "#6545234324234", posterior a consumir tu WS .... y si no confirma el cliente al WS en x tiempo, supones que el cliente no te escuchó, y desharias la operacion, por ejemplo.

Esto es, el WS nunca podrá asegurar que el cliente recibió el mensaje completo (como menciona ezamudio), si el cliente no le avisa al WS. (Aka - ¿Cómo saber si mi carta #54 a mi agüe le llegó, si no es precisamente preguntandole a ella si la recibió?, o bien, que ella me escriba de vuelta haciendo referencia a lo que le decía en mi carta #54 - y ya con eso, inferir con bases, que sí me leyó en un principio)

Estás a las puertas de implementar algo parecido a un 'mini-protocolo' (tolerante a fallas) para asegurar que el cliente ha leído, y para el manejo de transacciones 'no confirmadas'.

2od

Imagen de avefenix_x

No queria llegar a eso pero lo hare..

Buenos dias.
No queria llegar a eso pero lo hare segun comentas 2odrigo , si necesitare un segundo web service que confirme la llagada del primero, para cerrar un ciclo de tranferencia de datos que tengo en mi aplicacion.
Saludos y gracias por los comentarios.