Looking at the start scripts $DOMAIN_HOME/bin/setDomainEnv.cmd, I just realized that this operational task is basically taken care of in the scripts we have.
To swap between the Sun JDK and JRockit to launch a WLS instance, all you need to do is set the JAVA_VENDOR environment variable to either "Sun" or "Oracle" and the scripts will take of launching WLS using the specified JDK.
Snippets from setDomainEnv.cmd:
set BEA_JAVA_HOME=d:\wls1031\jrockit_160_05_R27.6.2-20 set SUN_JAVA_HOME=d:\wls1031\jdk160_11 if "%JAVA_VENDOR%"=="Oracle" ( set JAVA_HOME=%BEA_JAVA_HOME% ) else ( if "%JAVA_VENDOR%"=="Sun" ( set JAVA_HOME=%SUN_JAVA_HOME% ) else ( set JAVA_VENDOR=Sun set JAVA_HOME=d:\wls1031\jdk160_11 ) )
Where JAVA_HOME is then used by startWebLogic.cmd script when it launches the WLS instance to identify the JDK to use.
Snippets from startWebLogic.cmd
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
With this information at hand, then switching between the two different JDKs is as simple as setting an environment variable before launching WebLogic Server.
Using JRockit:
>set JAVA_VENDOR=Oracle >startWebLogic.cmd ... d:\wls1031\JROCKI~1.2-2\bin\java -jrockit -Xms512m -Xmx512m -Dweblogic.Name=AdminServer ...
And just as easy to switch back to Sun. Note here that you could just unset the JAVA_HOME environment variable, which will set the script to use whatever default was configured when the domain was created.
Using Sun JDK:
>set JAVA_VENDOR=Sun >startWebLogic.cmd ... d:\wls1031\JDK160~1\bin\java -client -Xms256m -Xmx512m -Dweblogic.Name=AdminServer ...
1 comment:
Thanks! a lot Buttso for the blog. I was able to switch between Sun JDK and JRockit by using JAVA_VENDOR parameter.
This is very elegant approach.Thanks! for pointing this out.
Initially I was thinking of modifying JAVA_HOME variable in multiple files for switching JDK which is no longer required.
Post a Comment