Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Most of the issues you may find when running Geronimo will be at start up time; and most likely driven by some conflicting resources from the environment where Geronimo is set up.

Table of Contents

JVM arguments

Apache Geronimo v3.0 is Java EE 6 compliant application server. With that said, it will likely run on different JVM versions however the results may be unpredictable. Geronimo v3.0 requires Java 1.6.

...

  1. set JAVA_OPTS environment variable: No FormatborderStylesolid jeffchi@Local:~/geronimo-tomcat7-javaee6-3.0-SNAPSHOT$ export JAVA_OPTS="-Xmx256m -XX:MaxPermSize=128m -XX:+HeapDumpOnOutOfMemoryError" jeffchi@Local:~/geronimo-tomcat7-javaee6-3.0-SNAPSHOT$ ./bin/geronimo run
  2. and/or append the following code to <GERONIMO_HOME>/bin/setjavaenv.sh(bat) file: No FormatborderStylesolid if [ -z "$JAVA_OPTS" ]; then JAVA_OPTS="-Xmx256m -XX:MaxPermSize=128m -XX:+HeapDumpOnOutOfMemoryError" fi

Server hangs due to low entropy on Linux

When starting a Geronimo server on a Linux system, the server start seems to hang. However, if you're patient, the server will eventually start. If you're inquisitive, and dump the stack traces of the java process, you'll see something like:

...

...

This problem isn't Geronimo specific.

...

To avoid the problem, you can choose to use the /dev/urandom device, instead of /dev/random, by specifying the following java property -Djava.security.egd=file:/dev/./urandom. For example, start the server using the following command:

...

...

Port conflicts

The second most common startup issue is associated to port conflicts, check no other application is using or blocking Geronimo's default ports:

...

If your application contains its own version of Spring you might see some problems deploying or running the application on the Jetty assembly. The Jetty assembly is by default configured with Apache CXF as the JAX-WS provider. Apache CXF uses Spring to configure itself. Sometimes, the Spring version used by CXF conflicts with the Spring version supplied with your application. To prevent these conflicts add the following <hidden-classes> entry to the Geronimo deployment descriptor:

...

...

java.lang.UnsatisfiedLinkError: lic (Library is already loaded in another ClassLoader)

...

java.io.IOException of remote EJB on Windows

...

...

One possibility is that the available user port numbers are being exhausted. On Windows, when a socket is closed, it goes into a TIME_WAIT state and isn't actually closed until some delay time. By default, the max user port address is 5000 and the TIME_WAIT delay is 4 minutes. So, it's not too difficult to exhaust all possible user port addresses.

...