KMS Management Pack bug


With our data warehouse approaching the 150 GB limit, I decided it was time to check if everything was ok with it. Obviously there’s very sparse documentation on the inner workings of this important module of SCOM. I must say as usual. In the next few posts I’d like to share with you what I found and the general debugging process for the DW.

But, first of all, I want to make you know that the Windows 2008 KMS MP simply doesn’t groom its data. The MP defines a new data set “KMSEvent” with no aggregation interval, basically we’re talking about events. Alas the MP author simply missed to develop a proper grooming stored procedure. The MP defines this way the new dataset

INSERT StandardDatasetAggregation
(                              
   DatasetId
  ,AggregationTypeId
  ,AggregationIntervalDurationMinutes
  ,AggregationStartDelayMinutes
  ,BuildAggregationStoredProcedureName
  ,DeleteAggregationStoredProcedureName
  ,GroomStoredProcedureName
  ,IndexOptimizationIntervalMinutes
  ,MaxDataAgeDays
  ,GroomingIntervalMinutes
  ,MaxRowsToGroom
  ,LastGroomingDateTime
  ,DataFileGroupName
  ,IndexFileGroupName
)
VALUES (
   ‘$Config/DatasetId$’
  ,0
  ,NULL
  ,NULL
  ,NULL
  ,NULL
 
,’KMS_EventGroom’
  ,$Config/Storage/IndexOptimizationIntervalMinutes$
  ,$Config/Storage/MaxDataAgeDays$
  ,$Config/Storage/GroomingIntervalMinutes$
  ,$Config/Storage/MaxRowsToGroom$
  ,GETUTCDATE()
  ,ISNULL(CAST(NULLIF(‘$Config/Storage/DataFileGroupName$’, ”) AS sysname), ‘default’)
  ,ISNULL(CAST(NULLIF(‘$Config/Storage/IndexFileGroupName$’, ”) AS sysname), ‘default’)
)

Which in turn lead to this row in StandardDataSetAggregation

image

If you turn on debugging (more on this in the next post) you’ll get this error:

“Failed to groom data for standard data set. Error 2812, Procedure StandardDatasetGroom, Line 146, Message: Could not find stored procedure ‘KMS_EventGroom’.”

Alas this stored procedure doesn’t exist in the MP. Digging into it I found a similar named stored procedure but it has a bad parameter signature, i.e. it cannot be substituted to KMS_EventGroom, more over it is not referenced anywhere in the MP, so from my analysis it’s defined but not used.

CREATE   PROC dbo.KMS_Grooming @groomdays int=90
AS
BEGIN
  SET NOCOUNT ON

declare @Now datetime
declare @Today datetime
declare @TodayMinusX datetime

set @Now = getUTCdate()

So be advised the KMS data currently is not groomed out of the DW, at least not in the intended way.

Advertisements
  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: