|Home > Documentation > Troubleshooting > Runtime issues|
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.
Apache Geronimo v2.2 is Java EE certified. With that said, it will likely run on different JVM versions however the results may be unpredictable. Whenever possible use jdk 1.5 or above.
Another common problem related to Java is that, sometimes, certain environment variables are not defined at Java installation time. For instance, Geronimo requires JAVA_HOME and JRE_HOME to be defined before running the server. As a convenience, make sure you also add <JAVA_HOME>/bin directory to the system PATH.
You can choose one of following options to use JVM arguments depending on how you're starting Geronimo
The second most common startup issue is associated to port conflicts, check no other application is using or blocking Geronimo's default ports:
If you identify port conflicts you can use the <GERONIMO_HOME>/var/config/config-substitutions.properties to change any of these ports. From this configuration file you can also set a port offset and have all these increased by that amount.
Keep also in mind that personal firewalls, anti virus and spyware protection products may block some of these ports as well, even if you turn off such software sometimes those "rules" are still in effect.
Refer to the Initial configuration section for additional details on prerequisites and different configurations.
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:
This can be caused by the same jar (such as an Oracle Driver using OCI) being loaded in two separate class loaders, each trying to load a system library.
To avoid the problem, you may try Adding JARs to the Geronimo repository and define the dependency in your deployment plan.
See Also : https://issues.apache.org/jira/browse/GERONIMO-4629
To use multicasting properly in a clustered enviornment, you will need to set the system property java.net.preferIPv4Stack to true when starting Geronimo.
If you navigate your browser Internet Explorer (IE) 6 to the console via https://_hostname_:8443/console where hostname is replaced with the host name where the Geronimo server is running, you will get an error "The page cannot be displayed". To remedy this problem, click Tools->Internet Options, and select the Advanced tab. In the Security section, select the checkbox TLS 1.0, and you will be prompted with a Security Alert. Click Yes to view the administrative console. If you want to see information about the certificate, click View Certificate. If you want IE to accept WASCE CA permanently, you can install the certification in IE.
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.
You have to update the Windows Registry to change these values. Here's a Windows 2000 doc on the registry settings – http://technet.microsoft.com/en-us/library/bb726981.aspx
Increasing MaxUserPorts (e.g. 65534) and decreasing TcpTimedWaitDelay (e.g. 30) may fix the problem.
When you deploy an EJB application with security constraint on Geronimo server, A parsing exception will show if you use a default namespace in the deployment plan. The problem is caused by a known JAXB issue. To workaround this problem, you have to add explicit named namespaces to every element or redefine the default namespace in each element in open-ejb.xml file.
Most likely Geronimo server was not shut down cleanly, which results in ActiveMQ log files to have an unexpected entry. You can avoid this by editing var/activemq/conf/activemq.xml and adding schedulerSupport="false" if you don't require JobScheduler support: