Tuesday, February 26, 2008

Long day

Spent the entire day doing support. Not quite what I had planned when I woke up this morning.

Ever wonder what the decision making is behind the "Pending Reboot" precheck done by the SQL Server 2005 installer? In SQL Server 2000, it just checks for the "PendingFileRenameOperation" registry key and if it's present then it says a reboot is required. Because people were annoyed by all the reboots, Microsoft changed the algorithm to be smart enough to tell if the stuff requiring a reboot had anything to do with SQL Server. Here's how they describe it:

In addition, the Microsoft Installer technology also handles the existing PendingFileRenameOperations (PFRs) much better. You may recall that SQL Server 2000 setup would block if any files at all appeared on the registry key we discussed earlier. SQL Server 2005 setup is smart enough to block only if the files belong to SQL Server (meaning there could be a conflict), and even in those cases can often reach into the PFR key and directly update it without needing a reboot. This technology is included at some level in both MSI and update.exe, which are the current standard Microsoft installers that are used to perform all updates.

From http://www.microsoft.com/technet/technetmag/issues/2006/12/SQLQA/default.aspx

Want to know what the actual algorithm is? Well, either buy my company's product or disassemble sqlspars.dll at text:498C7F40 and find out for yourself...