Passing JVM options in Mule ESB
After a long and hard search, I finally figured out a way to pass parameters to JVM in Mule ESB. Thought of sharing this for the next restless soul trying to develop things in Mule.
Lets start with a simple introduction of mule, Mule is an ESB (Enterprise Service Bus) meaning it helps connect different components which don’t ordinarily speak the same language and are very difficult to adjust/reprogram.
Whenever we deal with Java and its related products, we often end-up fidgeting with the amount of memory which needs to be allocated to the VM.
Mule being different as it it, has a very different way of passing arguments to the underlying VM. It uses a configuration file found in $MULE_HOME/conf/wrapper.conf
this file contains keys matching the pattern
wrapper.java.additional.<n>
replace the <n> with an integer (ensure to not skip a number in the sequence), the default mule installation comes with 3 configurations, so its safe to start with wrapper.java.additional.4
so the config file needs to be appended with
wrapper.java.additional.4=<<your config>>
Please leave your comments and suggestions to improve this post..
How to enable Garbage collections in mule
Since mule runs in jvm, the jvm garbage collection algorithm will be available and JVM takes care of GC, however, you can adjust this behaviour by changing memory allocation/gc algorithm here is a link which details various options in GC tuning.
I mean how to enable verbose gc and gc logs in mule.
gc can be enabled using the following command line to the VM
” -Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps ”
the first option says log gc to a file called gc log, 2nd and 3rd arguments define what needs to be logged.