SCOM Connector QuickStart Guide


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.

SCOM Connector Quickstart Guide v1.doc


Comments (24)

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

  2. Sureshquest says:

    Hi Jakub,

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

  3. JakubOleksy says:

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

  4. JakubOleksy says:

    Also, SP1 is expected to RTM before end of Feb and there will be a link from http://www.microsoft.com/opsmgr to download the final SP1.  All downloads include both 32 and 64 bits.  You can also find the RC of SP1 here:  https://connect.microsoft.com/SystemCenter/Survey/NominationSurvey.aspx?SurveyID=1228&ProgramID=500

  5. Sureshquest says:

    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?

  6. JakubOleksy says:

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

  7. Sureshquest says:

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

  8. JakubOleksy says:

    Not that I know of.

  9. Read about it Download the guide

  10. inviso12 says:

    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

    Eric

  11. JakubOleksy says:

    [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:

    http://blogs.msdn.com/jakuboleksy/archive/2006/09/27/Sample-Alert-and-State-Change-Insertion.aspx

  12. TheBowMan says:

    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

    Description:

    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

    Description:

    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

    Description:

    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

    Description:

    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?

  13. JakubOleksy says:

    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.

  14. TheBowMan says:

    I found the problem…

    …Actually I removed accidentally che built-in connector installed when SCOM in installed…

    I beg you pardon but I have a lot of problems with SCOM MCF.

    I do not find answers, therefore where may I put my questions ?

    In this blog?

    If yes, where?

    If no, where may I post ?

  15. JakubOleksy says:

    You can post questions here or in the newsgroups, preferably the SDK newsgroup.

  16. JakubOleksy says:

    microsoft.public.opsmgr.sdk is the newsgroup I as referring to.

  17. I had the opportunity to build a simple product connector for System Center Operations Manager 2007 last week. A product connector is used to forward alert information from OpsMgr to an external system. This post describes how I built the product connector

  18. I had the opportunity to build a simple product connector for System Center Operations Manager 2007 last week. A product connector is used to forward alert information from OpsMgr to an external system. This post describes how I built the product connector

  19. Occasionally I run across an issue that requires immediate action be taken to resolve the problem while

  20. Thej says:

    Please tell me how to create an alert subscription for an outbound connector through the OMCF service, I was not able to find any method related to that in the SCOM 2007 web service.

    Thanks in Advance.

  21. JakubOleksy says:

    You can’t do this via the web service, you can only do it via the public APIs.

  22. Mike says:

    Thank you for your great qucik start guide! It helped me alot when i wrote an SCOM connector for my company. It ow sync maintenance mode between scom and another monitoring system.

    And transfer alerts. Your guide helped me alot in the beginning. Thank you.