Compartir a través de


Herramientas para la solución de problemas (Service Broker)

Service Broker proporciona varias herramientas para diagnosticar problemas relacionados con la configuración y las conversaciones.

Service Broker es un componente de Database Engine (Motor de base de datos). Por consiguiente, muchas de las herramientas de Database Engine (Motor de base de datos) también se pueden utilizar para diagnosticar problemas de Service Broker. Para obtener más información, vea Herramientas de solución de problemas (motor de base de datos).

La utilidad ssbdiagnose

La utilidad ssbdiagnose analiza la configuración de los servicios y las conversaciones en ejecución de Service Broker para ver si se producen errores. Use ssbdiagnose para lo siguiente:

  • Confirmar que no hay errores de configuración en una aplicación de Service Broker que se acaba de configurar.

  • Confirmar que no hay errores de configuración después de cambiar la configuración de una aplicación de Service Broker existente.

  • Confirmar que no hay errores de configuración después de que una base de datos de Service Broker se haya separado y vuelto a adjuntar a una nueva instancia de Database Engine (Motor de base de datos).

  • Determinar qué errores impiden que los mensajes se transmitan correctamente entre los servicios.

Para obtener más información sobre cómo usar la utilidad, vea Utilidad ssbdiagnose.

La cola de transmisión de Service Broker

Los mensajes de Service Broker que no se transmiten correctamente a la cola receptora permanecen en la cola de transmisión de Service Broker de la base de datos emisora. Puede utilizar la vista del sistema sys.transmission_queue de cada base de datos para ver los mensajes de dicha cola. Para cualquier mensaje que esté en la cola debido a un error de transmisión, la columna transmission_status contiene el mensaje de error correspondiente.

No todos los mensajes de la cola de transmisión son consecuencia de errores:

  • Algunos mensajes de la cola podrían estar en el proceso de envío. Por ejemplo, puede tratarse de mensajes esperando que un receptor desconectado se vuelva a conectar o que se reciba confirmación de un envío de red.

  • Si una cola tiene RETENTION establecido en ON, los mensajes transmitidos correctamente se mantienen en la cola de transmisión hasta que finalice la conversación.

La columna is_conversation_error indica si el mensaje ha detectado un error.

Para obtener más información acerca de sys.transmission_queue, vea sys.transmission_queue (Transact-SQL).

Eventos de seguimiento de SQL de Service Broker

Service Broker proporciona varios eventos de seguimiento de SQL que pueden utilizarse para diagnosticar problemas. Puede utilizar SQL Server Profiler o los procedimientos almacenados del sistema para configurar un seguimiento de SQL que supervise los eventos y los errores de Service Broker a medida que se produzcan. Esto permite ver los eventos de Service Broker generados por el sistema, y si se detectan errores en ellos.

Para obtener más información sobre cómo utilizar el seguimiento de SQL, vea Supervisar eventos.

Para obtener más información sobre los eventos de seguimiento de Service Broker, vea Broker (categoría de eventos).

Objetos de rendimiento de Service Broker

Service Broker proporciona varios objetos de rendimiento que puede utilizar en el Monitor del sistema para realizar el seguimiento del rendimiento de las operaciones de Service Broker.

Para obtener más información, vea Supervisar el uso de recursos (Monitor de sistema).

Para obtener más información acerca de los objetos de rendimiento de Service Broker, vea los temas siguientes:

Errores de Service Broker

Service Broker utiliza los mismos mecanismos que Database Engine (Motor de base de datos) para devolver errores a las aplicaciones o a las herramientas. Para obtener más información, vea Descripción de errores del motor de base de datos.

Para obtener información sobre errores específicos de Service Broker, vea Referencia de errores y eventos (Service Broker).

Los errores de Service Broker que se generan al ejecutar una instrucción de Transact-SQL se devuelven a la aplicación que realiza la llamada. Por ejemplo, si está ejecutando un script en el Editor de consultas Transact-SQL de Management Studio, cualquier error de las instrucciones Transact-SQL de Service Broker se devuelve en la ventana Mensajes.

Muchas operaciones de Service Broker son asincrónicas y se producen cuando no hay ninguna aplicación conectada a la instancia de Database Engine (Motor de base de datos). Estos errores normalmente se devuelven en el registro de errores y en el registro de aplicación de Windows asociados a la instancia de Database Engine (Motor de base de datos). Para obtener más información, vea Supervisar los registros de errores.

Vistas del sistema de Service Broker

Service Broker proporciona varias vistas del sistema que permiten analizar las configuraciones existentes de Service Broker o supervisar el estado de los componentes de Service Broker.

Vistas de catálogo de Service Broker

Las vistas de catálogo de Service Broker devuelven datos relacionados con la configuración actual de los objetos de catálogo de Service Broker, como las colas y los contratos.

Para obtener una lista de las vistas de catálogo de Service Broker, vea Vistas de catálogo de Service Broker (Transact-SQL).

Vistas de administración dinámica de Service Broker

Las vistas de administración dinámica de Service Broker devuelven datos relacionados con el estado actual de los componentes de Service Broker, como las tareas de activación y las conexiones de Service Broker.

Para obtener una lista de las vistas de administración dinámica de Service Broker, vea Vistas de administración dinámica relacionadas con Service Broker (Transact-SQL).