Quando la discovery dei vostri agenti stenta a funzionare il primo troubleshooting da effettuare è sicuramente quello di verificare se SQL Broker service è abilitato sui vostri database di SCOM quindi:

  1. Collegatevi all’instanza SQL dove risiede il vostro OperationsManager Db e eseguite la seguente query:

USE MASTER

SELECT is_broker_enabled FROM sys.databases WHERE name='OperationsManager'

Il risultato della quale deve essere 1 in caso contrario vuol dire che il SQL Broker service non è abilitato sul vostro OperationsManager Db quindi occorre eseguire questa procedura per riabilitarlo http://scug.be/blogs/scom/archive/2008/11/22/the-sql-server-service-broker-for-the-current-opsmgr-database-is-not-enabled.aspx

Se il vostro SQL Broker Service risulta abilitato oppure anche dopo averlo abilitato le vostre Agent Discovery wizard sono ancora infinite  occorre eseguire un troubleshooting avanzato

  1. Per prima cosa occorre verificare se esistono in coda al servizio di Broker delle discovery utilizzando questa query

USE OperationsManager

select * from sys.transmission_queue

questa query vi ritornerà questo messaggio

‘An exception occurred while enqueueing a message in the target queue. Error: 15404, State: 19. Could not obtain information about Windows NT group/user 'Domain/User', error code 0x52e.’

l’errore 0x52e è da tradurre come ERROR_LOGON_FAILURE,quindi sta a significare che l’account che è Owner del database di OperationsManager non è corretto o per esempio è stato cancellato, inoltre dall’event viewer del vostro server SQL troverete una serie di errori 28005

 

Per risolvere il problema occorre cambiare il Db Owner del Db OperationsManager con un account che abbia le necessarie permission utilizzando la SQL store procedure sp_changedbowner.

A questo punto le vostre Agent discovery torneranno funzioneranno benissimo!!

 

 

Special thks to

Steve Rachui

http://blogs.msdn.com/b/steverac/archive/2009/08/30/opsmgr-agent-discovery-hanging-after-enabling-broker-service.aspx

Cheers

Luca