Поделиться через


SCOM Notifications Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) Console Error

 

While working with a few different customers over the past weeks I have seen this error come up. While accessing a subscription you get the following popup error.

 

image

So you ask yourself what does that mean? That popup error itself offers little in the way of a clear answer. It does however point you in the right direction. Since we are dealing with the Notifications Library we can figure that the error is coming from something within a subscription or subscriber. After doing some digging I found that these are often caused by the deletion of a rule or monitor that has been subscribed to within one of your subscriptions. If you export the Notifications Internal Library MP and open the XML file with an editor, you can see that the subscriptions MP is just XML like all other MP’s. In the case of the error we see above there is a GUID that is referenced within the XML that no longer exists. To resolve this you will need to find the GDID that is causing the problem and remove it.

To locate and remove the faulting GUID follow the steps below.

 

1. Export the Notifications Internal Library, then make a copy of it for backup purposes.

clip_image001

2. Open the XML File in whatever editor you would like to use. Now do a find for the name of the subscription, in my example I am using “Server Down” . You are looking for an entry like you see below. You will want to copy the “Subscriptiondb8a65fa_53ea_46e1_9a65_ebd45ca1ca69” to your clipboard.

<DisplayString ElementID="Subscriptiondb8a65fa_53ea_46e1_9a65_ebd45ca1ca69">

          <Name>Server Down</Name>

3. Now do a find in the XML file for that Subscription GUID you just copied. This will take you to a chunk of text like you see below.

<Rule ID="Subscriptiondb8a65fa_53ea_46e1_9a65_ebd45ca1ca69" Enabled="true" Target="Notification!Microsoft.SystemCenter.AlertNotificationSubscriptionServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">

        <Category>Notification</Category>

        <DataSources>

          <DataSource ID="DS1" RunAs="SystemCenter!Microsoft.SystemCenter.DatabaseWriteActionAccount" TypeID="SystemCenter!Microsoft.SystemCenter.SubscribedAlertProvider">

            <AlertChangedSubscription Property="Any">

              <Criteria>

                <Expression>

                  <And xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema">

                    <Expression>

                      <Or>

                        <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ProblemId</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>b59f78ce-c42a-8995-f099-e705dbb34fd4</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

                        <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ProblemId</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>b59f78ce-c42a-8995-f099-e705dbb34fd4</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

                      </Or>

                    </Expression>

                    <Expression>

                      <Or>

                        <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ResolutionState</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>0</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

                        <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ResolutionState</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>255</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

                      </Or>

                    </Expression>

                  </And>

                </Expression>

              </Criteria>

              <ExpirationStartTime>12/09/2010 18:48:52</ExpirationStartTime>

              <PollingIntervalMinutes>1</PollingIntervalMinutes>

              <UserSid>S-1-5-21-3175464644-3620557901-2431004025-500</UserSid>

              <LanguageCode>ENU</LanguageCode>

              <ExcludeNonNullConnectorIds>false</ExcludeNonNullConnectorIds>

              <RuleId>$MPElement$</RuleId>

              <TargetBaseManagedEntityId>$Target/Id$</TargetBaseManagedEntityId>

              <TimeZone>2C01000000000000C4FFFFFF00000B0000000100020000000000000000000300000002000200000000000000|Eastern Standard Time</TimeZone>

            </AlertChangedSubscription>

          </DataSource>

        </DataSources>

        <ConditionDetection ID="CD1" TypeID="Microsoft.SystemCenter.Notification.Recipients">

          <Recipients>

            <To>

              <DirectoryReference>

                <RecipientId>6d901c6d-2254-406a-a16b-d766a997839a</RecipientId>

              </DirectoryReference>

            </To>

          </Recipients>

        </ConditionDetection>

        <WriteActions>

          <WriteAction ID="WA0" TypeID="Cmd_9f075aec_9d63_43bf_bccf_f9685bcb3dd7" />

        </WriteActions>

      </Rule>

4. Now you will have to validate what RuleID or ProblemID is the cause of the failure. You will need to run a PowerShell command to validate each RuleID and ProblemID. See below for an example. Make sure to replace the RuleID with the GUID listed in the XML block.

                        <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ProblemId</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>b59f78ce-c42a-8995-f099-e705dbb34fd4</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

a. RuleID validation - get-rule -id your-RuleID | select-object DisplayName

b. ProblemID Validation - get-monitor -id Your-ProblemID | select-object DisplayName

c. When you run this you should see an output with the display name of the Rule or Monitor if that GUID is valid. What you are looking for is a failure, this is indicated b the return similar to what I have listed below.

This is a valid rule or monitor

clip_image002

This is an invalid rule or monitor and the cause of the failure.  The key here is the “parameter was not found.”

clip_image004

5. So now that you located the cause of the failure you can simply remove the section of the XML file. This will remove the broken reference to the rule or monitor. You will need to remove everything between the <Expression> and </Expression> for the bad GUID .

                     <Expression>

                          <SimpleExpression>

                            <ValueExpression>

                              <Property>ProblemId</Property>

                            </ValueExpression>

                            <Operator>Equal</Operator>

                            <ValueExpression>

                              <Value>b59f78ce-c42a-8995-f099-e705dbb34fd3</Value>

                            </ValueExpression>

                          </SimpleExpression>

                        </Expression>

6. Before saving your edited file make sure you have a backup of the origanal file just incase there was an error in your edit. Now that you have your back you can save the edited file as “Microsoft.SystemCenter.Notifications.Internal.xml”.  Now import the modified Microsoft.SystemCenter.Notifications.Internal.xml file into your management group. You can do this like any other management pack. Allow a few moments for the MP to refresh, then access the subscription again. This will have removed the broken reference and allow you gain access to the subscription again.

Comments

  • Anonymous
    January 01, 2003
    Yes while in most cases I have seen and done the same, in this case I did not see the need to do so. You would not harm anything by doing so and I will update the post to reflect that as its best practice.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    May 12, 2011
    Shouldn't you delete the original mp before you can import it or increase the version number of the xml so it can successfully update?

  • Anonymous
    May 24, 2011
    This is a fairly painful process, particularly if there are a lot of rules/monitors to go through in a subscription. What is the likelihood of MS just fixing this - as in Outlook when a mail rule is incorrect...? How can one formally request it if that's necessary? thanks!

  • Anonymous
    August 25, 2011
    The comment has been removed

  • Anonymous
    November 06, 2012
    all this GUIDs you can check in SCOM OperationDW  in table Monitors. And you will see that some GUIDs not in table, so you must delete all GUIDs that did not store in this table.