Hi,

Jay SenSharma

Jay SenSharma

Many JDKs are available in the Market which can be used anywhere like Production/Development Envs Like — Oracle Sun JDK, Oracle JRockit JDK, IBM JDK…etc. It is true that JRockit is specially designed for Production Environments and Oracle recommends that you use JRockit JDK with your Oracle products …because it has a Best Enhanced Garbage Collection Strategies, It have a JRMC tool inbuilt to Monitor the JVM Activities in the Runtime with very less Burden on the Server/JVM.

.

Why JRockit is More Recommended for Production Environments ?

– It Has More diagnostic tools than other JDKs such as JRA
– Management console with no overhead on performance (JRMC)…which is available inside <JROCKIT_HOME>bin directory.
– Better performance on Intel architectures than other JVMs
– Higher memory usage for better performance
– Great code Optimization Stretegy. (Can be Disabled using -Xnoopt is you dont want optimization)

How to tell Our WebLogic to use JRockit JVM ?

Step-1). Set the JAVA_HOME environmental variable in
<MIDDLEWARE_HOME>/common/bin/commEnv.cmd (commEnv.sh) to the appropriate path.
Example Location: C:Bea1033wlservercommonbin

Step-2). Set the JAVA_VENDOR environmental variable in
<MIDDLEWARE_HOME>/common/bin/commEnv.cmd (commEnv.sh) to BEA.

NOTE: Above two Steps are required only when you want that All your Newly created Domains as well should automatically pick the JRockit JVM Only.
If you already have some Existing Domain then you can do this in your  “<DOMAIN_HOME>binsetDomainEnv.sh” set the Correct JAVA_HOME and Correct JAVA_VENDOR Like below:

Setting JAVA_HOME & JAVA_VENDOR to use JRockit

Setting JAVA_HOME & JAVA_VENDOR to use JRockit

Step-3). If already you have mentioned some JVM tuning parameters in your StartScript like startWebLogic.sh or setDomainEnv.sh then Please make sure that they are compatible to the JRockit JVM
Example:
(Sun JDK) -Xmn, -XXNewSize, -XXMaxNewSize    —->  (JRockit)   -Xns
(Sun JDK) -XX:+UseConcMarkSweepGC                   —->  (JRockit) -Xgc:singlecon
(Sun JDK) -XX:+UseParallelGC                                     —->  (JRockit) -Xgc:parallel
(Sun JDK) -verbose:gc                                                      —->  (JRockit) -Xverbose:memory

Note: -XX:MaxPermSize (perm Gen Size Setting is only available for Sun JDK and Not for JRockit so please remove this JVM Tunning parameter if you are going to use JRockit)

Additional Features  With JRockit?

You can use the JRMC tool which comes with the JRockit JDK to monitor the Runtime Activities of the JVM. As describeed in the following Link:
You can even use some common Command Line Debugging utilities like following:

jrcmd <pid> print_threads (To Collect JRockit Thread Dump)

JRCMD_Collecting_Thread_Dump

JRCMD_Collecting_Thread_Dump

jrcmd <jvmpid> print_object_summary (Displaying Object Summary Details)

JRockit_JRCMD_Collecting_ObjectSummary

JRockit_JRCMD_Collecting_ObjectSummary

jrcmd <jvmpid> heap_diagnostics (For Heap Monitoring)

Heap_Diagnostic_Using_JRCMD

Heap_Diagnostic_Using_JRCMD

jrcmd <pid> print_properties (Printing System properties including CLASSPATH/PATH…etc)

Printing_Properties_Using_JRCMD

Printing_Properties_Using_JRCMD

jrcmd <jvmpid> verbose_referents

.
.
Thanks
Jay SenSharma

If you enjoyed this post, please considerleaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.