...
Excerpt |
---|
It is possible to run multiple instances of Geronimo on the same machine. |
<geronimo_home>
, the directory where you installed Geronimo. These are read-only.- bin
- jsr88
- lib
- schemadata
Each instance gets its own copy of the following at <geronimo_home>/<instance_name>
. These are read-write and are necessary for each Geronimo instance.
- etc
- repository
- var
These are also read-write but are not part of the minimally necessary directories and files for running a Geronimo instance, but may be desired. The deploy directory will be automatically created when you start Geronimo if it does not already exist.
- deploy
- hotbundles
- var
- etc
- repoository
The bin, lib and schema directories are read-only, and thus are shared between instances. The repository is not shared, which means that an application deployed in one instance will only show up in the list of deployed modules of the deployed instance.
...
The Administrative Console can also be used for all these operations. Connect to an instance by using the right HTTP port (default 8080).
Example runtime for multiple instances
- First download the Geronimo bundle distribution
- Determine what you want GERONIMO_HOME to be. We will use "/opt/geronimo3" for this example.
- Unpack the Geronimo bundle, and move the unpacked directory to "/opt/geronimo3"
- We'll create two Geronimo instances named gserv1 and gserv2
- Create the Geronimo instance directories as "/opt/geronimo3/gserv1" and "/opt/geronimo3/gserv2"
- Copy the directories "var", "etc", and "repository" to each instance directory
- Modify the "var/config-substitutions" file for each Geronimo instance changing the PortOffset. We'll set the PortOffset for gserv1 to 100 and the PortOffset for gserv2 to 200 for our example.
- Create a start script in each Geronimo instance directory to make it easier to start each instance
- /opt/geronimo3/gserv1/start.sh
No Format borderStyle solid #!/bin/bash # Geronimo start script # instance: gserv1 # Uncomment this to explicitly set Geronimo's runtime Java #JAVA_HOME=/usr/jdk1.6.0_25 #PATH=${JAVA_HOME}/bin:${PATH} GHOME=/opt/geronimo3 GVIRT=gserv1 export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=${GVIRT} # Normal startuo ${GHOME}/bin/startup # Interactive startup #${GHOME}/bin/geronimo run
- /opt/geronimo3/gserv2/start.sh
No Format borderStyle solid #!/bin/bash # Geronimo start script # instance: gserv2 # Uncomment this to explicitly set Geronimo's runtime Java #JAVA_HOME=/usr/jdk1.6.0_25 #PATH=${JAVA_HOME}/bin:${PATH} GHOME=/opt/geronimo3 GVIRT=gserv2 export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=${GVIRT} # Normal startuo ${GHOME}/bin/startup # Interactive startup #${GHOME}/bin/geronimo run
- /opt/geronimo3/gserv1/start.sh
- On linux, make the start script is executable with chmod: chmod 755 start.sh
- Finally you can start up each instance by executing their associated start script you just created in the previous step
- Your Geronimo installation file structure should look something similar to this:
No Format borderStyle solid /opt/geronimo3 |-- LICENSE |-- NOTICE |-- README.txt |-- RELEASE_NOTES-3.0-SNAPSHOT.txt |-- bin |-- deploy |-- etc |-- gserv1 | |-- etc | |-- repository | |-- start.sh | `-- var |-- gserv2 | |-- etc | |-- repository | |-- start.sh | `-- var |-- hotbundles |-- jsr88 |-- lib |-- repository |-- schema `-- var
Further readings
To use multiple repositories see Configuring multiple Repositories.