IBM has a mega line up in the IDE business. Some of the IDEs provided by IBM are Eclipse, Rational Application Developer, Rational Software Architect Designer, Rational Business Developer, etc, When it comes to enterprise java development or operational decision management or business modelling, people use mostly RAD/RSA.

Before using those IDEs, it will be good if we know how to initialize them correctly while opening. Eclipse is available for free whereas other enterprise IDEs are not freeware. All of the enterprise IDEs are called as IBM Rational IDEs. Rational IDEs are nothing but enhanced versions of Eclipse with special features. That is why if we check the package structure of the Rational IDEs, Eclipse will the root package.

Eclipse startup is controlled by the options in $ECLIPSE_HOME/eclipse.ini. If $ECLIPSE_HOME is not defined, the default eclipse.ini in your Eclipse installation directory. In the case of Mac, the Eclipse.app/Contents/MacOS is used.

How eclipse.ini works?

When we launch RAD/RSA immediately “eclipse.ini” file will be checked for the options specified in it. Then the IDE will be launched with the options specified in the file. So, the options that we are going to specify in that ini file is important.

Initialization file for Rational Software Architect:

-vm
jdk1.7.0_21/jre/bin/java.exe
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
-install
c:/IBMRSA851
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-vmargs
-xquickstart
-xms40m
-xmx1024m
-xmnx64m
-xgpolicy:gencon
-xscmx96m
-xshareclasses:name=IBMSDP_%U
-xnolinenumbers
-xx:MaxPermSize=128M
-xcompressedrefs
-Dcom.ibm.ws.management.event.max_polling_interval=1000
-Djava.util.Arrays.useLegacyMergeSort=true

Important points to remember

  1. You can, and should, experiment with changes to the launch command from your Command Prompt/Terminal before changing the eclipse.ini itself.
  2. Each option and each argument to an option must be on its own line.
  3. All lines after -vmargs are passed as arguments to the JVM, so all arguments and options for eclipse must be specified before -vmargs (just like when you use arguments on the command-line)
  4. Any use of -vmargs on the command-line replaces all -vmargs settings in the .ini file unless –launcher.appendVmargs is specified either in the .ini file or on the command-line.
  5. Make a backup–keep a copy of the original contents on hand so you don’t break your installation and have to download it all again.

Remember guys, any tool that is developed by IBM uses its own developer kit called IBM SDK which is built on top of Java. Therefore we can pass 3 types of options for jvm – Garbage Collector command-line options(IBM SDK), JIT and AOT command-line options(IBM SDK) and JVM command-line options(JAVA)

Of all the options those are given in the initialization file, JVM options are important. So, I am giving a brief intro of some options that we pass to JVM. Those are as follows –

  • -Xquickstart : The effect is faster compilation times that improve startup time, but longer running applications might run slower. When the AOT compiler is active (both shared classes and AOT compilation enabled), -Xquickstart causes all methods to be AOT compiled. The AOT compilation improves the startup time of subsequent runs, but might reduce performance for longer running applications. -Xquickstart can degrade performance if it is used with long-running applications that contain hot methods. The implementation of -Xquickstart is subject to change in future releases. By default, -Xquickstart is disabled..Another way to specify a behavior identical to -Xquickstart is to use the -client option. These two options can be used interchangeably on the command line.
  • _**-Xms**_ : Set initial Java heap size.
  • _**-Xmx**_ : Set maximum Java heap size.
  • _**-Xmnx**_ : By default, this option is set to 25% of the value of the -Xmx option. This option returns an error if you try to use it with -Xmn. You can use the -verbose:sizes option to find out the values that the VM is currently using. If the scavenger is disabled, this option is ignored.
  • _Xgpolicy**:**_ : To select the IBM’s Garbage Collection Policy. Please check [here][4] for the IBM Garbage Collection Policy for in-depth understanding.
  • _**-Xscmx**_ : This option applies only if a cache is being created and no cache of the same name exists. The default cache size is platform-dependent. You can find out the size value being used by adding -verbose:sizes as a command-line argument. Minimum cache size is 4 KB. Maximum cache size is platform-dependent. The size of the cache that you can specify is limited by the amount of physical memory and paging space available to the system. The virtual address space of a process is shared between the shared classes cache and the Java™ heap. Increasing the maximum size of the Java heap reduces the size of the shared classes cache that you can create.
  • -Xshareclasses : To disable shared class cache for WebSphere Application Server, add –Xshareclasses:none as a generic JVM argument through the admin console. See more information about this in the information center on Tuning the IBM virtual machine for Java.
  • -Xnolinenumbers : If you start the JVM with -Xnolinenumbers when creating a new shared classes cache, the Class Debug Area is not created. The option -Xnolinenumbers advises the JVM not to load any class debug information, so there is no need for this region. If -Xscdmx is also used on the command line to specify a non-zero debug area size, then a debug area is created despite the use of -Xnolinenumbers.
  • _**-XX:MaxPermSize=**_ : It is used to set size for Permanent Generation. The Permanent Generation is where class files are kept. These are the result of compiled classes and JSP pages. If this space is full, it triggers a Full Garbage Collection. If the Full Garbage Collection cannot clean out old unreferenced classes and there is no room left to expand the Permanent Space, an Out‐of‐ Memory error (OOME) is thrown and the JVM will crash.

Happy Learning! Happy Exploring!!

 

Sources: