<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Quae Nocent Docent</title>
	<atom:link href="http://nocentdocent.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nocentdocent.wordpress.com</link>
	<description>What hurts, teaches - Ordinary tales from management trenches</description>
	<lastBuildDate>Wed, 16 Dec 2009 08:13:08 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='nocentdocent.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1fa8c0d2a79a72ea98e193980c80a95d?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Quae Nocent Docent</title>
		<link>http://nocentdocent.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nocentdocent.wordpress.com/osd.xml" title="Quae Nocent Docent" />
		<item>
		<title>Exchange 2010 monitoring with OpsMgr</title>
		<link>http://nocentdocent.wordpress.com/2009/12/07/exchange-2010-monitoring-with-opsmgr/</link>
		<comments>http://nocentdocent.wordpress.com/2009/12/07/exchange-2010-monitoring-with-opsmgr/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 11:35:17 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[MP]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/12/07/exchange-2010-monitoring-with-opsmgr/</guid>
		<description><![CDATA[Last week I attended an interesting session on Exchange 2010 monitoring and backup with System Center host by the System Center Influencer guys (https://connect.microsoft.com/SystemCenterCommunity?wa=wsignin1.0).
Two main topics has been covered:

The new Exchange 2010 Management Pack for OpsMgr
Using DPM to backup Exchange 2010

In this post I will focus on the first topic, but I want to add [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=476&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last week I attended an interesting session on Exchange 2010 monitoring and backup with System Center host by the System Center Influencer guys (<a title="https://connect.microsoft.com/SystemCenterCommunity?wa=wsignin1.0" href="https://connect.microsoft.com/SystemCenterCommunity?wa=wsignin1.0">https://connect.microsoft.com/SystemCenterCommunity?wa=wsignin1.0</a>).</p>
<p>Two main topics has been covered:</p>
<ol>
<li>The new Exchange 2010 Management Pack for OpsMgr</li>
<li>Using DPM to backup Exchange 2010</li>
</ol>
<p>In this post I will focus on the first topic, but I want to add that you should take a serious look at DPM and when you do this, please try to have a new perspective. Do not try to map what you&#8217;re currently doing with your backup and recovery solution to DPM, rather you should learn DPM paradigm and see your data assets in this new perspective. It is a new backup paradigm and you&#8217;ll need to do things differently&#8230; the worst DPM implementations I saw were the ones where DPM has been used like a &quot;traditional&quot; backup software. Not the way to go. </p>
<p>The only pitfalls I must make you aware of is that you need to wait for the next version of DPM to protect Exchange 2010, and this is a pity given the tons of functionality in DPM and the fact that current DPM users must delay Exchange 2010 adoption &#8217;til the release of DPM. </p>
<p>Returning to OpsMgr, the MP has been released soon after Exchange 2010 delivery, in this case we have no road block. We can adopt Exchange 2010 and being able to monitor it with our current OpsMgr infrastructure.</p>
<p>SO what&#8217;s new in this MP:</p>
<p>· Alert correlation</p>
<p>· Alert classification</p>
<p>· Mail flow statistics reporting</p>
<p>· Full protocol synthetic transaction coverage</p>
<p>· Service-oriented reporting</p>
<p>· Exchange aware availability modeling</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/12/image1.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/12/image_thumb1.png?w=644&#038;h=481" width="644" height="481" /></a>&#160;</p>
<p>The most interesting stuff in there is the new correlation engine, it&#8217;s a stand alone service that help reducing noise and who is in charge of generating alerts into OpsMgr via the SDK. A brand new approach in MPs and something I will return on in future posts.</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/476/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/476/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/476/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/476/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/476/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/476/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/476/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/476/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/476/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/476/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=476&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/12/07/exchange-2010-monitoring-with-opsmgr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/12/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Decommissioning a gateway server when used with Sites</title>
		<link>http://nocentdocent.wordpress.com/2009/12/07/decommissioning-a-gateway-server-when-used-with-sites/</link>
		<comments>http://nocentdocent.wordpress.com/2009/12/07/decommissioning-a-gateway-server-when-used-with-sites/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 11:04:20 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Gateway]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/12/07/decommissioning-a-gateway-server-when-used-with-sites/</guid>
		<description><![CDATA[Our outsourced service based on OpsMgr uses a gateway infrastructure to monitor customers sites. Every customer has an appropriate number of gateways reporting to our data center. We used the site concept to map our customers, so every customer is a site. When we approve the gateway we specify the site name. From time to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=473&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Our outsourced service based on OpsMgr uses a gateway infrastructure to monitor customers sites. Every customer has an appropriate number of gateways reporting to our data center. We used the site concept to map our customers, so every customer is a site. When we approve the gateway we specify the site name. From time to time gateways need to be replaced, moved or added. </p>
<p>Replacing a gateway with a new one is the main topic of this article, and no, it&#8217;s not easy nor straightforward.</p>
<p>Let&#8217;s recap the scenario:</p>
<ul>
<li>gateway server needs to be replaced</li>
<li>agents are assigned to the gateway at install time, no Active Directory integration</li>
<li>gateway is associated to a Site at approval time</li>
</ul>
<p>The common action plan is the following:</p>
<ol>
<li>add a new gateway ad associate it to the same Site of the old one</li>
<li>from OpsMgr console move the agents to the newly added gateway</li>
<li>uninstall the old gateway</li>
<li>remove the gateway approval with microsoft.enterprisemanagement.gatewayapprovaltool and action=delete</li>
</ol>
<p>Adding a new gateway is a no brainer, the product documentation is clear enough so I won&#8217;t spend time on it. Moving the agent to a new MS is straightforward as well, and you can do it from the UI, right? Wrong.</p>
<p>Let&#8217;s start with a quick background on how Management Servers (MS) and agents work together, remember the gateway is a type of MS. When you change the MS agent for an agent, the old one removes the agent from the managed agents, the new one, on the other side, adds the agent to the authorized list. If the agent is not in the authorized list the MS won&#8217;t respond to it and it will register an event in the event log saying the agent is not authorized for this MS. Agents get their configuration information from the assigned MS a MS switch is part of this configuration. Now the question is: how can an agent learn it should refer to a new MS? In this situation simply it cannot. We have closed our agent out of the door. The agent cannot receive any configuration from old MS because it is not in the authorized list, so it won&#8217;t learn it should get its configuration from the new MS. I saw a few agents trying to refer to the RMS in this situation, saying something like &quot;failing over to secondary MS (RMS)&quot;, I don&#8217;t know if this is the expected behavior to avoid this deadlock, but for sure it cannot work for gateways. Gateways are in untrusted domains their managed agents are not able to reach the RMS.</p>
<p>If you are in this situation, the first thing to do is to regain control of your agents, to do so you should reset your agents to the old gateway. </p>
<p>Now that we&#8217;re in control once again let&#8217;s do a different action plan:</p>
<ol>
<li>add the new MS to the secondary MS of the agents</li>
<li>Wait for the new configuration to propagate (21025 event)</li>
<li>Switch the primary and secondary server so that the new MS will become the primary one. </li>
<li>Remove the old MS from the agents</li>
</ol>
<p>This can be done via Active Directory integration or via powershell. Since we cannot use AD, let&#8217;s share a simple powershell script:</p>
<p>#old ms   <br />$msp=Get-ManagementServer | where {$_.Name -eq &#8216;gw1.somedomain.it&#8217;}    <br />#new ms    <br />$ms=Get-ManagementServer | where {$_.Name -eq &#8216;gw2.somedomain.it}    <br />$failoverServers = New-Object System.Collections.Generic.List&#8220;1&quot;[[Microsoft.EnterpriseManagement.Administration.ManagementServer,Microsoft.EnterpriseManagement.OperationsManager,Version=6.0.4900.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]]&quot;    <br />$failoverServers.Add($ms)    <br />$agents = $msp.GetAgentManagedComputers()    <br />foreach ($a in $agents)    <br />{    <br />&#160;&#160;&#160; $a.SetManagementServers($msp, $failoverServers)    <br />} </p>
<p>The script add the new gateway ($ms) as a failover server to the agents managed by the old one ($msp). You can then test the move from UI. Once you have moved a few agents and checked their working as expected with the new gateway, you can move over the other agents. But first remember to give enough time to the agents to get the new configuration (they must learn the new failover MS list), if not you will close the agent out of the door once again. </p>
<p># wait for 21025 on every MS and agent and reset the primary GW and the failover MS list   <br />$agents = $msp.GetAgentManagedComputers()</p>
<p>foreach ($a in $agents)   <br />{    <br />&#160;&#160;&#160; $a.SetManagementServers($ms, $null)    <br />}</p>
<p>Steps 1 and 2 completed. </p>
<p>Removing the gateway binaries from the old gateway is a matter of running the uninstall procedure, by the way you can simply turn off the gateway and you&#8217;ll get the same effect. In either case you must manually remove the gateway from the approved gateways list of your OpsMgr management group. </p>
<p>Let&#8217;s move on to step 4. Using the gateway approval tool with /Action=delete we are supposed to be able to remove the gateway:</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/12/image.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/12/image_thumb.png?w=644&#038;h=48" width="644" height="48" /></a> </p>
</p>
<p>Interesting, isn&#8217;t it? We just removed all the agents from the gateway management space, but still we got this error, and the gateway stays there.</p>
<p>Using SQL trace is simple to track down the steps performed by the tool:</p>
<ol>
<li>it looks for a Microsoft.SystemCenter.GatewayManagementServer with the given gateway name</li>
<li>it looks for relationships of type Microsoft.SystemCenter.HealthServiceCommunication and Microsoft.SystemCenter.HealthServiceShouldManageEntity related to the gateway</li>
</ol>
<p>Replaying the queries becomes evident the gateway has still a relationship of type HealthServiceShouldManageEntity with the associated Site. To remove the gateway we must remove that relationship, but we have no supported way to do that, at least as far as I know. So this is my <strong>*unsupported*</strong> way to decommission a gateway when it has been associated with a Site.</p>
<p>First check if we really are in the situation where the only relationship still in place is the one related to the site (if not we must check what&#8217;s left). For this reason I will split the query in two, the first part will return a list of relationships and the second one will mark the relationship deleted:</p>
<p>declare @nodeHS nvarchar(255)</p>
<p>Set @nodeHS=N&#8217;Microsoft.SystemCenter.HealthService:gateway.somedomain.it&#8217;</p>
<p>(SELECT *</p>
<p>FROM dbo.RelationshipGenericView </p>
<p>WHERE ((RelationshipGenericView.[MonitoringRelationshipClassId] = dbo.fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceShouldManageEntity()) AND (((dbo.[RelationshipGenericView].[IsDeleted] = 0))))</p>
<p>AND ([RelationshipGenericView].[SourceMonitoringObjectId] </p>
<p>IN (select BaseManagedEntityId from BaseManagedEntity where FullName <a href="mailto:=@NodeHS">=@NodeHS</a>)))</p>
<p>If we have just one releationship left with the site, we can mark the relationship deleted (unsupported, you know):</p>
<p>update Relationship set IsDeleted=1 where RelationshipId=&#8217;Relationship GUID returned by the previous query&#8217;</p>
<p>In conclusion, decommissioning and replacing a gateway server has some caveats, if you add to the equation a site relationship then you need to perform the above hack.</p>
<p>Let me know if this works for you.</p>
<p>For future reference I list the queries performed by the gateway approval tool:</p>
<p>exec sp_executesql N&#8217;&#8211; MTV_SelectProperty_c1721bcc-35f7-5a49-5d5f-6880687c3d48 &lt;ManagedTypeId,PrincipalName0&gt;</p>
<p>SELECT [MTV_HealthService].[BaseManagedEntityId], [MTV_HealthService].[DisplayName_55270A70_AC47_C853_C617_236B0CFF9B4C], [MTV_HealthService].[ActionAccountIdentity], [MTV_HealthService].[ActiveDirectoryManaged], [MTV_HealthService].[AuthenticationName], [MTV_HealthService].[CreateListener], [MTV_HealthService].[HeartbeatEnabled], [MTV_HealthService].[HeartbeatInterval], [MTV_HealthService].[InstalledBy], [MTV_HealthService].[InstallTime], [MTV_HealthService].[IsAgent], [MTV_HealthService].[IsGateway], [MTV_HealthService].[IsManagementServer], [MTV_HealthService].[IsManuallyInstalled], [MTV_HealthService].[IsRHS], [MTV_HealthService].[MaximumQueueSize], [MTV_HealthService].[MaximumSizeOfAllTransferredFiles], [MTV_HealthService].[PatchList], [MTV_HealthService].[Port], [MTV_HealthService].[ProxyingEnabled], [MTV_HealthService].[RequestCompression], [MTV_HealthService].[Version], [MTV_HealthService].[AutoApproveManuallyInstalledAgents_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[ManagementServerSCP_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[NumberOfMissingHeartBeatsToMarkMachineDown_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[ProxyAddress_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[ProxyPort_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[RejectManuallyInstalledAgents_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[UseProxyServer_9189A49E_B2DE_CAB0_2E4F_4925B68E335D], [MTV_HealthService].[WebConsoleUrl_F9069CA9_A790_E274_0C2C_DE210E57F67C], [MTV_HealthService].[SiteId_CECAAFDA_33B6_B628_0CDA_445E21B7291D], [MTV_HealthService].[SiteName_CECAAFDA_33B6_B628_0CDA_445E21B7291D], [MTV_HealthService].[PrincipalName] FROM dbo.[MTV_HealthService]</p>
<p>INNER JOIN dbo.[TypedManagedEntity] AS TME ON TME.[BaseManagedEntityId] = [MTV_HealthService].[BaseManagedEntityId] </p>
<p>WHERE (MTV_HealthService.[PrincipalName] LIKE @PrincipalName0) AND (((TME.[ManagedTypeId] = @ManagedTypeId)))&#8217;,N&#8217;@ManagedTypeId uniqueidentifier,@PrincipalName0 ntext&#8217;,@ManagedTypeId=&#8217;C1721BCC-35F7-5A49-5D5F-6880687C3D48&#8242;,@PrincipalName0=N&#8217;gateways.somedomain.it&#8217;</p>
<p>&#8211; TypeID &#8216;C1721BCC-35F7-5A49-5D5F-6880687C3D48&#8242; = Microsoft.SystemCenter.GatewayManagementServer</p>
<p>exec sp_executesql N&#8217;&#8211; RelationshipWithCriteria &lt;TargetEntityId0,IsDeleted0,RelationshipTypeId0&gt;</p>
<p>SELECT [Relationship].[RelationshipId], [Relationship].[TargetEntityId], [Relationship].[IsDeleted] FROM dbo.Relationship </p>
<p>WHERE Relationship.[TargetEntityId] = @TargetEntityId0 AND Relationship.[IsDeleted] = @IsDeleted0 AND Relationship.[RelationshipTypeId] = @RelationshipTypeId0&#8242;,N&#8217;@TargetEntityId0 uniqueidentifier,@IsDeleted0 bit,@RelationshipTypeId0 uniqueidentifier&#8217;,@TargetEntityId0=&#8217;FC75E426-26C5-B237-FE9F-F14F540CCB0E&#8217;,@IsDeleted0=0,@RelationshipTypeId0=&#8217;37848E16-37A2-B81B-DAAF-60A5A626BE93&#8242;</p>
<p>&#8211; Relationship Microsoft.SystemCenter.HealthServiceCommunication</p>
<p>exec sp_executesql N&#8217;&#8211; RelationshipWithCriteria &lt;SourceEntityId0,IsDeleted0,RelationshipTypeId0&gt;</p>
<p>SELECT [Relationship].[RelationshipId], [Relationship].[SourceEntityId], [Relationship].[IsDeleted] FROM dbo.Relationship </p>
<p>WHERE Relationship.[SourceEntityId] = @SourceEntityId0 AND Relationship.[IsDeleted] = @IsDeleted0 AND Relationship.[RelationshipTypeId] = @RelationshipTypeId0&#8242;,N&#8217;@SourceEntityId0 uniqueidentifier,@IsDeleted0 bit,@RelationshipTypeId0 uniqueidentifier&#8217;,@SourceEntityId0=&#8217;FC75E426-26C5-B237-FE9F-F14F540CCB0E&#8217;,@IsDeleted0=0,@RelationshipTypeId0=&#8217;2F71C644-E092-B80A-040B-5C81BA1EC353&#8242;</p>
<p>&#8211; Relationship Microsoft.SystemCenter.HealthServiceShouldManageEntity</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/473/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=473&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/12/07/decommissioning-a-gateway-server-when-used-with-sites/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/12/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>The case of post dated monitoring data</title>
		<link>http://nocentdocent.wordpress.com/2009/11/16/the-case-of-post-dated-monitoring-data/</link>
		<comments>http://nocentdocent.wordpress.com/2009/11/16/the-case-of-post-dated-monitoring-data/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 07:51:21 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/11/16/the-case-of-post-dated-monitoring-data/</guid>
		<description><![CDATA[A few week ago a customer of ours has been hit by a time issue, the internal time reference server jumped to anno domini 2020. Since this happened during the weekend it took a few hours to be fixed, in the meantime opsmgr agents did their job posting data to the opsmgr infrastructure. The net [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=469&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A few week ago a customer of ours has been hit by a time issue, the internal time reference server jumped to anno domini 2020. Since this happened during the weekend it took a few hours to be fixed, in the meantime opsmgr agents did their job posting data to the opsmgr infrastructure. The net result was a bunch of monitors unhealthy with last changed time set to 2020. Annoying I thought I need to reset all the broken monitors via powershell. Alas this was not only annoying, but blocking as well. Monitors won’t reset nor their state change in any case.</p>
<p>First consideration the opsmgr data access layer should block any data insertion with a too large time skew from its own date time reference (10’ to 15’ should be the maximum threshold immo). </p>
<p>Anyway, time for some reverse engineering once again.</p>
<p>First of all a few queries to identify the bogus state data. We have two tables involved here <strong>StateChangeEvent </strong>and <strong>State. </strong>The former collects all event state events, the ones you can check in health explorer, the latter reports the last known state for any given managed entity / monitor pair.</p>
<p>Easy enough, let check for all data updated after December 31st</p>
<p>select * from dbo.StateChangeEvent    <br />where TimeGenerated &gt; &#8216;12-31-2009&#8242; </p>
<p>select ME.FullName, M.MonitorName, State.* from dbo.State with (nolock)    <br />inner join dbo.BaseManagedEntity ME with (nolock) on ME.BaseManagedEntityId=State.BaseManagedEntityId     <br />inner join dbo.Monitor M with (nolock) on M.MonitorId=State.MonitorId     <br />where State.LastModified &gt; &#8216;12-31-2009&#8242; </p>
<p>Obviously my first though has been lets modify the LastModified field, but here we’re in the unsupported realm and before any mods a further analisys of the insight working needs to be accomplished. The core stoerd procedure for any stage change turned to be&#160; </p>
<p>PROCEDURE [dbo].[p_StateChangeEventProcess]    <br />(&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; @BaseManagedEntityId uniqueidentifier,     <br />&#160;&#160;&#160; @EventOriginId uniqueidentifier,     <br />&#160;&#160;&#160; @MonitorId uniqueidentifier,     <br />&#160;&#160;&#160; @NewHealthState tinyint,     <br />&#160;&#160;&#160; @OldHealthState tinyint,&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; @TimeGenerated datetime,     <br />&#160;&#160;&#160; @Context nvarchar(max) = NULL     <br />)</p>
<p>this one in turns calls</p>
<p>PROCEDURE [dbo].[p_StateUpsert]    <br />(     <br />&#160;&#160;&#160; @BaseManagedEntityId uniqueidentifier,     <br />&#160;&#160;&#160; @MonitorId uniqueidentifier,     <br />&#160;&#160;&#160; @HealthState tinyint,     <br />&#160;&#160;&#160; @LastModified datetime     <br />)     </p>
<p>and if p_StateUpsert returns with success it will insert a row in the StateChangeEvent table.</p>
<p>p_StateUpsert, among other checks, sets a control on the state update date time if it is earlier in the timeline respect the last time a monitor state has been updated the state change is discarded. This makes sense since state change are not guaranteed to arrive in chronological order. At the same time without a control on a time skew we can have a dos here.</p>
<p>Anyway from my analysis the LastModified field can be safely changed (still unsupported realm):</p>
<p>update dbo.StateChangeEvent set TimeGenerated=TimeAdded    <br />where TimeGenerated &gt; &#8216;12-31-2009&#8242; </p>
<p>update dbo.State set LastModified = GETUTCDATE()    <br />where State.LastModified &gt; &#8216;12-31-2009&#8242;</p>
<p>From this change on state changes will restart to flow in.</p>
<p>Issues: monitor needs to be reset <strong>or</strong> you must wait for the first state change for them to be updated <strong>or</strong> you could use Marius’ utility <a title="Tool- OpsMgr 2007 - RuntimeHealthExplorer" href="http://blogs.msdn.com/mariussutara/archive/2009/06/03/tool-opsmgr-2007-runtimehealthexplorer.aspx">Tool- OpsMgr 2007 – RuntimeHealthExplorer</a> <strong>or</strong> you could use a powershell script to reset all the postdated monitors. The basic statements need to be:</p>
<p>$obj = Get-MonitoringObject -id:&lt;&lt;basemanagedentityid from previous queries&gt;&gt;</p>
<p>$obj.ResetMonitoringState([guid]’&lt;&lt;monitorid from previous queries&#8217;)</p>
<p>&#160;</p>
<p>Last Warning: if you reset the monitor from UI and from a Watcher view then the new healthstate won’t rollup (at least in my env). For example if you reset any unit monitor related to a HealthService starting from the Health Explorer for the related HealthServiceWatcher, the unit monitor will reset but the new status won’t rollup. If you do the same reset from the HealthService Health Explorer view it will rollup.</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/469/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=469&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/11/16/the-case-of-post-dated-monitoring-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>
	</item>
		<item>
		<title>A rollup you don&#8217;t want to miss</title>
		<link>http://nocentdocent.wordpress.com/2009/11/07/a-rollup-you-dont-want-to-miss/</link>
		<comments>http://nocentdocent.wordpress.com/2009/11/07/a-rollup-you-dont-want-to-miss/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 11:02:56 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[KB]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/11/07/a-rollup-you-dont-want-to-miss/</guid>
		<description><![CDATA[If you’re still running OpsMgr 2007 SP1 you definitely need to apply the rollup package has been released yesterday (finally): Update Rollup for Operations Manager 2007 Service Pack 1 (KB971541).
It should set an end to the patching blues I complained so many times about.
Hopefully a similar rollup will be delivered for R2 sooner than later [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=467&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you’re still running OpsMgr 2007 SP1 you definitely need to apply the rollup package has been released yesterday (finally): <a title="Update Rollup for Operations Manager 2007 Service Pack 1 (KB971541)" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=05d7785d-fe69-48bc-8dfa-72a77c8936bf">Update Rollup for Operations Manager 2007 Service Pack 1 (KB971541)</a>.</p>
<p>It should set an end to the patching blues I complained so many times about.</p>
<p>Hopefully a similar rollup will be delivered for R2 sooner than later from what I know. Some issues fixed in SP1 are still present in R2. </p>
<p>In the and my advice is if you’re still on SP1 it is still a good idea to move to R2.</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i> </p>
<p>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=467&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/11/07/a-rollup-you-dont-want-to-miss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>
	</item>
		<item>
		<title>Failover cluster monitoring &#8211; quick insight</title>
		<link>http://nocentdocent.wordpress.com/2009/11/07/failover-cluster-monitoring-quick-insight/</link>
		<comments>http://nocentdocent.wordpress.com/2009/11/07/failover-cluster-monitoring-quick-insight/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 10:57:12 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Failover cluster]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/11/07/failover-cluster-monitoring-quick-insight/</guid>
		<description><![CDATA[While I was trying to understand why my cluster nodes won’t dismiss I dug a little more inside cluster monitoring with opsmgr. As usual I have&#160; no access to source code so I can go wrong on some assumptions.
The core logic behind cluster discovery and management is coded (natively) in mommodules.dll.
 
The dll exports:

ClusterGroupStateChange the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=466&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While I was trying to understand why my cluster nodes won’t <a href="http://nocentdocent.wordpress.com/2009/10/18/r2-and-cluster-monitoring-time-is-running-out/" target="_blank">dismiss</a> I dug a little more inside cluster monitoring with opsmgr. As usual I have&#160; no access to source code so I can go wrong on some assumptions.</p>
<p>The core logic behind cluster discovery and management is coded (natively) in mommodules.dll.</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/11/image.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/11/image_thumb.png?w=244&#038;h=41" width="244" height="41" /></a> </p>
<p>The dll exports:</p>
<ul>
<li>ClusterGroupStateChange the name gives us some clues </li>
<li>ClusterDiscovery this one is used by the discovery workflow </li>
</ul>
<p>Basically every cluster node discovers every resource group (Virtual Server) in the cluster and establish a relationship of type HealthServiceShouldManageEntity. This tells OpsMgr infrastructure to route the workflows for any Virtual Server to every cluster node. In this scenario every cluster node receives all the workflows even for VS it is not owning at the moment. Obviously we just want the owning node to monitor the proper VS. Without some custom logic here we would have an issue, in fact the agent has builtin logic to understand which VS it is supposed to manage (i.e. it is owning). On the passive nodes the workflows get unloaded. Second issue to face is the management of VS failover (i.e. when a resource group changes owning node). From what I understand the agent uses the ClusterGroupStateChange to understand when a VS changes ownership, I measured a 60” maximum delay from resource group failover to workflows reload on the proper node. So far so good, the agent (as we expect) is able to manage the VS where ever it is. I had a couple of cases where this was not working properly on SP1 and it resolved restarting the health service.</p>
<p>One more thing to add, the VSs are managed by the healthservice as a proxied systems, this has an important implication if you’re a MP author: all the workflows you want to execute against a VS must be tagged as remotable=”true”</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/11/image1.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/11/image_thumb1.png?w=644&#038;h=15" width="644" height="15" /></a> </p>
</p>
<p>If you miss this important requirement you’ll get event id 1207 after the agent reloads the workflows</p>
</p>
<p><font size="2" face="Courier New">Event Type: Warning</font></p>
<p><font size="2" face="Courier New">Event Source: HealthService</font></p>
<p><font size="2" face="Courier New">Event Category: Health Service </font></p>
<p><font size="2" face="Courier New">Event ID: 1207</font></p>
<p><font size="2" face="Courier New">Date: 10/17/2009</font></p>
<p><font size="2" face="Courier New">Time: 3:01:23 PM</font></p>
<p><font size="2" face="Courier New">User: N/A</font></p>
<p><font size="2" face="Courier New">Computer: ARES1</font></p>
<p><font size="2" face="Courier New">Description:</font></p>
<p><font size="2" face="Courier New">Rule/Monitor &quot;QND.Test.Cluster.LogEvent&quot; running for remote instance &quot;XXXX.progel.org&quot; with id:&quot;{A16D2CDA-378D-E9AC-7913-404A9999BEEE}&quot; will be disabled as it is not remotable. Management group &quot;Progel Labs&quot;.</font></p>
<p>This is it, straightforward but useful if you need to debug issues on your clustered agents. </p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/466/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=466&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/11/07/failover-cluster-monitoring-quick-insight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/11/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows Scheduled task MP on MP catalog</title>
		<link>http://nocentdocent.wordpress.com/2009/10/31/windows-scheduled-task-mp-on-mp-catalog/</link>
		<comments>http://nocentdocent.wordpress.com/2009/10/31/windows-scheduled-task-mp-on-mp-catalog/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 11:17:50 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[MP]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/10/31/windows-scheduled-task-mp-on-mp-catalog/</guid>
		<description><![CDATA[The Progel Windows Scheduled Task MP is now available from the MP catalog. We have received a single alert it has issues on extended character set locales (i.e. Traditional Chinese) but with too few details at the moment to assess if it’s our own bug or something external to us. If you manage to try [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=459&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The Progel Windows Scheduled Task MP is now available from the MP catalog. We have received a single alert it has issues on extended character set locales (i.e. Traditional Chinese) but with too few details at the moment to assess if it’s our own bug or something external to us. If you manage to try the MP and encounter any issue drop an email to <a href="mailto:sst@progel.it">sst@progel.it</a>.</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/459/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=459&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/10/31/windows-scheduled-task-mp-on-mp-catalog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>
	</item>
		<item>
		<title>Disk performance reporting</title>
		<link>http://nocentdocent.wordpress.com/2009/10/31/disk-performance-reporting/</link>
		<comments>http://nocentdocent.wordpress.com/2009/10/31/disk-performance-reporting/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 11:11:57 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/10/31/disk-performance-reporting/</guid>
		<description><![CDATA[Disk performance reporting and trending is probably the most difficult part of performance troubleshooting and capacity planning and trending. During the years I used several counters just to understand none of them can give a synthetic and accurate answer on disk performance. Ever tried to user % idle time or % disk time? Or Avg [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=458&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Disk performance reporting and trending is probably the most difficult part of performance troubleshooting and capacity planning and trending. During the years I used several counters just to understand none of them can give a synthetic and accurate answer on disk performance. Ever tried to user % idle time or % disk time? Or Avg queue length if that matters. In the last few years I standardized on Avg Disk Sec / read / Write / Transfer as a single indicator of disk responsiveness. Generally I take 20ms to 30ms as a threshold should not&#160; be exceeded on average.</p>
<p>However, even these counters are prone to errors (I don’t know when the OS team will change the perf counters architecture, but it will never be too early). First of all you must be aware of the following issues that arise with virtualized Windows 2003 servers with more than one core:</p>
<ul>
<li><a title="http://blogs.technet.com/yongrhee/archive/2009/08/04/disk-performance-counters-are-high-are-you-running-into-the-usepmtimer-rtsc-time-drift-issue.aspx" href="http://blogs.technet.com/yongrhee/archive/2009/08/04/disk-performance-counters-are-high-are-you-running-into-the-usepmtimer-rtsc-time-drift-issue.aspx">http://blogs.technet.com/yongrhee/archive/2009/08/04/disk-performance-counters-are-high-are-you-running-into-the-usepmtimer-rtsc-time-drift-issue.aspx</a></li>
<li><a href="http://support.microsoft.com/kb/895980" target="_blank">Programs that use the QueryPerformanceCounter function may perform poorly in Windows Server 2000, in Windows Server 2003, and in Windows XP</a></li>
</ul>
<p>But issues are there to hit on Windows 2008 as well. Look at the following table that reports Avg Disk sec / Transfer on a Windows 2008 server:</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/10/image13.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/10/image_thumb13.png?w=644&#038;h=456" width="644" height="456" /></a> </p>
<p>As you can see, among “normal” values (0,xxx , is the decimal separator in Italy), we have clearly bad ones. It is obvious the server is not taking 93” or 3139” seconds (little less than 1 hour) to execute an I/O on average. The presence of these bad values can wrack havoc your reporting experience, the average of the above values is 285”, now it is clear this cannot be the case.</p>
<p>I didn’t find a root cause for this behavior. I can observe it on several Windows 2008 servers with a predominance of hyper-v hosts, it can be hardware related or just a bug in the perf counter (immo both), in any case your reports are doomed.</p>
<p>The only thing I can advice on is to change your SQL query to filter out obviously bad values. For example filtering out response time above 2 seconds, changes my average on the period to 0.029 seconds or 29 msec that denotes a fairy busy storage subsystem.</p>
<p>If I manage to find more info on this issue I’ll keep you posted, in the meantime take your reports on disk response time with a grain of salt.</p>
<p> &#8211; Daniele
<p><i>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</i></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/458/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/458/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/458/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/458/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/458/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/458/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/458/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/458/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/458/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/458/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=458&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/10/31/disk-performance-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/10/image_thumb13.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>R2 and cluster monitoring &#8211; issues and pitfalls</title>
		<link>http://nocentdocent.wordpress.com/2009/10/18/r2-and-cluster-monitoring-time-is-running-out/</link>
		<comments>http://nocentdocent.wordpress.com/2009/10/18/r2-and-cluster-monitoring-time-is-running-out/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 17:28:20 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Failover cluster]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/10/18/r2-and-cluster-monitoring-time-is-running-out/</guid>
		<description><![CDATA[I think it’s time to wrap the various answers we can find on cluster monitoring and decommissioning in R2.
Failover clustering is an high availability solution and my quote is “if you want to keep it HA you need to monitor it”. So we all expect OpsMgr to do an egregious job in monitoring failover clusters. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=449&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I think it’s time to wrap the various answers we can find on cluster monitoring and decommissioning in R2.</p>
<p>Failover clustering is an high availability solution and my quote is “if you want to keep it HA you need to monitor it”. So we all expect OpsMgr to do an egregious job in monitoring failover clusters. In some respect it does but you must be aware of glitches that are still around.</p>
<p>I observed at least 3 issues on failover cluster monitoring:</p>
<ol>
<li>abnormal CPU usage on the cluster node and on the controlling management server</li>
<li>simply put you cannot decommission a cluster in a supported way</li>
<li>the agentless managed via in the administration space of the monitoring console is just useless</li>
<li>cluster discovery is noisy</li>
</ol>
<p><strong>Abnormal CPU usage</strong> is caused by internal tasks taking the wrong route. In some cases the config service on the RMS thinks resources are on the wrong node (i.e a node that’s not owning the resources) and sends health recalculation tasks to that node. In this cases you’ll see the following:</p>
<ul>
<li>healthservice edb grows we had examples of &gt; 3GB, this grow is caused by tasks queuing in</li>
<li>healthservice.exe on the affected node consumes up to one cpu core</li>
<li>healthservice.exe on the primary management server registers an increased cpu usage</li>
</ul>
<p>We’re waiting for a fix from PSS, at the time the only work around is a group failover, but hey I’m supposed to run critical applications on my clusters a failover cannot be considered a workaround. Btw things can return bad after a while, so I would define this a temporarily rag that will break again sooner or later.</p>
<p><strong>Decommissioning</strong> is another issue, the short story is that you cannot remove agents from cluster nodes, but you cannot remove the agents from your console. In other words you have zombies in console.</p>
<p>There’s an *unsupported* workaround here <a title="http://ops-mgr.spaces.live.com/blog/cns!3D3B8489FCAA9B51!163.entry" href="http://ops-mgr.spaces.live.com/blog/cns!3D3B8489FCAA9B51!163.entry">http://ops-mgr.spaces.live.com/blog/cns!3D3B8489FCAA9B51!163.entry</a> and a discussion thread here <a href="http://social.technet.microsoft.com/Forums/en-US/operationsmanagergeneral/thread/10ffee08-b875-47af-b788-db07dbfa1b56">http://social.technet.microsoft.com/Forums/en-US/operationsmanagergeneral/thread/10ffee08-b875-47af-b788-db07dbfa1b56</a>.</p>
<p>See my own unsupported way later in this post, I’m not comfy with the workaround I cite before.</p>
<p>I want to say that the following rapid publishing KB just doesn’t work in my case (and from what I found it should never work): <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;2003111" target="_blank">OpsMgr 2007: How to decommission a cluster monitored by System Center Operations Manager 2007</a></p>
<p>I want to add that the release notes are not clear as well:</p>
<h5>“You cannot uninstall or delete an agent from a node in a cluster</h5>
<p>When you try to uninstall or delete an agent from a node in cluster, the following error message is displayed:</p>
<p><a href="http://technet.microsoft.com/"></a></p>
<pre>Agent is managing other devices and cannot be uninstalled. Please resolve this issue via Agentless managed view in Administration prior to attempting uninstall again.</pre>
<p>Notice that the agent can be uninstalled from the node that is <strong>agentlessly</strong> managing the virtual servers. However, the agent cannot be uninstalled from the node that is managing the virtual servers.</p>
<p>Workaround: None at this time.” <a title="http://technet.microsoft.com/en-us/library/dd827187.aspx" href="http://technet.microsoft.com/en-us/library/dd827187.aspx">http://technet.microsoft.com/en-us/library/dd827187.aspx</a></p>
<p>The <strong>agentless managed view</strong> is useless in terms that the result’s you’re seeing is just unpredictable and the change proxy action won’t work. This is all related on how the agentless management works for the UI.</p>
<p>An agentless managed Windows Computer (this is the class) is defined as a Windows Computer managed by an healthservice on another Windows Computer (using the HealthServiceShouldManageEntity relationship), this is the query the SDK runs against your live db where the guid is the id for Microsoft.Windows.Computer:</p>
<p>exec sp_executesql N&#8217;&#8211; AgentlessManagedDevicesByType &lt;ManagedTypeId&gt;</p>
<p>SELECT [T].[Id], [T].[Name], [T].[Path], [T].[FullName], [T].[DisplayName], [T].[IsManaged], [T].[IsDeleted], [T].[LastModified], [T].[TypedManagedEntityId], [T].[MonitoringClassId], [T].[TypedMonitoringObjectIsDeleted], [T].[HealthState], [T].[StateLastModified], [T].[IsAvailable], [T].[AvailabilityLastModified], [T].[InMaintenanceMode], [T].[MaintenanceModeLastModified], [PXH].[BaseManagedEntityId] AS [HealthServiceId], [PXH].[DisplayName] AS [ProxyAgentPrincipalName] FROM dbo.ManagedEntityGenericView AS T</p>
<p>INNER JOIN dbo.BaseManagedEntity AS BME <br />
    ON</p>
<p>            BME.[BaseManagedEntityId] = T.[Id]</p>
<p>            AND BME.[BaseManagedTypeId] = @ManagedTypeId</p>
<p>INNER JOIN dbo.Relationship AS R <br />
    ON R.[TargetEntityId] = T.[Id]</p>
<p>INNER JOIN dbo.BaseManagedEntity AS PXH <br />
    ON PXH.[BaseManagedEntityId] = R.[SourceEntityId]</p>
<p>WHERE ((</p>
<p>            T.[IsDeleted] = 0 AND T.[TypedMonitoringObjectIsDeleted] = 0 AND R.[IsDeleted] = 0 AND</p>
<p>            R.[RelationshipTypeId] = dbo.fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceShouldManageEntity()</p>
<p>          ))&#8217;,N&#8217;@ManagedTypeId uniqueidentifier&#8217;,@ManagedTypeId=&#8217;EA99500D-8D52-FC52-B5A5-10DCD1E9D2BD&#8217;</p>
<p>What happens for cluster is that we have two HealthServiceShouldManageEntity relationships discovered, one from an internal discovery source (in my case with guid “85AB926D-6E0F-4B36-A951-77CCD4399681”), I would call it the standard one or the discovery source the sdk call SetProxyAgent works with, the other is discovered by the cluster management pack by the discovery rule Microsoft.Windows.Cluster.Classes.Discovery”. This discovery is implemented as a native COM in MOMModules.dll.</p>
<p>Then you must add that every cluster node discovers the entire hierarchy of cluster resources (huge load on every node for complex cluster implementations), so every cluster virtual server is managed by every single node. Let’s take a simple example a basic two node cluster (nodeA and nodeB) with just the cluster virtual server (CLUSTER). The Microsoft.Windows.Computer CLUSTER is discovered by both nodes so that we have that nodeA and nodeB have a HealthServiceShouldManageEntity relationship with CLUSTER with source  Microsoft.Windows.Cluster.Classes.Discovery and another one with the standard discovery source.</p>
<p>  So what happens here is that every cluster node ShouldManage every cluster Virtual Server, for this reason the proxy assignment you see in console is just unpredictable. The selection is based on HealthServiceShouldManageEntity relationship which returns one row for each cluster node for each cluster virtual server.</p>
<p>Using SetAgentProxy from SDK (or change proxy in UI) is useless because it resets just the standard discoverysource and not the Microsoft.Windows.Cluster.Classes.Discovery one.</p>
<p>The root cause of your inhability to delete the virtual servers first and the the cluster nodes then, is related to this discovered relationship. So if you delete the relationship you’ll find your way home.</p>
<p>Here is a SQL snippet that given the cluster node name (FQDN) will delete all the relationships to cluster virtual servers:</p>
<p>declare @nodeHS nvarchar(255)</p>
<p>Set @nodeHS=N&#8217;Microsoft.SystemCenter.HealthService:FQDN&#8217;</p>
<p>DECLARE Rel_Cursor CURSOR FOR</p>
<p>(SELECT [RelationshipGenericView].[Id]</p>
<p>FROM dbo.RelationshipGenericView</p>
<p>WHERE ((RelationshipGenericView.[MonitoringRelationshipClassId] =  dbo.fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceShouldManageEntity()) AND (((dbo.[RelationshipGenericView].[IsDeleted] = 0))))</p>
<p>AND ([RelationshipGenericView].[SourceMonitoringObjectId]</p>
<p>    IN (select BaseManagedEntityId from BaseManagedEntity where FullName =@NodeHS)))</p>
<p>OPEN Rel_Cursor;</p>
<p>declare @relId uniqueidentifier</p>
<p>declare @discoSource uniqueidentifier</p>
<p>declare @now datetime</p>
<p>set @now = GETUTCDATE()</p>
<p>FETCH NEXT FROM Rel_Cursor INTO @RelId;</p>
<p>WHILE @@FETCH_STATUS = 0</p>
<p>BEGIN</p>
<p>    SELECT @discoSource=DSTR.[DiscoverySourceId]</p>
<p>    &#8211;SELECT *</p>
<p>    FROM  dbo.[DiscoverySourceToRelationship] DSTR</p>
<p>        inner join dbo.[DiscoverySource] DS on DS.DiscoverySourceId = DSTR.DiscoverySourceId</p>
<p>        inner join Discovery on Discovery.DiscoveryId = DS.DiscoveryRuleId</p>
<p>                   WHERE [DiscoveryName] = &#8216;Microsoft.Windows.Cluster.Classes.Discovery&#8217;</p>
<p>                   AND [RelationshipId]=@relId</p>
<p>                   AND DSTR.[IsDeleted] = 0</p>
<p>    exec dbo.p_RemoveRelationshipFromDiscoverySourceScope</p>
<p>    @RelationshipId=@relId,</p>
<p>    @DiscoverySourceId=@discoSource,@TimeGenerated=@now                  <br />
    FETCH NEXT FROM Rel_Cursor INTO @RelId;</p>
<p>END;</p>
<p>CLOSE Rel_Cursor;</p>
<p>DEALLOCATE Rel_Cursor;</p>
<p>After executing this SQL statement the cluster node and virtual servers can be deleted from the Operations Console. Obviously this is totally <strong>unsupported</strong>. So do this at your own risk, but if you followed my analysis it is clear it should be safe.</p>
<p><strong>Cluster discovery is noisy</strong>, this means too much 21025 events (i.e. agents reloads) and the way it is performed on every node can lead to serious impact and cluster nodes. While I was about to post the detail of the noisy discovery (starting with mac address mismatch with OS discovery) a new <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=ac7f42f5-33e9-453d-a923-171c8e1e8e55" target="_blank">cluster MP has been released</a> (6.0.6720.0), this one promises to solve a lot of the issue I detected in previous versions. So this one is strongly recommended. btw it adds support for Windows Server 2008 R2 failover clusters (yes CSV included).</p>
<p>- Daniele</p>
<p><em>This posting is provided &#8220;AS IS&#8221; with no warranties, and confers no rights.</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/449/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=449&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/10/18/r2-and-cluster-monitoring-time-is-running-out/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>
	</item>
		<item>
		<title>USMT4 + SCCM 2007 SP2 RC &#8211; Downlevel Manifests folder is not present.</title>
		<link>http://nocentdocent.wordpress.com/2009/10/17/usmt4-sccm-2007-sp2-rc-downlevel-manifests-folder-is-not-present/</link>
		<comments>http://nocentdocent.wordpress.com/2009/10/17/usmt4-sccm-2007-sp2-rc-downlevel-manifests-folder-is-not-present/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 14:23:11 +0000</pubDate>
		<dc:creator>Fabrizio Guaitolini</dc:creator>
				<category><![CDATA[OSD]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/?p=429</guid>
		<description><![CDATA[I encountered this problem while preparing a demo consisting in a migration from Windows XP to Windows 7. I was using USMT 4, MDT 2010 and SCCM 2007 SP2 RC. In my task sequence I used hard-links to capture user data from a Windows XP installation and then to restore data back after applying a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=429&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I encountered this problem while preparing a demo consisting in a migration from Windows XP to Windows 7. I was using USMT 4, MDT 2010 and SCCM 2007 SP2 RC. In my task sequence I used hard-links to capture user data from a Windows XP installation and then to restore data back after applying a Windows 7 Image previously created. The migration process completed successfully but no system component settings were migrated. I looked at the scanstate.log created in %systemroot%\system32\ccm\logs\SMSTSLog to see if something went wrong and I found the following line :</p>
<p><em>2009-10-17 17:19:44, Info [0x000000] Downlevel Manifests folder is not present. System component settings will not be gathered.</em></p>
<p>The error is related to a not present manifest folder, so I used <a href="http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx">FileMon</a> lo verify in which location scanstate was looking :</p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/10/image11.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/10/image_thumb11.png?w=693&#038;h=426" width="693" height="426" /></a></p>
<p>Scanstate looked for that folder in %Systemroot%\system32, same location as the “Current Directory” of the process (as shown by <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">Process Explorer</a>).</p>
<p>By doing a simple search with Google I’ve found that I&#8217;m not alone and that other people experienced the same issue (<a href="http://systemcenterideas.com/2009/09/usmt-issues-with-mdt-2010">http://systemcenterideas.com/2009/09/usmt-issues-with-mdt-2010</a>). The fix proposed in that blog does not apply to me because I use a “Capture Task” and not a script to execute scanstate. </p>
<p>So while waiting to see if it will be fixed in RTM (I hope so) I needed a workaround.</p>
<p>I decided to create a wrapper that :</p>
<ul>
<li>executes a renamed scanstate.exe as a child process. </li>
<li>passes the same parameters received from the command line to the child process </li>
<li>passes the Application path as the Current Directory of the child process </li>
<li>returns the child process exit code. </li>
</ul>
<p>I used :</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/ms683156(VS.85).aspx">GetCommandLine</a> : to retrieve parameters passed to the wrapper </li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms683197(VS.85).aspx">GetModuleFileName</a> : to get the application path (after eliminating the application file name) </li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx">CreateProcess</a> : to call the renamed scanstate and to pass the application folder as the Default Directory </li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms683189(VS.85).aspx">GetExitCodeProcess</a> : to retrieve the child process exit code and to pass it to the task sequence. </li>
</ul>
<p>I renamed scanstate.exe to _scanstate.exe and I putted my wrapper in the USMT x86 folder, naming it scanstate.exe. </p>
<p><a href="http://nocentdocent.files.wordpress.com/2009/10/image12.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://nocentdocent.files.wordpress.com/2009/10/image_thumb12.png?w=679&#038;h=433" width="679" height="433" /></a> </p>
<p>As it can be seen in the previous picture, my wrapper calls the real scanstate application (named _scanstate.exe) as a child process and forces the “Current Directory” to be the same where the wrapper is located. With the correct “Default directory” _scanstate.exe is able to access the manifest folder.</p>
<p>This is a sort of hack, it is not supported an probably it is not the best solution to this problem, but in this case I’m running an RC version of SCCM 2007 SP2 and I’m only interested in have the demo working in the right way. I really hope that this will be fixed in the RTM version of SP2 or that if there is a supported alternative solution to this problem, that will be published soon (I know that I can copy manifest folder to the system32 before calling scanstate, but I don’t like to do that).</p>
<p>– Fabrizio</p>
<p><em>This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/429/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=429&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/10/17/usmt4-sccm-2007-sp2-rc-downlevel-manifests-folder-is-not-present/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a4f83b89caef942b4bd16a7685f462?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Guaito</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/10/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://nocentdocent.files.wordpress.com/2009/10/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Strongly recommended non OpsMgr patches</title>
		<link>http://nocentdocent.wordpress.com/2009/10/15/strongly-recommended-non-opsmgr-patches/</link>
		<comments>http://nocentdocent.wordpress.com/2009/10/15/strongly-recommended-non-opsmgr-patches/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 11:20:00 +0000</pubDate>
		<dc:creator>Daniele Grandini</dc:creator>
				<category><![CDATA[Agent health]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://nocentdocent.wordpress.com/2009/10/15/strongly-recommended-non-opsmgr-patches/</guid>
		<description><![CDATA[I read several post about issues agents are facing even with R2. Yes R2 has still issues (clustering anyone?), but before pointing your finger at OpsMgr you should consider that a monitoring agent uses interfaces that are not normally used and this can lead to “new” bug discovered in OS or application components. So it’s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=426&subd=nocentdocent&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I read several post about issues agents are facing even with R2. Yes R2 has still issues (clustering anyone?), but before pointing your finger at OpsMgr you should consider that a monitoring agent uses interfaces that are not normally used and this can lead to “new” bug discovered in OS or application components. So it’s not an agent issue, but the bug rises up only after agent installation. Bottom line: monitoring is never for free even agentlessly.</p>
<p>Before pointing your finger at OpsMgr this is our recommended fix list.</p>
<p><strong>On every OS</strong></p>
<li><a href="http://support.microsoft.com/kb/968967" target="_blank">KB 968967</a> it resolves high CPU utilization related to MSXML</li>
<li><a href="http://support.microsoft.com/kb/968760" target="_blank">KB 968760</a> it resolves an handle leak in .net framework 2.0 that affects monitoringhost (in our experience)</li>
<p> </p>
<p><strong>On Windows Server 2008</strong></p>
<ul>
<li>Service Pack 2</li>
</ul>
<p><strong>On Windows Server 2003</strong></p>
<ul>
<li>windows scripting host 5.7 on <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f00cb8c0-32e9-411d-a896-f2cd5ef21eb4&amp;DisplayLang=en" target="_blank">Windows 2003</a> (and Windows 2000)</li>
<li><a href="http://support.microsoft.com/kb/956523" target="_blank">KB 956523</a> on Windows 2003 to address a memory leak in WMI</li>
<li><a href="http://support.microsoft.com/kb/931320" target="_blank">KB 931320</a> another issue with WMI on Windows 2003</li>
<li><a href="http://support.microsoft.com/kb/943071" target="_blank">KB 943071</a> issue with event provider in managed code and WMI on Windows 2003</li>
<li><a href="http://support.microsoft.com/kb/933061" target="_blank">KB 933061</a> it fixes several issues in WMI on Windows 2003, it is of great help with WMI issues even if it won’t resolve them all</li>
</ul>
<p><strong>On Biztalk 2007 servers</strong> (very noisy MP btw)</p>
<ul>
<li>you *must* follow what’s reported here <a title="http://msdn.microsoft.com/en-us/library/ee290753(BTS.10).aspx" href="http://msdn.microsoft.com/en-us/library/ee290753(BTS.10).aspx">http://msdn.microsoft.com/en-us/library/ee290753(BTS.10).aspx</a>. You’ll find specific fixes to be applied other than the ones I report in this short list.</li>
</ul>
<p>I’ll try to keep this post up to date with any new fix we’ll consider useful for agent health.</p>
<p>- Daniele</p>
<p><em>This posting is provided &#8220;AS IS&#8221; with no warranties, and confers no rights.</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nocentdocent.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nocentdocent.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nocentdocent.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nocentdocent.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nocentdocent.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nocentdocent.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nocentdocent.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nocentdocent.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nocentdocent.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nocentdocent.wordpress.com/426/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nocentdocent.wordpress.com&blog=6209357&post=426&subd=nocentdocent&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nocentdocent.wordpress.com/2009/10/15/strongly-recommended-non-opsmgr-patches/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/011ad770090bc9de4904b2578b90cd93?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Daniele Grandini</media:title>
		</media:content>
	</item>
	</channel>
</rss>