Bonjour,
Sous SQL2008, Windows server 2008, je cherche à déclencher une alerte sur base de compteurs WMI et stocker la valeur récupérée (par exemple, PercentProcessTime) dans une table.
Cela est (ou plutôt, devrait être) possible en utilisant un "jeton" au niveau de l'agent.
Service broker a été activé pour MSDB.
Dans les propriétés de l'Agent SQL server, Système d'alerte, j'ai coché "Remplacer les jetons pour toutes les réponses de travaux aux alertes".
J'ai défini une alerte de type DMI avec les paramètres suivants :
ce qui devrait me ramener la valeur du compteur toutes les 30 secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Espace de noms : \\.\root\cimv2 Requête : SELECT * FROM __InstanceModificationEvent WITHIN 30 WHERE TargetInstance ISA "Win32_PerfFormattedData_PerfOS_Processor" AND TargetInstance.name = "_Total" (testée via wbemtest)
Cette alerte déclenche un job dans l'agent qui contient la commande suivante :
J'ai volontairement converti l'UINT64 en varchar pour éviter tout problème mais voici l'erreur qui m'est retournée (avec ou sans conversion):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO Test (x) SELECT CAST(N'$(ESCAPE_SQUOTE(WMI(PercentProcessorTime)))' as varchar(3))
Impossible de démarrer l'exécution de l'étape 1 (raison : Erreur lors de la récupération de la variable WMI WMI(PercentProcessorTime) : 0x80041002). L''étape a échoué.
Quelqu'un pourait-il m'aiguiller un peu ?
Un grand merci d'avance,
Michel.
Partager