TFSDeployer not triggering

Jan 10, 2011 at 3:54 PM

I am using TFSDeployer for the first time to set up a deployment process. We use TFS 2010. I have an application configured to deploy when the Build Quality changes. I've created custom build qualities, Deploy to Dev, Deploy to Acceptance, Deploy to Production. I can change these to whatever I want over the course of a day and TFSDeployer does nothing, I have verbose tracing enabled to show this. Then I will see TFSDeployer does get notified of a change, at what appears to me as some random time. It executes whatever script is mapped for the last change I made to Build Quality.

Since TFSDeployer does pick up a change periodically I am lead to believe I hae the service configured correctly. I am not sure where to look to figure out the seemingly random notification behavior.

Our TFS server is very lightly used, 20 people each doing a check in once per day. Maybe 20 work item updates to go with that.

Thanks much.

Coordinator
Jan 10, 2011 at 9:23 PM

Hi,

TFS 2010 introduced delays to the notification system. When a build quality is changed, an entry is added to TFS' notification queue and TFS will eventually deliver the event to all subscribers (eg TFS Deployer) within 2 minutes. You can change the default 2 minute value to something shorter if required.

See Chris Sidi's blog post for more information: http://blogs.msdn.com/b/chrisid/archive/2010/03/05/faster-delivery-of-notifications.aspx

Additionally, if TFS cannot deliver the event (eg because it temporarily can't resolve the name of the TFS Deployer machine or there is another network connectivity issue) then it will mark it to be delivered later (I'm not sure how it calculates "later"). If after several attempts to deliver the event it still fails, the event will be dropped from the queue and never delivered.

You can check the tbl_EventNotification table in the Tfs_<ProjectCollection> database on your TFS data tier to see the current queue and any failures.

The fact that TFS Deployer is receiving at least one event makes me believe it is configured correctly and there is an intermittent issue between the TFS Deployer machine and the TFS application tier preventing all events from being delivered within a reasonable time frame.

Regards,

Jason

Jan 20, 2011 at 4:10 PM

thanks Jason,

I found that my Build Quality is not getting to TFS. If I set build quality in VS 2010, I see the change. Then I close the build and re-open it the Build Quality has not changed. When the build quality does change, the notification works as I would expect. Not a TFSDeployer issue.

Coordinator
Jan 20, 2011 at 10:05 PM

In VS2010, the Build Explorer window will require you to press Enter or navigate to another row in the build list before it will commit the selected Quality to TFS. In the Build Summary window for a single build however, the quality will take effect as soon as you make the change (ie be careful with the scroll wheel :) ).