SCOM Connector QuickStart Guide

SCOM Connector QuickStart Guide

  • Comments 24

Ambrose Wong put together a great quick start guide to connectors in SCOM. I've attached the Word version below. Any feedback is appreciated and I can pass it on to Ambrose.

Attachment: SCOM Connector Quickstart Guide v1.doc
Leave a Comment
  • Please add 1 and 6 and type the answer here:
  • Post
  • PingBack from

  • It's allready a while since i last developed a connector for MOM 2005 (a connector between altiris

  • Hi Jakub,

    Is there 64 bit version of Ops Mgr 2007 available? I can not find it online?

  • All distributables we provide have both 32 and 64 bit versions.

  • Also, SP1 is expected to RTM before end of Feb and there will be a link from to download the final SP1.  All downloads include both 32 and 64 bits.  You can also find the RC of SP1 here:

  • Thanks Jakub, now i see those amd64 folders inside the package. Also want to check with you that, is there any report models available for Ops Mgr, bcoz i would lik to do custom reports and publish it in a sharepoint website. Inside the Ops Mgr package i found there is a reports model folder and i found there is only acs models are inside, is there any model for OpsMgrDW database and OpsMgr database?

  • Reporting is part of the product and is a role that can be installed.

  • Jakub, Is there any special MP for "Windows Data Storage server 2003" Or should just use the standard win 2003 MP to monitor that ?

  • Not that I know of.

  • Read about it Download the guide

  • SP1 RTM released. Reference: The connectors available

  • After successfully coding up a .NET console app that reads notices from and HPSIM SQL store, and writes them into a SCOM instance as a “CustomMonitoringEvent”s, I have a few questions:

    [1]  How exactly to register an inbound SCOM connector. MSDN’s "Connecting to External Systems by Using Operations Manager Connectors" is useful, but leaves me wondering how the registration process really works. The information/properties used to create/register a new connector do not seem to include any references to my actual program file.

    [2]  I could use some tips on how to properly assure that my CustomMonitoringEvents are going into the proper MonitoringClass. Right now, I am using an aribitrary MonitoringClass to create events into. This code seems to close to what I need to run:

    string MonitoringClassQuery = "Name='System.Chassis'";

    MonitoringClassCriteria ChassisClassCriteria = new MonitoringClassCriteria(MonitoringClassQuery);

    ReadOnlyCollection<MonitoringClass> classes = mg.GetMonitoringClasses(ChassisClassCriteria);

    But it fails to find any MonitoringClass for “Name='System.Chassis'”. I hope that this MonitoringClass simply needs to be created somehow.

    [3]  So I am creating CustomMonitoringEvents, and I can find them using the SCOM UI. But I think I might need to get Alerts created from the Events, in order for IMQ to pick them up. How does one generate Alerts from Events? I hope this would be a one-time setup of to fire Alerts when any CustomMonitoringEvents for Name='System.Chassis' occur.

    Thank you


  • [1] You only create the connector. We don't run your code for you, so you still need to run your code either via an application or service.

    [2] I am not sure I follow on this one. What do you mean by "going into the proper MonitoringClass." The event doesn't take a class.

    [3] You need to create rules that generate alerts off the events. This is a good start:

  • Hello!

    I developed a Connector via SCOM Classes.

    I had many problems almost solved, but, still I have some oh them I did not find any solution or workaround, therefore I am going to try to ask help you all.

    The First problem is the following.

    When I export SCOM alerts via API somethime in the Operations Manager Windows Event Log file are written the following events (exactly in this order):

    Source: DataAccessLayer

    Event ID: 33333

    Severity: Warning


    Data Access Layer rejected retry on SqlError:

    Request: p_AlertSetConnectorId -- (AlertIdList=362b08d4-2b96-4222-a1a5-0584c450e93b,ff4ecef5-0729-4ba4-a0dd-6b098ab908a9), (ConnectorId=e7c652b5-7685-4fe6-8968-162af6e098fb), (Comments=), (ModifiedBy=Connector Framework Alert Write Action), (RETURN_VALUE=1)

    Class: 16

    Number: 547

    Message: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_Alert_ConnectorId". The conflict occurred in database "OperationsManager", table "dbo.Connector", column 'ConnectorId'.

    Source: DataAccessLayer

    Event ID: 33333

    Severity: Warning


    Data Access Layer rejected retry on SqlError:

    Request: p_AlertSetConnectorId -- (AlertIdList=362b08d4-2b96-4222-a1a5-0584c450e93b,ff4ecef5-0729-4ba4-a0dd-6b098ab908a9), (ConnectorId=e7c652b5-7685-4fe6-8968-162af6e098fb), (Comments=), (ModifiedBy=Connector Framework Alert Write Action), (RETURN_VALUE=1)

    Class: 0

    Number: 3621

    Message: The statement has been terminated.

    Source: Health Service Modules

    Event ID: 11502

    Severity: Error


    The Microsoft Operations Manager Connector Framework Alert Forwarding module failed to mark an alert for forwarding because the connector the module is configured for no longer exists.

    Connector Id: e7c652b5-7685-4fe6-8968-162af6e098fb

    Source: HealthService

    Event ID: 4502

    Severity: Error


    A module of type "Microsoft.EnterpriseManagement.Mom.Modules.McfAlertWriteAction" reported an exception System.Data.SqlClient.SqlException: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_Alert_ConnectorId". The conflict occurred in database "OperationsManager", table "dbo.Connector", column 'ConnectorId'.

    The statement has been terminated.

      at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

      at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

      at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

      at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

      at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

      at System.Data.SqlClient.SqlDataReader.get_MetaData()

      at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

      at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

      at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

      at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

      at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

      at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)

      at Microsoft.EnterpriseManagement.Mom.DataAccess.SqlRetryHandler.ExecuteReader(ExecuteArguments executeArguments, QueryResults& queryResults)

      at Microsoft.EnterpriseManagement.Mom.DataAccess.SqlRetryHandler.Execute[T](ExecuteArguments executeArguments, RetryPolicy retryPolicy, GenericExecute`1 genericExecute)

      at Microsoft.EnterpriseManagement.Mom.DataAccess.SqlRetryHandler.ExecuteReader(SqlCommand sqlCommand, IList`1 prologEpilogList, IList`1 projection, QueryDefinition queryDefinition, RetryPolicy retryPolicy)

      at Microsoft.EnterpriseManagement.Mom.DataAccess.QueryRequest.Execute(SqlNotificationRequest sqlNotificationRequest)

      at Microsoft.EnterpriseManagement.Mom.DataAccess.QueryRequest.Execute()

      at Microsoft.EnterpriseManagement.Mom.Modules.McfAlertWriteAction.ProcessDataItem(DataItemAlertSubscription[] dataItems, Boolean isLogicalSet, DataItemAcknowledgementCallback acknowledgedCallback, Object acknowledgedState, DataItemProcessingCompleteCallback completionCallback, Object completionState) which was running as part of rule "AlertSubscription" running for instance "scom01.SCOM-01.ORG" with id:"{242460F6-E129-3CA7-CE4C-FD76388ED93B}" in management group "SiemensConnector".

    1 - These events regard only the single alert.

    2 - Currently I not found the cause of this problem, therefore these events are written “casually”, but I am sure there is a clear cause. What I can say is that it happens (casually) when one alert is exported. With the OpsMgr console this problem never happens

    3 - The reported Connector Id (e7c652b5-7685-4fe6-8968-162af6e098fb) is always the same ID every time tis messge is written even if it never fits with the actual Connector ID’s

    4 - This problem happens even after I have cleaned the tables Alert and AlertHistory (therefore not old alert existing)

    5 - I use only one connector each time

    6 - I use SCOM 2007 with SP1 RTM (6.0.6278.0)

    Can you help me facing up this problem?

  • Do you ever call Cleanup on your connector? If so, this is likely causing the problem. Cleanup should only be called when you uninstall your connector.

Page 1 of 2 (24 items) 12