A few customers have inquired about how Urban Turtle handles being set up in a load balancing scenario. I thought it would be interesting to describe the current state of affairs on our blog to share with the rest of world.
When it comes to load balancing, there are some issues that you should be aware of. These are described in the following topics on our community support site:
- Urban Turtle on load balanced application servers?
- Setting up Urban Turtle on multiple TFS app servers.
Scott Hanselman has a great summary of some of the things that you should take under consideration when dealing with multiple web servers. In most cases, the first scenario is really the one that applies to us: Urban Turtle uses an in-process session state which requires a particular load balancing setup to work properly. The problem is caused by client requests (user actions in the application, such as selecting an iteration) being processed by different servers. Imagine that the user clicks on the Planning board tab. This request is processed by Server A which was picked by the Load Balancer. Then, the user selects an iteration. This request is handled by Server B, which the Load Balancer picked because Server A was determined to be busy. Urban Turtle stores the selected iteration on Server B, which Server A is unaware of. Therefore, when the user requests the Hour Burndown, if Server A processes this requests, it will not be aware that another iteration was selected and will return the Hour Burndown for the wrong iteration, causing confusion.
The first solution would be to configure sticky sessions/connections or client affinity. The term used may vary depending on your load balancing application vendor. This basically ensures that all requests from the same client are routed to the same server. Thus, the client always uses the same session state and therefore, the same Urban Turtle application settings.
Another solution would be to use a State Server. This is something that you may already have set up for other applications in your infrastructure, but I wouldn’t know about that. In this scenario, session data is stored in another process, on another server and is shared by all web servers in the load balancing environment. Urban Turtle has never been tested in such a scenario. It requires that all data stored in the session state be serializable and I cannot guarantee this as Urban Turtle was not designed with this in mind.
Here are some links regarding load balancing and session state:
- Load Balancing and ASP.NET
- Understanding session state modes + FAQ
- How to keep user requests on the same server when using IIS NLB?
- Configure a State Server to Maintain Session State (IIS 7)
I hope this helps. If you have any questions, please do not hesitate to contact me.

















We have decided to port the planning board filtering options over to the task board following a customer request. You now have the ability to hide work items from child iterations, to hide items that are done and to filter work items according to their work item type. These settings are independent from the planning board, meaning that you can hide done items on the planning board but have them show up on the task board.
Until now, the planning board view was restricted to two customizable fields. Since one of the fields represented the work item title, there was effectively only one field to customize unless you knew your work item Ids inside-out. Customers have requested the ability to view both the Effort and Business Value fields at the same time, for obvious reasons. We therefore managed to squeeze in a third configurable field and the default Scrum 1.0 mapping file has been updated to display the Business Value for Product Backlog Items.
The Task work item type definition in the Scrum 1.0 process template specifies a Blocked field which we added support for the previous release. We used to consider any value as meaning that the item was blocked, but it has come to our attention that this can prove problematic with other process templates. While this option is still available, you can now also configure a value to represent the Blocked state. We have updated the Scrum 1.0 mapping file to consider tasks as blocked when the value for the Blocked field is yes. As with many things in Urban Turtle, this is
Almost a whole year has gone by since the release of Team Foundation Server 2010 and our add-in for its Team Web Access application tier, Urban Turtle 3. Since then, we have managed to release a new version each month, for a total of eleven. Some say it’s too much, others say it’s impressive, but the team thinks nothing of it. We’re just working hard, trying to improve our product release after release. Frequent releases is merely a side effect!

