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

...

anchortoptop

Running Geronimo on Harmony

...

This article has the following structure:

...

With other versions and in a different environment, the behavior may differ.

Unresolved issues

Here's the brief summary of all the unresolved issues that require attention:

  • Web interface and console don't work through HTTP (uninvestigated, workarounded).
  • Application takes up all the memory specified in -Xms option (uninvestigated).
  • Application fails to terminate properly – pressing Ctrl-C starts shutdown process that is never finished (uninvestigated).

Geronimo configuration

Configure the server to use Harmony RMI Registry provider for JNDI

...

For that, edit var/config/config.xml file, adjust NamingProperties GBean configuration as follows:

...

Use TLS instead of SSL

Harmony doesn't have SSL implementation (see HARMONY-5191), so the following statements have to be added to var/config/config.xml file to instruct Geronimo to use TLS instead of SSL:

...

...

Change default keystore type

...

You may either edit the Geronimo startup scripts or run the server from the command line, but in either case you should make consider the following adjustments:

1. Harmony doesn't accept the -javaagent option (HARMONY-5462), so you have to omit it. Or, you may remove bin/jpa.jar file from Geronimo distribution – this way the -javaagent option would be omitted by the Geronimo startup script.

2. Geronimo v2.0.2 needs access to Internet for applications like SPECjAppServer2004 to be deployed – it tries to fetch XML schemas from http://java.sun.com site. So if you're going to deploy applications like that, and you're behind a firewall, you should add the appropriate -Dhttp.proxyHost= and -Dhttp.proxyPort= options to the Geronimo command line. This problem is caused by OPENEJB-700 bug and should disappear after that bug is fixed and the fix is propagated to a new version of Geronimo.

3. SPECjAppServer2004 and other applications may require additional specification of JNDI naming conventions for EJB, like this: -Dopenejb.jndiname.failoncollision=true -Dopenejb.jndiname.format={ejbName}

4. Harmony generally needs more memory. So make sure to add the corresponding -Xms and -Xmx options.

Your final startup line may look like this:

...

java -Xms256M -Xmx512M -Djava.endorsed.dirs=lib/endorsed -Dopenejb.jndiname.failoncollision=true -Dopenejb.jndiname.format={ejbName} -Dhttp.proxyHost=your.proxy -Dhttp.proxyPort=8080 -jar bin/server.jar

...

Web interface and console only works work through HTTPS port (https://localhost:8443/Image Removed). When working through HTTP port (http://localhost:8080/Image Removed) large portions of interface are not drawn correctly. This is still to be investigated.

...

The Geronimo Deployer doesn't use the var/config/config.xml file (see above), so the JNDI configuration needs to be supplied through the system properties, like this:

...

...

java -Djava.naming.factory.url.pkgs=org.apache.harmony.jndi.provider -jar bin/deployer.jar ...

...

Harmony configuration

Use DRLVM

...

Harmony also supports IBM J9 VM, but Geronimo doesn't work with it, as Geronimo relies on java.util.concurrent package that requires a proper implementation of sun.misc.Unsafe class that is missing in IBM J9 VM.

Other issues

  • Application takes up all the CPU resources on both cores I have available so the machine is 100% busy.

...

.