<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>JIMMY HARPER'S OPERATIONS MANAGER BLOG : Management Pack</title><link>http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx</link><description>Tags: Management Pack</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Noisy DBCC Rule in the SQL Management Pack</title><link>http://blogs.technet.com/jimmyharper/archive/2009/10/01/noisy-dbcc-rule-in-the-sql-management-pack.aspx</link><pubDate>Thu, 01 Oct 2009 08:39:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3284259</guid><dc:creator>jimmyharper</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jimmyharper/comments/3284259.aspx</comments><wfw:commentRss>http://blogs.technet.com/jimmyharper/commentrss.aspx?PostID=3284259</wfw:commentRss><description>&lt;p&gt;The SQL Server Management Pack has a rule, targeted at SQL 2000/2005/2008 DB Engine named “DBCC executed found and repaired errors”.&amp;#160; This rule monitors for Event ID 8957 in the Application Log, logged by the SQL Service.&amp;#160; Here is the criteria for the rule:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb.png" width="826" height="271" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The problem with this is that you will see this Event logged, even when DBCC did not find or fix any errors…here’s an example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb_1.png" width="389" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So, this could result in a lot of alerts.&amp;#160; Also, this rule generates an Informational alert by default, so if the event did indicate that errors were found, it would not generate a Warning or Critical alert.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We can change this by disabling the default rule and creating a new one.&amp;#160; The new one should generate a Warning or Critical alert only if the DBCC event indicates that errors were found.&amp;#160; We have two ways that we can do this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;&lt;font size="4"&gt;The Easy Way&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="2"&gt;SQL 2005/2008:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div&gt;Set an Override to disable the built-in “DBCC executed found and repaired errors” rules targeted at SQL 2005/2008 DB Engine       &lt;br /&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Create two separate rules, one targeted at SQL 2005 DB Engine and one targeted at SQL 2008 DB Engine.&amp;#160; The rule will be exactly the same as the original, but with additional criteria for “Event Description does not contain “found 0 errors””:&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb_2.png" width="936" height="291" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Configure alerting as desired:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb_3.png" width="570" height="510" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="3"&gt;SQL 2000:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Set an Override to disable the built-in “DBCC executed found and repaired errors” rules targeted at SQL 2000 DB Engine     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Create a new rule, targeted at SQL 2000 DB Engine.&amp;#160; The criteria will be a little different than SQL 2005/2008:&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb_4.png" width="973" height="534" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="4"&gt;&lt;strong&gt;The Harder, But Better, Way&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I don’t like using Event Description in criteria if I don’t have to…using Parameters is less of a performance hit on the agent.&amp;#160; So, instead of using the above options with EventDescription, we can use parameters.&amp;#160; The parameters we are concerned with here are Parameter 8 (number of errors found) and Parameter 9 (number of errors repaired).&amp;#160; This is for SQL 2005/2008 only, I haven’t looked at the parameters for SQL 2000.&amp;#160; So, we can use the following criteria:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/NoisyDBCCRuleintheSQLManagementPack_898/image_thumb_5.png" width="924" height="310" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The reason that this is better is that the Agent doesn’t need to look through the full Event description of every 8957 event, it only needs to look at parameters 8 and 9.&lt;/p&gt;  &lt;p&gt;The reason that is is harder is because we’ll also have to edit the XML of the rule, since we are using Integers in the criteria.&amp;#160; See my previous blog post (from, like, an hour ago) on this &lt;a href="http://blogs.technet.com/jimmyharper/archive/2009/10/01/using-integers-and-other-non-string-data-types-in-rules-and-monitors.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So, we’ll need to export our custom MP, open it in a text editor and find the XML for the OR expression for Parameter 8 and Parameter 9.&amp;#160; Here is the XML:&lt;/p&gt;  &lt;p&gt;&amp;lt;Expression&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Or&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&amp;quot;String&amp;quot;&amp;gt;Params/Param[8]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&amp;quot;String&amp;quot;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&amp;quot;String&amp;quot;&amp;gt;Params/Param[9]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&amp;quot;String&amp;quot;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/Or&amp;gt;    &lt;br /&gt; &amp;lt;/Expression&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We’ll then need to change the “String” entries to “Integer”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Before:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Expression&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Or&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;String&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;Params/Param[8]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;String&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;String&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;Params/Param[9]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;String&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/Or&amp;gt;    &lt;br /&gt; &amp;lt;/Expression&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;After:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Expression&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Or&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;Integer&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;Params/Param[8]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;Integer&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;XPathQuery Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;Integer&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;Params/Param[9]&amp;lt;/XPathQuery&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Operator&amp;gt;Greater&amp;lt;/Operator&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Value Type=&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&amp;quot;Integer&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;0&amp;lt;/Value&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ValueExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SimpleExpression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expression&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/Or&amp;gt;    &lt;br /&gt; &amp;lt;/Expression&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Update the version of the MP, re-import it, and you should be good to go.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3284259" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jimmyharper/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx">Management Pack</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Rule/default.aspx">Rule</category></item><item><title>Exchange 2007 Synthetic Transactions against clustered Mailbox Servers may stop working</title><link>http://blogs.technet.com/jimmyharper/archive/2009/09/26/exchange-2007-synthetic-transactions-against-clustered-mailbox-servers-may-stop-working.aspx</link><pubDate>Sat, 26 Sep 2009 08:30:17 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3283348</guid><dc:creator>jimmyharper</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jimmyharper/comments/3283348.aspx</comments><wfw:commentRss>http://blogs.technet.com/jimmyharper/commentrss.aspx?PostID=3283348</wfw:commentRss><description>&lt;p&gt;Are you using the new Exchange 2007 Management Pack?&lt;/p&gt;  &lt;p&gt;Are you configuring the CAS and/or Mailflow synthetic transcactions?&lt;/p&gt;  &lt;p&gt;Are any of your target Mailbox servers clustered?&lt;/p&gt;  &lt;p&gt;If so, then you’ll want to verify that these transactions are actually running…and be sure to check it at least 12 hours after setting it up.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Here’s a very quick synopsis of the issue:&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;You create either CAS or Mailflow synthetic transactions where the target mailbox server is clustered &lt;/li&gt;    &lt;li&gt;The synthetic transactions are discovered and appear to be running fine…objects are healthy and we see perf data &lt;/li&gt;    &lt;li&gt;Within 12 hours, you notice that we are no longer seeing performance data from the transaction. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There is a discovery called “RMS Target Relationship Discovery” which runs every 12 hours on the RMS.&amp;#160; The purpose of this discovery is to create a relationship between the Exchange Synthetic Transaction object and the target Mailbox server.&amp;#160; The purpose of the relationship is so that when the Mailbox server is put into Maintenance Mode, the Transaction object will also go into MM (otherwise, the transactions would continue to run and would fail and go into an unhealthy state).&amp;#160; The problem is that when the target mailbox server is clustered, some core OpsMgr rules relating to cluster monitoring end up getting applied to the CAS server and essentially disabling the workflows that run these transactions.&amp;#160; I know that’s not an extremely technical explanation, but it’ll do for now.&amp;#160; Regardless, if the target mailbox server is clustered, the transactions will completely stop running within 12 hours.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resolution:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;To resolve this, we need to disable the “RMS Target Relationship Discovery” discovery and use Powershell to remove the discovered relationship from OpsMgr.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here’s a visual look at the problem:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Use the wizard to create the transactions:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb.png" width="711" height="616" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;EXCAS.OpsMgr.net is my CAS server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_1.png" width="722" height="497" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am going to enable the Active Sync and OWA tests:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_2.png" width="725" height="625" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;EX07a is a standalone Exchange server, EX1V1 is a clustered mailbox server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_3.png" width="717" height="619" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_4.png" width="721" height="621" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The discovery defaults to running every 24 hours, I changed it to 5 minutes for testing:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_5.png" width="630" height="537" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_6.png" width="683" height="713" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After giving the discoveries time to run (or just restarting the Health Service on the CAS server to force it), I go to the CAS Synthetic Transaction State view in the console and see that the objects are discovered.&amp;#160; I have an object for each Transaction to each Mailbox server (pay no attention to the unhealthy states in the screen shot, they are unrelated to this issue).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_7.png" width="1231" height="589" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Looking in the performance view, I can see that I am receiving performance data from the transactions to both Mailbox servers (I configured the transactions to run every 1 minute, default is every 15 minutes):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_8.png" width="1177" height="660" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After the RMS Target Relationship discovery runs, we are no longer seeing data from the transaction to the clustered mailbox server (the red line).&amp;#160; Normally you would see this within 12 hours of the transactions being created…I sped it up to run sooner to reproduce it easily:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_22.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_10.png" width="684" height="505" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Also, the state of the transaction object will remain the same as it was before the RMS Target Relationship discovery ran (until the problem is fixed)….if it was Healthy then, it will stay Healthy….if it was Unhealthy, it will stay Unhealthy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To resolve this we must do the following two things (both MUST be done):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1. Create an Override to disable the “RMS Target Relationship Discovery” discovery&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Go to Authoring\Object Discoveries&lt;/p&gt;  &lt;p&gt;Select “View all targets&amp;quot;&lt;/p&gt;  &lt;p&gt;Scope to “Exchange 2007 CAS Connectivity”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_26.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_12.png" width="637" height="547" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Select the “RMS Target Relationship Discovery” object – Overrides – Override the Object Discovery – For all objects of class: Root Management Server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_28.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_13.png" width="974" height="593" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Set an Override for Enabled = False:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_30.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_14.png" width="692" height="301" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now that the override is disabled, we will need to remove the relationships that were discovered by it.&amp;#160; To do this, we’ll use the Powershell command Remove-DisabledMonitoringObject.&amp;#160; Note that you MUST set the Enabled=False override mentioned above in order for this to work (if the discovery is not explicitly disabled, the Powershell command will not remove the objects discovered by it).&amp;#160; For more info on the Remove-DisabledMonitoringObject command, see Jonathan’s blog on it &lt;a href="http://blogs.technet.com/jonathanalmquist/archive/2008/09/14/remove-disabledmonitoringobject.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Just open the OpsMgr Command Shell and run Remove-DisabledMonitoringObject:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_32.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_15.png" width="776" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once the relationship is removed, the Transaction starts running again:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_36.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/Exchange2007SyntheticTransactionsagainst_65D/image_thumb_17.png" width="980" height="526" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bottom Line:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;If you use the Exchange 2007 Synthetic Transactions for CAS or Mailflow tests against a Clustered Mailbox server, the transactions will stop running within 12 hours.&lt;/li&gt;    &lt;li&gt;To fix this, you must disable the “RMS Target Relationship Discovery” discovery and run the Remove-DisabledMonitoringObject Powershell cmdlet.&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3283348" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx">Management Pack</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Exchange/default.aspx">Exchange</category></item><item><title>SQL Server Full Text Search Service Monitor</title><link>http://blogs.technet.com/jimmyharper/archive/2009/07/02/sql-server-full-text-search-service-monitor.aspx</link><pubDate>Thu, 02 Jul 2009 10:41:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3260651</guid><dc:creator>jimmyharper</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/jimmyharper/comments/3260651.aspx</comments><wfw:commentRss>http://blogs.technet.com/jimmyharper/commentrss.aspx?PostID=3260651</wfw:commentRss><description>&lt;P&gt;This issue is described in the SQL Server Management Pack Guide, but I wanted to blog it since I’ve seen a couple customers hit it.&lt;/P&gt;
&lt;P&gt;In the current version of the SQL Server Management Pack (version 6.0.6559.0), we have a monitor for the SQL Server Full Text Search Service which is targeted at the SQL 2005/2008 DB Engine classes.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_2.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb.png" width=833 height=496 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem is, this is an optional component in SQL Server and is not always installed.&amp;nbsp; So, for servers where this service is not installed, we will see a lot of the following alerts:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Alert Name:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Service Check Probe Module Failed Execution&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;or&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Service Check Data Source Module Failed Execution&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Alert Description:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Error getting state of service Error: 0x8007007b Details: The filename, directory name, or volume label syntax is incorrect. One or more workflows were affected by this. Workflow name: Microsoft.SQLServer.2005.DBEngine.FullTextSearchServiceMonitor Instance name: MSSQLSERVER Instance ID: {625091EA-A1D9-1857-802C-0D908C93A5BB} Management group: jimmyh_mg1 &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_10.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_10.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_4.png" width=836 height=348 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To fix this, all we need to do is disable this monitor on any SQL Server that does not have the Full Text Search Service installed.&amp;nbsp; The easiest way to do this is to create a group for all of the SQL Instances that do not have the service installed.&amp;nbsp; The Full Text Search Service name is one of the discovered properties for the DB Engine class and will be blank if the service is not installed:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_4.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_1.png" width=708 height=321 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To create a group of SQL instances that do not have it installed, we can just use the criteria “Does not match regular expression . (dot)”, like this:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_6.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_2.png" width=588 height=701 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_2.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then, just set an “Enabled=False” override on the monitor, targeted at this group:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_8.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_3.png" width=702 height=500 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Repeat the same steps to create the group and override for SQL 2008 DB Engines.&lt;/P&gt;
&lt;P&gt;One more thing that you’ll want to do with this monitor is set the “Alert only if startup type is automatic” override to False for clustered SQL Instances…..since the service will always be in a Manual startup mode.&lt;/P&gt;
&lt;P&gt;To do this, I create a group of Cluster SQL Instances where Full Text Search Service IS Installed:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_12.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_12.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_5.png" width=580 height=699 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And target the override at this group:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_14.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_14.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_6.png" width=699 height=503 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/f32844acbbb8_1F9C/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Again, repeat for SQL 2008 DB Engines.&lt;/P&gt;
&lt;P&gt;Attached is a sample MP that contains the above groups and overrides for SQL 2005 DB Engines.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;UPDATED:&lt;/P&gt;
&lt;P&gt;I've removed the original attachment and attached a .zip file that contains these MPs for both SQL 2005 and SQL 2008.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3260651" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/jimmyharper/attachment/3260651.ashx" length="3857" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Monitor/default.aspx">Monitor</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Service/default.aspx">Service</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Service+Monitor+SQL+Cluster/default.aspx">Service Monitor SQL Cluster</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx">Management Pack</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Full+Text+Search/default.aspx">Full Text Search</category></item><item><title>SQL Agent Job Discovery not working?</title><link>http://blogs.technet.com/jimmyharper/archive/2009/06/05/sql-agent-job-discovery-not-working.aspx</link><pubDate>Fri, 05 Jun 2009 05:36:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3250573</guid><dc:creator>jimmyharper</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/jimmyharper/comments/3250573.aspx</comments><wfw:commentRss>http://blogs.technet.com/jimmyharper/commentrss.aspx?PostID=3250573</wfw:commentRss><description>&lt;P&gt;The SQL Server Management Pack includes an option to discover and monitor SQL Server Agent Jobs for SQL 2000/2005/2008.&amp;nbsp; The Discovery for this is disabled by default:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_2.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb.png" width=697 height=240 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I ran into an issue recently where all Agent Jobs for specific SQL Servers were not being discovered.&amp;nbsp; Examining the event logs on the SQL Server, we see the following in the OpsMgr Event Log:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Operations Manager &lt;BR&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Health Service Modules &lt;BR&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6/4/2009 8:36:19 PM &lt;BR&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 21406 &lt;BR&gt;Task Category: None &lt;BR&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Warning &lt;BR&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic &lt;BR&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A &lt;BR&gt;Computer:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMDW.opsmgr.net &lt;BR&gt;Description: &lt;BR&gt;The process started at 8:36:18 PM failed to create System.Discovery.Data. Errors found in output: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 1\4595\SQLAgentJobDiscovery.vbs(106, 5) Microsoft VBScript runtime error: Type mismatch &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;Command executed:&amp;nbsp;&amp;nbsp;&amp;nbsp; "C:\Windows\system32\cscript.exe" /nologo "SQLAgentJobDiscovery.vbs" {974F57A5-5705-B6B2-B8DC-1CA0B433DCD4} {46913442-CAC1-7E38-89B4-1A6B462ED0D0} OMDW.opsmgr.net OMDW.opsmgr.net&amp;nbsp; OMDW\I01 I01 SQLAgent$I01" &lt;BR&gt;Working Directory:&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 1\4595\ &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;One or more workflows were affected by this.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;Workflow name: Microsoft.SQLServer.2008.AgentJobDiscoveryRule &lt;BR&gt;Instance name: SQLAgent$I01 &lt;BR&gt;Instance ID: {46913442-CAC1-7E38-89B4-1A6B462ED0D0} &lt;BR&gt;Management group: PROD1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The “Type mismatch” error typically means that some variable in the script is returning with an incorrect data type.&amp;nbsp; After examining the Discovery script and doing to troubleshooting, we determined that the problem was happening because the “Description” field for the Agent Job was NULL.&amp;nbsp; This can be confirmed by running the “sp_help_job” Stored Procedure against the MSDB database on the SQL Instance (which is exactly what the Discovery script does:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_4.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_1.png" width=913 height=307 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will also happen if any of the following properties of the job are NULL:&lt;/P&gt;
&lt;P&gt;job_id &lt;BR&gt;originating_server &lt;BR&gt;name &lt;BR&gt;description &lt;BR&gt;category &lt;BR&gt;owner &lt;/P&gt;
&lt;P&gt;We probably won't ever see this with the job_id, originating_server, category or name properties, but we've seen it with the description and owner properties.&lt;/P&gt;
&lt;P&gt;To correct this, we can simply enter some text in the description field of the Agent Job:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_6.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_2.png" width=945 height=658 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Note that the problem described above (Agent Job discovery failing when properties are NULL) happens on SQL 2005 and 2008 Agent Jobs.&amp;nbsp; SQL 2000 Agent Job Discovery does not use the VBScript, and does seem to work in this scenario, but the NULL values are populated with the values of other Agent Jobs, so it is not accurate.&lt;/P&gt;
&lt;P&gt;So, what if you have a very large number of SQL Servers and Agent Jobs and do not want to worry about making sure that all of them have text in the Description field?&amp;nbsp; To take care of this, I created a “workaround” version of the SQL Agent Job Discoveries that will discover these jobs and enters NULL for the NULL propeerty.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Import the “Microsoft.SQLServer.200x.Discovery.CustomAgentJobDiscovery.xml” management pack &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Disable the original Agent Job Discovery and enable the new one (“SQL Server 200x Custom Agent Job Discovery”):&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_8.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_3.png" width=750 height=184 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Verify that the Agent Jobs are discovered:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_10.png" mce_href="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_10.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_4.png" width=663 height=376 mce_src="http://blogs.technet.com/blogfiles/jimmyharper/WindowsLiveWriter/SQLAgentJobDiscoverynotworking_13BF7/image_thumb_4.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3250573" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/jimmyharper/attachment/3250573.ashx" length="11913" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Discovery/default.aspx">Discovery</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Type+Mismatch/default.aspx">Type Mismatch</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Agent+Job/default.aspx">Agent Job</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx">Management Pack</category></item><item><title>Configuring or Disabling Replication Monitoring in the Active directory Management pack</title><link>http://blogs.technet.com/jimmyharper/archive/2009/05/20/configuring-or-disabling-replication-monitoring-in-the-active-directory-management-pack.aspx</link><pubDate>Wed, 20 May 2009 08:30:10 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3243598</guid><dc:creator>jimmyharper</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.technet.com/jimmyharper/comments/3243598.aspx</comments><wfw:commentRss>http://blogs.technet.com/jimmyharper/commentrss.aspx?PostID=3243598</wfw:commentRss><description>&lt;p&gt;The latest version of the Active Directory Management Pack (ADMP) – version 6.0.6452.0 – contains some significant changes to Replication Monitoring.&amp;#160; The basic premise is the same, but the Rules and Monitors used have changed a bit.&lt;/p&gt;  &lt;p&gt;Here’s a quick overview of how Replication Monitoring works:&lt;/p&gt;  &lt;p&gt;Each Domain Controller runs the AD Replication Monitoring VBScript.&amp;#160; The first time the script runs, it creates an object for the DC in the OpsMgrLatencyMonitors container in each Active Directory Naming Context that is monitored (the options are Domain, Configuration, and Application; these can be configured via overrides).&amp;#160; By default, every 6th time the script runs (determined by the “Change Injection Frequency” override), the script will update the AdminDescription attribute on the DC’s objects in Active Directory with the current time (these objects can be seen in ADSIEdit.msc).&amp;#160; The script will also look at the objects for all other DCs in its local copy of the Directory.&amp;#160; To determine how long replication from each DCs is taking, the script will look at the whenCreated attribute (this tells the DC when that copy of the object arrived at this DC) and the AdminDescription attribute (this tells the DC when the object was updated).&amp;#160; The time difference between when the object was updated and when it arrived at this DC tells us how long it takes to replicate an object from the given DC.&lt;/p&gt;  &lt;p&gt;The script does a number of other things as well….more details on how all of the scripts in the ADMP work can be found in the old ADMP Technical Reference, found &lt;a href="http://www.microsoft.com/DownLoads/details.aspx?FamilyID=39055bed-9585-4c1c-bf51-58bb3da779e0&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&amp;#160; This technical reference was written for the original ADMP for MOM 2005, but &lt;em&gt;much&lt;/em&gt; of the information about how the ADMP scripts work still applies today.&lt;/p&gt;  &lt;p&gt;Back to the subject of this blog.&amp;#160; The previous version of the ADMP used a Monitor named “AD Replication Monitoring” to run the Replication Monitoring script.&amp;#160; It also had 4 rules that ran the script as well.&amp;#160; In the new version of the ADMP, the monitor has been “deprecated” and is disabled by default.&amp;#160; Several Rules have been created to run the script and alert on various issues.&amp;#160; The purpose of this change was to avoid alert storms when one Domain Controller stops replicating (previously, we would get an alert from each DC, now we get just one).&amp;#160; The downside of this change is that we now have fourteen (14) Rules that run the Replication Monitoring script.&amp;#160; That’s 14 rules for each OS version….so, 14 for Windows 2000 DCs, 14 for Server 2003 DCs, and 14 for Server 2008 DCs.&amp;#160; To confuse things a little more, some of the rules have the EXACT same display names.&lt;/p&gt;  &lt;p&gt;So, if you need to set overrides to configure or disable Replication Monitoring, they must be set on all of the following Rules:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;AD Replication is occurring slowly&lt;/font&gt; (there are three rules with this name)     &lt;br /&gt;&lt;font color="#ff0000"&gt;One or more domain controllers may not be replicating&lt;/font&gt; (there are three rules with this name)     &lt;br /&gt;&lt;font color="#ff0000"&gt;DC has failed to synchronize naming context with its replication partner&lt;/font&gt; (there are three rules with this name)     &lt;br /&gt;&lt;font color="#ff0000"&gt;All of the replication partners failed to replicate.      &lt;br /&gt;AD Replication Performance Collection - Metric Replication Latency      &lt;br /&gt;AD Replication Performance Collection - Metric Replication Latency:Minimum      &lt;br /&gt;AD Replication Performance Collection - Metric Replication Latency:Maximum      &lt;br /&gt;AD Replication Performance Collection - Metric Replication Latency:Average&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Why are some of these rules triplicated?&amp;#160; Behind the scenes, these are written to distinguish between replication problems from different versions of Windows Domain Controllers.&amp;#160; For example, if you look in the XML for the ADMP, you can see that the three “AD Replication is occurring slowly” rules have the following IDs:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Active_Directory_Latency_Alert_Rule_For_Windows2000 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Active_Directory_Latency_Alert_Rule_For_Windows2003 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Active_Directory_Latency_Alert_Rule_For_Windows2008&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So, for example, each of these rules applies to a Windows Server 2003 Domain Controller, and watches for replication problems from the specified Domain Controller version.&lt;/p&gt;  &lt;p&gt;Again, all of the above rules run the same Replication Monitoring script, so if you need to configure overrides for the script, you must set them on all of these rules.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3243598" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Monitor/default.aspx">Monitor</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/ADMP+Active+Directory+Replication+Monitoring/default.aspx">ADMP Active Directory Replication Monitoring</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Replication+Monitoring/default.aspx">Replication Monitoring</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/ADMP/default.aspx">ADMP</category><category domain="http://blogs.technet.com/jimmyharper/archive/tags/Management+Pack/default.aspx">Management Pack</category></item></channel></rss>