Method I used for getting this to work from any version of 5.1 Update 1:
- If you are running vCenter as a VM, make a pre-upgrade snapshot in case something goes sideways and you need to rollback quickly. If things work out well, you can delete the snapshot later.
- Open a command prompt with Administrator privileges.
- Stop the SSO service ("vCenter Single Sign On") in your GUI. Or,
Command line: C:\>sc stop ssotomcat - Open the folder containing the jre subfolder for SSO and vCenter. Typically, this is
"C:\Program Files\VMware\Infrastructure\" - Open Task Manager with admin privs, and sort by name to show java.exe processes. Add the PID column if you will use taskkill via command line.
- Kill all instances of java.exe in Task Manager or by PID using taskkill /pid #### /f. You can script this, or run a one-liner like:
for /f "tokens=2" %j in ('tasklist ^| findstr java.exe') do taskkill /pid %j /f - Immediately drag the jre folder to another folder location (as a backup) as soon as you kill the last java.exe in memory. You will have to be quick, as java.exe respawns quickly. You can also do this via command line using the MOVE command: C:\>move /y <your_jre_folder_path>\jre jre.old
- Kill any respawned java.exe, again -- I found there is usually one that survived the jre folder move.
- Launch the U2 upgrade and step through the component installers in order. the install still take s along time (up to 30 minutes for all components), so be patient for each component installer and let it stop/start each service on its own. Do NOT reboot between component installs -- there is no need, until the last component is installed.
- Reboot when ALL components are upgraded. Check running services to make sure they all started. Set any service recovery options or delayed start tweaks as needed for your environment.
Scripted, if you have a lot of these to do, or dread the next 5.x update, you can run this as a batch script, adjusting your jre path below. I didn't bother with error handling, logging, or pretty output -- this is just a brute force helper script to prep for upgrading.
======================================
@echo off
:: vCenter 5.x Upgrade Prep Script
cls
echo Make sure you have a pre-upgrade snapshot, or good backup,
of your vCenter server before upgrading. To abort, press CTRL-C now. Otherwise,
pause
sc stop ssotomcat
for /f "tokens=2" %%j in ('tasklist ^| findstr java.exe') do taskkill /pid %%j /f
:: Adjust the drive and path to your jre folder in these lines.
:: Note that if you have Update Manager installed, you will have another jre
:: installation -- usually in Program Files (x86) -- that can be ignored.
c:
cd "C:\Program Files\VMware\Infrastructure\"
:: Try to move the jre folder
set /a MoveCount=0
:MoveJRE
set /a MoveCount=%MoveCount%+1
move /y .\jre .\jre.old
for /f "tokens=2" %%j in ('tasklist ^| findstr java.exe') do taskkill /pid %%j /f
if %MoveCount%==3 goto AbortMove
if exist .\jre goto MoveJRE
:End
echo The jre folder has been moved to jre.old. This script has fulfilled its sole purpose in life
echo and is feeling gratified. Best of luck with your impending vCenter upgrade!
exit
:AbortMove
echo The jre folder cannot be moved, for some reason. Script aborted.
echo Time to delve into the mysteries of tomcat as a requirement of vCenter.
===========================================