Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
El reenvío de mensajes de Service Broker permite a una instancia de SQL Server aceptar mensajes procedentes de fuera de la instancia y enviarlos a una instancia distinta.
Un administrador puede utilizar el reenvío de mensajes para:
Proporcionar conectividad entre servidores en dominios de confianza diferentes.
Simplifique la administración mediante la creación de una única instancia centralizada que contenga la información de enrutamiento de un dominio.
Distribuir el trabajo entre varias instancias.
Cuando se habilita el reenvío, la tabla de enrutamiento de msdb.sys.routes determina si se reenvía un mensaje que llega desde otra instancia. Si la dirección para la ruta coincidente no es LOCAL, SQL Server reenvía el mensaje a la dirección especificada. En caso contrario, el mensaje se entrega localmente.
Cada mensaje de Service Broker contiene una duración máxima y un recuento del número de veces que el mensaje se ha reenviado. Cuando una instancia reenvía el mensaje, esa instancia aumenta el recuento del mensaje. Si el mensaje excede la duración máxima, la instancia de reenvío descarta el mensaje. Esta estrategia ayuda a evitar problemas en situaciones en las que puede existir un bucle de enrutamiento.
Reenvío y entrega confiable
Una instancia que reenvía un mensaje no reconoce el mensaje al remitente. Solo el destino final lo reconoce. Si el remitente no recibe una confirmación del destino después de un período de tiempo, el remitente reintenta el mensaje.
Una instancia que realiza el reenvío de mensajes no necesita almacenar los mensajes reenviados. En su lugar, SQL Server retiene los mensajes que se van a reenviar en la memoria. La cantidad de memoria disponible para el reenvío de mensajes se especifica como parte de la configuración del extremo de Service Broker. Esta estrategia permite un reenvío de mensajes eficaz y sin estado. En el caso de que una instancia que realiza el reenvío de mensajes sufra un problema, los mensajes no se pierden. Cada mensaje siempre se mantiene en el remitente hasta que el destino final confirme el mensaje, como se describe en Protocolos de comunicación de Service Broker.
La vista sys.dm_broker_forwarded_messages de administración contiene información sobre los mensajes que se encuentran actualmente en proceso de reenvío por parte de la instancia. Una instancia de no conserva los mensajes en el proceso de reenvío; estos mensajes solo existen en la memoria. La instancia que envió el mensaje y la instancia que lo recibe conservan los mensajes. La instancia de envío no quita el mensaje hasta que la instancia receptora confirme la recepción del mensaje.
Seguridad y reenvío
El reenvío de mensajes de Service Broker no requiere una instancia de reenvío para descifrar el mensaje reenviado. Así, solo las bases de datos que participan en la conversación deben tener configurada la seguridad de diálogo.
Sin embargo, como la seguridad de transporte se aplica a las conexiones entre las instancias de SQL Server, cada instancia de SQL Server debe tener la seguridad de transporte correctamente configurada para las instancias con las que se comunica directamente. Por ejemplo, si la instancia A y la instancia B se comunican a través de una instancia de reenvío, ambas instancias deben tener la seguridad de transporte correctamente configurada para la instancia de reenvío. Dado que las instancias no intercambian mensajes directamente, las instancias no deben tener configurada la seguridad de transporte para comunicarse entre sí.
Contenido relacionado
- CREAR PUNTO FINAL (Transact-SQL)
- MODIFICAR PUNTO DE TERMINACIÓN (Transact-SQL)
- sys.dm_broker_forwarded_messages (Transact-SQL)
- sys.routes (Transact-SQL)
- sys.transmission_queue (Transact-SQL)
- Enrutamiento y redes de Service Broker
- Puntos de conexión de Service Broker
- Seguridad del cuadro de diálogo de Service Broker
- Seguridad de transporte de Service Broker