This appears to be present up to RC-SP1 version, build 6.0.6246.0
In the Task Status console view - I noticed an old failed task from 2 months ago..... however, my task grooming is set to 7 days.
To view the grooming process:
Basically – select * from PartitionAndGroomingSettings will show you all grooming going on.
Tasks are kept in the jobstatus table.
Select * from jobstatus will show all tasks.
p_jobstatusgrooming is called to groom this table.
Here is the text of that SP:
--------------------------------
USE [OperationsManager]
GO
/****** Object: StoredProcedure [dbo].[p_JobStatusGrooming] Script Date: 02/05/2008 10:49:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[p_JobStatusGrooming]
AS
BEGIN
SET NOCOUNT ON
DECLARE @Err int
DECLARE @Ret int
DECLARE @RowCount int
DECLARE @SaveTranCount int
DECLARE @GroomingThresholdLocal datetime
DECLARE @GroomingThresholdUTC datetime
DECLARE @TimeGroomingRan datetime
DECLARE @MaxTimeGroomed datetime
SET @SaveTranCount = @@TRANCOUNT
SET @TimeGroomingRan = getutcdate()
SELECT @GroomingThresholdLocal = dbo.fn_GroomingThreshold(DaysToKeep, getdate())
FROM dbo.PartitionAndGroomingSettings
WHERE ObjectName = 'JobStatus'
EXEC dbo.p_ConvertLocalTimeToUTC @GroomingThresholdLocal, @GroomingThresholdUTC OUT
IF (@@ERROR <> 0)
BEGIN
GOTO Error_Exit
END
-- Selecting the max time to be groomed to update the table
SELECT @MaxTimeGroomed = MAX(LastModified)
FROM dbo.JobStatus
WHERE TimeFinished IS NOT NULL
AND LastModified < @GroomingThresholdUTC
IF @MaxTimeGroomed IS NULL
GOTO Success_Exit
BEGIN TRAN
-- Change the Statement below to reflect the new item
-- that needs to be groomed
DELETE FROM dbo.JobStatus
WHERE TimeFinished IS NOT NULL
AND LastModified < @GroomingThresholdUTC
SET @Err = @@ERROR
IF (@Err <> 0)
BEGIN
GOTO Error_Exit
END
UPDATE dbo.PartitionAndGroomingSettings
SET GroomingRunTime = @TimeGroomingRan,
DataGroomedMaxTime = @MaxTimeGroomed
WHERE ObjectName = 'JobStatus'
SELECT @Err = @@ERROR, @RowCount = @@ROWCOUNT
IF (@Err <> 0 OR @RowCount <> 1)
BEGIN
GOTO Error_Exit
END
COMMIT TRAN
Success_Exit:
RETURN 0
Error_Exit:
-- If there was an error and there is a transaction
-- pending, rollback.
IF (@@TRANCOUNT > @SaveTranCount)
ROLLBACK TRAN
RETURN 1
END
------------------------------------
Here is the problem in the SP:
DELETE FROM dbo.JobStatus
WHERE TimeFinished IS NOT NULL
AND LastModified < @GroomingThresholdUTC
We only delete (groom) tasks that have a timestamp in TimeFinished. If a failed task doesn’t finish – this field will be NULL and never gets groomed.