Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-6270 Re-enable multiple instances support in one installation
  3. GERONIMO-6275

Defining and Using org.apache.geronimo.server.dir versus org.apache.geronimo.home.dir in shell scripts

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 3.0-beta-1
    • 3.0.0, 3.0-beta-2
    • startup/shutdown
    • Security Level: public (Regular issues)
    • Linux x86, Red Hat Enterprise Linux Server release 5.4 (Tikanga); Java JDK1.6.0_25

    Description

      Related: GERONIMO-6270, GERONIMO-6175, GERONIMO-6174, GERONIMO-5987, GERONIMO-4229

      It would be easier to support multiple server instances of Geronimo if there is one shell variable that is used to reference the path on disk to the instance, proposed as GERONIMO_SERVER as opposed to the GERONIMO_HOME installation path. This issue tracks the discussion and modification of such a change.
      GERONIMO_SERVER defines:

      • GERONIMO_SERVER defaults to GERONIMO_HOME if no instances are specified
      • GERONIMO_SERVER is expanded to GERONIMO_HOME/GERONIMO_SERVER if GERONIMO_SERVER is a relative path
      • GERONIMO_SERVER defines org.apache.geronimo.server.dir

      In the java code there are the following properties:

      1. org.apache.geronimo.home.dir - equivelant to GERONIMO_HOME shell variable
      2. org.apache.geronimo.server.dir - proposed to be equivelant to GERONIMO_SERVER

      The words "BASE" versus "HOME" appear a few times in the source. Once example is "karaf.home" and "karaf.base" properties. According to the code usage, it is aparant that these terms are assumed to mean these things:

      1. HOME - path location on disk of read-only binaries and configuration
      2. BASE - path location on disk of read-write configuration and data storage

      The term BASE is intended to point at a Geronimo Server Instance Base path. However, this has not been clearly defined, and has appeared to cause some misusage. Thus this and other issues lead to the removal of GERONIMO_BASE shell variable and org.apache.geronimo.base.dir java property in GERONIMO-4229 .

      Currently, to start a Geronimo Instance, the org.apache.geronimo.server.dir java property must be defined in the GERONIMO_OPTS variable. However, this prevents the Shell scripts from being able to know and use the path location to the Geronimo Server Instance.

      In particular, there are a few issues affected by a variable like this not being available.

      1. Reported in GERONIMO-6174 - GERONIMO_TMPDIR is set in the shell/bat scripts as GERONIMO_HOME/var/tmp. In turn, the java property "java.io.tmpdir" is set to GERONIMO_TMPDIR (this is GERONIMO_HOME/var/tmp). Shouldn't GERONIMO_TMPDIR instead be set to a value provided by GERONIMO_SERVER/var/tmp ?
        • affected scripts: client, deploy, geronimo, internalLauncher, jaxws-tools
        • This can be argued to whether or not all Geronimo Server Instance should share a common temp directory.
      2. Reported in GERONIMO-6174 - The java properties karaf.home and karaf.base are both being set to GERONIMO_HOME. When instead karaf.base should be set to a value held by GERONIMO_SERVER.
        • affected scripts: client, geronimo, internalLauncher
        • see resulting errors and reasoning in GERONIMO-6174
      3. Not Reported - The java property java.util.logging.config.file is being set to GERONIMO_HOME/etc/java.util.logging.properties . It is intended to be an empty configuration file. This only causes a problem when using instances if GERONIMO_HOME/etc does not exist (it would not exist if GERONIMO_SERVER/etc is intended to be used).
        • affected scripts: client, geronimo, internalLauncher
      4. Not Reported - Logging startup output to GERONIMO_HOME/var/log/geronimo.out - Obviously if multiple instances are being started, this should be GERONIMO_SERVER/var/log/geronimo.out . Any error is silent if var/log/geronimo.out does not exist.
        • affected scripts: geronimo
      5. Not Reported - The register-service script does a grep and awk on GERONIMO_HOME/var/config/config-substitutions.properties to discover the portOffset . Obviously this will not work for multiple instances
        • The register-service script does not take multiple instances into consideration at all
        • affected scripts: register-service

      Solution:

      • Create a new shell variable GERONIMO_SERVER to hold the path location to the run-time server configuration, and leave GERONIMO_HOME to hold the path location to the Geronimo Installation Path.

      Arguments:

      • If GERONIMO_SERVER defaults to GERONIMO_HOME, then any installation not having multiple instances configured will not be affected.
      • This will not resolve the multiple instance support issue in Geronimo, GERONIMO-6270, but having this support in the shell scripts will get Geronimo much closer.
      • About half of the currently known issues (listed above) can be resolved with the addition of GERONIMO_SERVER as proposed.

      The remaining currently known issues will be:

      1. GERONIMO-6174: the proper use of karaf.home versus karaf.base
      2. GERONIMO-6270 SnapshotConfigXMLBuilder using the org.apache.geronimo.server.dir/var directory
      3. GERONIMO-5987 and GERONIMO-6270: ActiveMQ using org.apache.geronimo.server.dir as the base for var rather than the current working directory the run-time server is in at startup
      4. GERONIMO-6175: The Geronimo Repository using org.apache.geronimo.server.dir instead of org.apache.geronimo.home.dir

      Attachments

        1. geronimo-6275-procrun_service.patch
          3 kB
          Russell E Glaue
        2. geronimo-6275-B-comments-cygwin-procrun.patch
          17 kB
          Russell E Glaue
        3. geronimo-6275-B-comments.patch
          15 kB
          Russell E Glaue
        4. geronimo-6275.patch
          46 kB
          Russell E Glaue

        Issue Links

          Activity

            People

              rglaue Russell E Glaue
              rglaue Russell E Glaue
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: