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.
El proveedor WMI para eventos de servidor permite usar instrumental de administración de Windows (WMI) para supervisar eventos en SQL Server. El proveedor funciona convirtiendo SQL Server en un objeto WMI administrado. El WMI puede aprovechar cualquier evento que pueda generar una notificación de eventos en SQL Server mediante este proveedor. Además, como una aplicación de administración que interactúa con WMI, el Agente SQL Server puede responder a estos eventos, lo que aumenta el ámbito de los eventos cubiertos por el Agente SQL Server en versiones anteriores.
Las aplicaciones de administración como el Agente SQL Server pueden acceder a eventos de SQL Server mediante el proveedor WMI para eventos de servidor mediante la emisión de instrucciones WMI Query Language (WQL). WQL es un subconjunto simplificado del lenguaje de consulta estructurado (SQL), con algunas extensiones específicas de WMI. Al usar WQL, una aplicación recupera un tipo de evento en una base de datos o un objeto de base de datos específico. El proveedor WMI para eventos de servidor traduce la consulta en una notificación de eventos, creando eficazmente una notificación de eventos en la base de datos de destino. Para obtener más información sobre cómo funcionan las notificaciones de eventos en SQL Server, consulte Conceptos del proveedor WMI para eventos de servidor. Los eventos que se pueden consultar se muestran en el proveedor WMI para clases y propiedades de eventos de servidor.
Cuando se produce un evento que desencadena la notificación de eventos para enviar un mensaje, el mensaje va a un servicio de destino predefinido en msdb denominado SQL/Notifications/ProcessWMIEventProviderNotification/v1.0. El servicio coloca el evento en una cola predefinida en msdb denominada WMIEventProviderNotificationQueue. (Tanto el servicio como la cola se crean dinámicamente mediante el proveedor cuando se conecta por primera vez a SQL Server). A continuación, el proveedor lee los datos de eventos de esta cola y los transforma en formato de objeto administrado (MOF) antes de devolverlos a la aplicación. En la ilustración siguiente se muestra este proceso.
Por ejemplo, considere la siguiente consulta WQL:
SELECT * FROM DDL_DATABASE_LEVEL_EVENTS
WHERE DatabaseName = 'AdventureWorks'
En respuesta a esta consulta, el proveedor WMI para eventos de servidor crea la notificación de eventos equivalente en la base de datos de destino:
USE AdventureWorks ;
GO
CREATE EVENT NOTIFICATION SQLWEP_76CF38C1_18BB_42DD_A7DC_C8820155B0E9
ON DATABASE
WITH FAN_IN
FOR DDL_DATABASE_LEVEL_EVENTS
TO SERVICE
'SQL/Notifications/ProcessWMIEventProviderNotification/v1.0',
'A7E5521A-1CA6-4741-865D-826F804E5135';
GO
En este ejemplo, SQLWEP_76CF38C1_18BB_42DD_A7DC_C8820155B0E9 es un identificador Transact-SQL que se compone del prefijo SQLWEP_ y un GUID.
SQLWEP crea un nuevo GUID para cada identificador. El valor A7E5521A-1CA6-4741-865D-826F804E5135 de la TO SERVICE cláusula es el GUID que identifica la instancia del agente en la base de datos msdb .
Para obtener más información sobre cómo trabajar con WQL, consulte Uso de WQL con el proveedor WMI para eventos de servidor.
Las aplicaciones de administración dirigen el proveedor WMI para eventos de servidor a una instancia de SQL Server mediante la conexión a un espacio de nombres WMI definido por el proveedor. El servicio WMI de Windows asigna este espacio de nombres al archivo DLL del proveedor, Sqlwep.dlly lo carga en memoria. El proveedor administra un espacio de nombres WMI para eventos de servidor para cada instancia de SQL Server y el formato es: \\.\root\Microsoft\SqlServer\ServerEvents\instance_name, donde instance_name valor predeterminado es MSSQLSERVER. Para obtener más información sobre cómo conectarse a un espacio de nombres WMI para una instancia de SQL Server, vea Uso de WQL con el proveedor WMI para eventos de servidor.
El archivo DLL del proveedor, Sqlwep.dll, solo se carga una vez en el servicio host WMI del sistema operativo del servidor, independientemente de cuántas instancias de SQL Server estén en el servidor.
Para obtener un ejemplo de una aplicación de administración del Agente SQL Server que usa el proveedor WMI para eventos de servidor, vea Ejemplo: Crear una alerta del Agente SQL Server mediante el proveedor WMI para eventos de servidor. Para obtener un ejemplo de una aplicación de administración que usa el proveedor WMI para eventos de servidor en código administrado, vea Ejemplo: Uso del proveedor de eventos WMI en código administrado. También hay más información disponible sobre WMI en el SDK de Microsoft .NET Framework.