I ran into an issue recently with a customer that was having an issue with Virtual Center's services not starting automatically starting after a reboot of thier vCenter Server. They were able to manually start the service one the box was all the way back up but even with the service set to retry every 5 minutes it would not start on its own. I did a little bit of research that was able to not only figure out what the problem was but to also solve it relatively easy.<!--more-->

What seemed to be happening was SQL on the vCenter server wasnt starting quite as fast as vCenter wanted, causing it to go into a failed state. With a quick regedit I was able to correct this.  

In the registry i made the following changes:

<em><strong>- Obtain the service name for your SQL Service - in Registry Editor, browse to HKLMSystemCurrentControlSetServices and look for entries starting with MSSQL. In all likelyhood, yours will be called either MSSQL or MSSQL$SQLEXPRESS or MSSQLSERVER (ignore MSSQLServerADHelper)
- Now browse to HKLMSystemCurrentControlSetServicesvpxd
- Open the REG_MULTI_SZ value called DependOnService
- Add a line called "MSSQL$SQLEXPRESS" (or whatever value you determined above)
- Ensure that the last line in the value is blank</strong></em>

In future, by making these changes, whenever SQL is stopped, vCenter will now be stopped as well. Whenever vCenter is started, SQL will also be started. You should also be able to view the dependency by opening the service's properties in the Services control panel applet and going to the Dependencies tab. From here on out vCenter will always wait for SQL to start before launching.

Hope this helps some of you!!!