what services restful jax for java web-services java-ee transactions

services - what is a web service in java



Opciones de transacción sobre llamadas al servicio web (4)

¿Alguien tiene alguna idea de las opciones de transacción disponibles a través de llamadas al servicio web? 1.) Hay dos aplicaciones que tenemos que necesitan comunicación transaccional entre ellos. 2.) La aplicación 1 llama a un servicio web en la aplicación 2 y luego realiza algunos cambios en su propia base de datos. la llamada a la aplicación2 y los cambios a su propio db deben coordinarse. ¿Cómo podemos hacer esto? ¿Cuáles son las posibles opciones?


Depende de la pila de tecnología que estés usando. En .Net, WCF ofrece funciones de transacción; de lo contrario, lo único que puede hacer es minimizar el intervalo de tiempo que puede producirse un error.

En aplicaciones anteriores, le he dado al servicio un token para el servicio web. Cuando el servicio retorna (sincronización o asincronía) devuelve el token. El token tiene una marca de tiempo incrustada. Si la marca de tiempo ha expirado, la transacción se cancela; si no, supongo que la llamada al servicio web fue exitosa.

Después del regreso exitoso de la llamada al servicio web, la llamada al método NEXT es registrar la transacción dentro de su sistema. Esto crea una ventana muy pequeña donde el sistema detrás del servicio web y su sistema estarán fuera de sincronización. También disminuye la posibilidad de que ocurra un error inesperado que evitará la actualización / inserción de su lado.


Realiza la llamada al servicio web y si tiene éxito, cambia en su propia base de datos. Si el cambio de su propia base de datos falla, llame al servicio web para revertir los cambios realizados en una llamada anterior. Para que esto suceda, el servicio web debe proporcionar la funcionalidad de reversión.

Por ejemplo, el servicio web tiene la función createUser, entonces deberían tener la función deleteUser.