Welcome to EMC Consulting Blogs Sign in | Join | Help

Crispin Parker's Blog

About Scrum for Team System and .Net development

Team Foundation Server 2010 Job Service Delay

This post relates to Team Foundation Server 2010, the Scrum for Team System version 3 process template and TFS event notifications.

In TFS you can setup notifications to be sent on events like Build complete and work item changes.

image

Introduced in the TFS 2010 release candidate is the ability to set a process delay time for notifications. By default the delay time is set to 2 minutes. This is intended to reduce the load on the  TFS job agent process during periods of heavy load.

“2 Minute Notification Delay”

In the SfTS solution we use this change notification to trigger our event service updates. Unfortunately the new 2 minute delay means that we no longer get an instant notification of work item updates. This delay makes the event service slower to respond and can cause you to see the dreaded “TF237079” error message more often.

image

Luckily, there is a way to reduce / remove the notification delay.

Removing Job Service Notification Delay

In order to change the notification delay duration, you will need to add a data row to a table in the “Tfs_Configuation” database.

  1. Launch SSMS and connect to the TFS Database Engine.
  2. Run the following script:

    USE Tfs_Configuration
    GO
    
    IF NOT EXISTS 
    (
        SELECT * 
        FROM tbl_RegistryItems
        WHERE ParentPath = '#\Service\Integration\Settings\' 
    AND ChildItem =
    'NotificationJobDelay\' ) BEGIN INSERT INTO tbl_RegistryItems (ParentPath, ChildItem, RegValue) VALUES ('#\Service\Integration\Settings\', 'NotificationJobDelay\', 0); END ELSE BEGIN UPDATE tbl_RegistryItems SET RegValue = 0 WHERE ParentPath = '#\Service\Integration\Settings\'
    AND ChildItem =
    'NotificationJobDelay\' END -- Queue up an application update.
    INSERT INTO tbl_NotificationQueue (EventClass, EventData) VALUES ( '0e9c44d7-52eb-4dca-b467-f1a4fe3c469a', '<ArrayOfRegistryEntry>' +
    '<RegistryEntry Path="#\Service\Integration\Settings\NotificationJobDelay\">' +
    '<Value>0</Value></RegistryEntry></ArrayOfRegistryEntry>'
    );

This sets the job service delay to zero and you get instant notifications once again.

Regards,

Crispin Parker,
Senior Practice Consultant,
EMC Consulting.

Edit: Apparently I was using a sledge hammer to open a peanut with my first post on this subject. I have now altered the SQL script to be a little more gentle on the TFS infrastructure. Chris Sidi’s post explains it all in great detail and even gives you a Powershell script to run in place of the above SQL.

Published Friday, March 05, 2010 10:57 AM by crispin.parker

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Crispin Parker's Blog said:

So, you’ve setup your brand new TFS 2010 environment, installed SfTS v3, deployed the template and created

May 18, 2010 2:05 PM
 

russweb said:

Missing a single quote on

AND ChildItem = NotificationJobDelay\'

July 9, 2010 12:52 AM
 

crispin.parker said:

Well spotted. I've updated the post to include the missing apostrophe.

July 9, 2010 8:54 AM
 

chris misztur said:

I can reproduce the TF237079 100% even with delay=0:

1. create PBI and save it

2. close the PBI

3. open the PBI, update the PBI title and SAVE

You get error here.

To workaround, click the refresh button on the PBI, update your Title and save.

January 31, 2011 5:42 PM
 

crispin.parker said:

Completely expected behaviour.

The PBI is updated straight away as soon as you save it. The ROI and Work Remaining rules are triggered by the save event. Hence you need to refresh it in order to synchronise your local cache.

If you're using the workbench, it will pick up the change in the polling check.

Crispin.

February 1, 2011 12:04 PM
 

Dom said:

I ran this script and the error message no longer appears... But it takes about 5 minutes to get some reports updated.

For example, I change the StoryPoints value of a PBI from 5 to 100, but even after a refresh, the "Product Burndown Chart By Day" report still displays the old value. After 5 minutes, a refresh will show the correct data (I tried every minute until it works)

Is it normal? Is there an other configuration for report updating?

September 8, 2011 6:44 PM

Leave a Comment

(required) 
(optional)
(required) 
Submit

This Blog

Syndication

News

Powered by Community Server (Personal Edition), by Telligent Systems