Sudhir's Point of View...

On Cloud Computing, Integration Technology, Mobility, RFID, ERP etc...


  • Point of View...

    Tagged: Five things about me


    James has tagged me and at mid night on Sunday with nothing to do I thought I will put down few random thoughts. J

    1. I have lived majority of my life in Mumbai, India. Mumbai is financial capital of India with more than 13million people. My dad was mechanical engineer in Indian Navy so we lived in Navy Nagar. Our apartment was on 12th floor and you could see the ocean from our building. Mumbai is the most happening city in the world. J Following is sort of view I had from my house.


    2. I love traveling. In one of my past jobs I use to travel a lot. I had become so efficient at it, that for couple of years I had not seen take off and landing of flights. I use to sleep as soon as I entered the flight and got up when flight landed. J I have visited around 10 countries and worked with more than 55 customers. I have driven in almost every country; my worst experience of driving was in Rome, Italy. J
    3. I have been on the fore front of innovation in supply chain industry for past few years, with RFID technology. I was involved in making a RFID reader platform for Sirit which was released to market few months back. Watch out for RFID in next few years it will touch every aspect of life.
    4. I am passionate about learning. I have various certifications from Microsoft (MCSD, MCAD.NET), IBM, Sun, APICS etc… I took some classes in Ice skating few years back, don't know if I learnt to skate but I became really good at falling, finally I realized sports are not for me. Currently I am doing my MBA once my MBA is done next I want to learn flying. That has been my dream since I was a kid.
    5. Longest stretch I have ever worked was for 7 days and 7 nights when I was working for eET. We had a big event in Rome coming up and my CEO wanted to launch our new product EPM, which was not even in design phase. I had to get a demo able version ready in 1 week and then present it at the launch. I gave everything I had, worked day in and day out. We almost worked for 22 hours a day. I attended the launch and after that my body gave up. I just slept for days. Those 2 weeks were most satisfying of my life. J
  • Point of View...

    TFS Reliability and Disaster Recovery

    I had written in my previous post about having a high level topic that brings together all the information related to disaster recovery and reliability. Brain has written a great post which brings all of it together.

    Please let us know your feedback on the same. Do you need any additional information which will be helpful in making your TFS environment more reliable?

  • Point of View...

    Using SQL Log Shipping with TFS


    Let's continue our discussion around Failover options in TFS. We already spoke about Backup/Restore, SQL Mirroring or SQL Clustering. One more option available is SQL Log Shipping. Log Shipping is very close to Mirroring. The only difference is Mirroring is almost real-time synchronization of databases whereas Log shipping is time delayed synchronization. In short you can synchronize the databases every X minutes. This helps when the geographic locations of primary and secondary servers are far apart for e.g. if you want to have Primary server in US and Secondary backup server in Asia. You do not want to do mirroring in this case, as it may slow down the primary server.

    Caution: This is not an officially supported configuration. I have tried it and it works fine. Please test this on your test environments before trying it in production.

    Terminology: Primary Server – Main TFS Data Tier, Secondary Server – Backup Data tier Server

    Before you begin you should have installed SQL Server 2005 on secondary server. Following are the steps to setup Log Shipping for TFS

    Configure Log shipping

    1. Connect to the primary server using SQL Server Management Studio
    2. Repeat steps 3-8 for all the TFS Databases(list provided below)
    3. Right Click on each database and select properties
    4. On Properties dialog select Transaction Log Shipping option
    5. Select "Enable this as a primary database in a log shipping configuration"
    6. Click on "Backup Settings" button, this should startup "Transaction Log Backup Settings"
      1. Enter the Network and local paths to the backup directory
      2. Enter reasonable time for delete and alert settings
      3. Click on "Schedule button" to open Job Schedule properties dialog. Select the schedule for transferring the transaction logs based on your environment. For example if you have primary server in US and Secondary in Asia you may want to schedule it for every hour. Once you have selected your schedule click "Ok"
      4. Click "OK" to get back to Database properties dialog.
    7. Next Click on "Add" to add a secondary server. This will open a Secondary database settings dialog
      1. Click on "Connect" button and enter connection information to connect to secondary server
      2. Select "Yes, generate a full backup of the primary database and restore it into the secondary database (and create the secondary database if it doesn't exist)".
      3. Click "Restore options" button to select the location of data files and transaction log files on secondary server.
      4. Select the "Copy Files" tab and enter the destination folder for the copied files on secondary server.
      5. Click "OK" to get back to database properties dialog
    8. Click on "OK" and the system will automatically setup the secondary database with log shipping setup.

    Note: You should configure the transaction log shipping schedule (step 6.c) for all databases at same time. For e.g. all of them can run after every 1 hour starting 7:00PM 01/01/2007. This is crucial to keep the databases in sync.

    Failover to the secondary Database

    Important: To failover to the secondary server we have to failover all the databases at the same time.

    1. On the Team Foundation application-tier server, prepare and stop the services.(Detailed steps)
    2. On the new Team Foundation data-tier server
    • Connect to the secondary server using SQL Server Management Studio.
    • Run following TSQL Query for each TFS database. This will restore all the secondary databases and make them operational

      Restore database <TFSDBName> with Recovery

    1. On the Team Foundation application-tier server, configure the application tier to use the new data tier.
    • On the Team Foundation application-tier server, open the Command Prompt window.
    • At the command prompt, locate the program file directory, and then type:

      cd Microsoft Visual Studio 2005 Team Foundation Server\Tools

    • Run the TFSAdminUtil tool with the RenameDT option to map the Application Tier to Secondary Server

    TFSAdminUtil RenameDT <SecondaryServer>

    1. On the Team Foundation application-tier server, reconfigure Report Server .(Detailed steps)
    2. On the Team Foundation application-tier server, reconfigure SharePoint. (Detailed steps)
    3. On the Team Foundation application-tier server, restart the services. (Detailed steps)
    4. Update the work item cache. (Detailed steps)


    TFS Databases: ReportServer, ReportServerTempDB, STS_Config_TFS, STS_Content_TFS, TfsBuild, TfsIntegration, TfsVersionControl, TfsWarehouse, TfsWorkItemTracking, TfsWorkItemTrackingAttachments, TfsActivityLogging

    Note: We are working on officially supporting this configuration. I will keep you all updated

    Please let me know if you tried using these steps and found them useful.

  • Point of View...

    TFS Extranet Support

    TFS SP1 has support for Basic (or digest) authentication with TFS via an ISAPI filter. This could be used for clients connecting to TFS over the internet. James Manning has a detailed post on this topic.


  • Point of View...

    Visual Studio Team System Chat - Wed, Nov 8th

    Join members of the Visual Studio Team System product group to discuss features available in Visual Studio Team Foundation Server, Team Editions for Architects, Developers, Database Pros, and Testers. In addition, discuss what's new in the latest Community Technology Preview (CTP).

    Join the chat on Wednesday, November 8th, 2006 from 10:00am - 11:00am Pacific Time.

    Add to Calendar

    Additional Time Zones


  • Point of View...

    Using SQL Mirroring with TFS - Update


    As I mentioned in my last post we are working on documentation on how to use SQL Mirroring with TFS. We have the draft white paper published today at

    Please let us know if you have any questions on the content in the paper.



  • Point of View...

    Using SQL Mirroring with TFS


    Failover is a big concern for everyone using Team Foundation Server. What happens if the server hosting Data Tier of Team Foundation Server crashes? How can we get the whole system back up and running in least amount of time? There are various solutions to this problem. Traditionally we have recommended using Clustering for maximum availability. Clustering is a great solution, as it provides automatic failover that is transparent to end users. Another option is to use backup and restore mechanism of SQL Server. In this case users can take combination of Full and incremental backup of the Data Tier and if there is a failover of primary server you can easily recover the TFS Data Tier using the backed up data. This could be a very time consuming process.

    Clustering provides automatic failover; Backup/restore provides long lead time recovering of server. SQL Mirroring can be used as a solution in between both of these options. SQL Mirroring provides warm standby but TFS does not support automatic failover with mirroring. Few manual steps need to be executed when the primary server fails with mirroring in TFS. We are working on a White paper to provide detailed steps on using SQL Mirroring for failover scenarios in TFS. We should have it ready within few weeks for everyone to use. Till then following are the high level steps required to use mirroring.

    The process of configuring a VSTF deployment for mirroring can be defined in following steps

    1. Backup databases from the main Data Tier Server(Principal server)
    2. Restore backed up databases on mirror server.
    3. Setup Mirroring for each database between Principal and Mirrored servers
    4. Perform manual Failover to enable Mirrored Server as principal server.
      1. Manual failover when primary server is available can be performed using Management studio
      2. Manual failover when primary server is unavailable(Forced service Failover) can be performed using ALTER DATABASE command in TSQL Statements
    5. Map Application Tier to talk to new Data Tier(Mirror Server)


    More detailed Mirroring steps should be up on MSDN in next few weeks. I will keep all of you updated when that happens.

  • Point of View...

    Two Month Anniversary at Microsoft

    Its been two months since I joined Microsoft. These two months have been hectic, lots to learn, lots to understand and lot more to catch up. I have learnt a lot in every area from technology to process to management in this short period of time. The most important point I have noticed is, management’s commitment to customer satisfaction. Customer Focus is one theme that drives product designs and development at Microsoft. We have processes in place which help us take constant feedback from customers. One way of doing that is through blogs.

    Looking at this level of customer focus across the organization I want to do my part. Here are two commitments from me to all our customers

    1. I will be in constant touch with all customers through this blog. I will try to share information about what we are planning in the product and try to get your feedback on the same.
    2. Regularly monitor and respond to questions on our forums. Forum link:

    I have been spending lot of time trying to catch up with all the functionality and understanding philosophy behind TFS. I still don’t know everything, but now I know people who know everything. So if you guys want to know anything about TFS in general and Admin/Ops in specific please please please feel free to shoot an email or leave a comment. I promise I will get back to you ASAP.


  • Point of View...

    TFS Proxy


    The primary goal of TFS Proxy is to cache Version Control files and reduce the network traffic. For e.g. if we have 2 offices one in US and another in Europe and the main TFS server is in US. We do not want every TFS user in Europe to download every VC file from US. So we can have a TFS proxy in Europe office and then TFS Proxy will help cache the files transferred between US and Europe hence improving performance. But all the authentication is still handled by the main TFS Server in this case the one in US. TFS Proxy does not authenticate users. It does check the validity of the user to allow him/her to access cached files, but the actual authentication is performed by TFS Server.

    Here is a extract from MSDN help on how TFS Proxy validates the users.


    Team Foundation Server Proxy uses a pre-authenticated ticket scheme for determining whether a requesting user is authorized to view the content of the requested file. In this scheme, the user’s client contacts the master source control server and if the user is authorized, the client is provided a digitally signed ticket that contains the details of the file being requested. The client then presents the ticket to the proxy server. This use of public/private key signatures allows the proxy to be certain that the ticket came from the server and that the user is therefore authorized to view the file. The proxy then looks into the cache to see whether it can service the request, and if not, requests the file from the server and adds it to the cache.

    Link to MSDN Document: Team Foundation Server Proxy



  • Point of View...

    Finding Versions

    A very simple question that someone asked me was, How do I find version for my Team Foundation Server and Team Explorer? And I started thinking for few seconds… So I thought let me put it down before I forget…


    You can get version for Team Explorer by following these steps

    1. Start VS

    2. On menu select Help\About Microsoft Visual Studio

    3. In Installed product list select Visual Studio 2005 Team Explorer

    4. The Version number will be in Product details box below.


    You can get version for TFS by Following these steps

    1. Start Windows Explorer

    2. Navigate to C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Tools

    3. Select Microsoft.TeamFoundation.dll and check its properties

    4. On version tab check file version property


  • Point of View...

    Team Foundation Server


    Its been 3 weeks since I joined Microsoft as Program Manager in Visual Studio Team. I have learnt more in these 3 weeks than people learn in 6 months. Microsoft is a great place to work and my colleagues are really great. I have already started liking my role and work I am doing, so the start has been fantastic. The role is exactly what I was hoping it would be.

    Let’s get to work now, I am responsible for Admin and Operations related features in Team Foundation Server. I know we need to improve a lot in this area. But I would like to hear from you, what features would you like to see in Team Foundation Server to improve your administration experience? What can we do to help you monitor your TFS farms in more efficient and effective manner? Tell me what you all think. Help us build a great product which can solve your problems.

    This is just the beginning I will try to keep you all updated on our products and directions through this blog so lets keep in touch…

Page 1 of 1 (11 items)