Administración del estado

Una aplicación que mantiene el estado almacena normalmente ese estado en las tablas de la base de datos. Dado que cada grupo de conversación tiene un identificador único, ese identificador se utiliza normalmente como clave en la tabla de estados. Service Broker también proporciona la retención del mensaje para las aplicaciones que deben conservar los mensajes exactos enviados y recibidos.

Muchas aplicaciones no requieren el estado. En general, una aplicación mantiene el estado si la tarea implica más de un mensaje y existe información sobre la tarea que no puede estar almacenada en las tablas existentes de la base de datos.

Por ejemplo, una aplicación que comprueba y devuelve información del cliente no requiere el estado y no utiliza una tabla de estados. Por otro lado, una aplicación que administra el cumplimiento de pedidos genera solicitudes a varios otros servicios. Un programa que coordina las solicitudes a otros servicios utiliza a menudo una tabla de estados para realizar el seguimiento de las solicitudes. La aplicación actualiza las tablas de datos y borra la tabla de estados cuando todas las solicitudes se han completado correctamente. Si una solicitud devuelve un error, la aplicación vuelve a enviar la solicitud o utiliza la tabla de estados para enviar una solicitud compensatoria.

Una aplicación también puede utilizar una tabla de estados para auditar o registrar objetivos. La aplicación guarda la información importante sobre cada solicitud en la tabla de estados. En este caso, la aplicación no elimina la información de la tabla de estados cuando se completa una conversación.

Algunas aplicaciones pueden requerir un registro preciso de los mensajes enviados y recibidos mientras la conversación está activa. En este escenario, Service Broker proporciona la retención de mensajes.