...
Regarding both Geronimo javaee6 and minimal release bundles. Full support for multiple instances was completed in GERONIMO-6270 and its sub-tasks. This support is available in the latest snapshots after March 1, 2012, and will be in the 3.0-beta-2 standard release. This documents how to run multiple instances after applying the changes from GERONIMO-6270.
For prior releases, multiple installations can safely run side-by-side by completely copying the server folder to another, and start the 2nd server installation after changing its portOffset value.
...
The layout of a Geronimo instance
It is possible to run multiple instances of Geronimo on the same machine. Excerpt
...
- <GERONIMO_HOME>/
- bin
- jsr88
- lib
- schema
...
When running multiple instances, do not run a server from GERONIMO_HOME but only from GERONIMO_SERVER roots. Also set the GERONIMO_HOME/repository
to be read-only to help prevent accidentally deploying to it when instead the intention is to deploy to the local repository for each Geronimo instance at GERONIMO_SERVER/repository
.
...
Here is an example layout of what it would look like to have installed one Geronimo instance named "foo-server".
...
Creating a new server instance
...
- Start the server using startup
No Format borderStyle solid<geronimo_home>/bin/startup - To shutdown this instance, use the port number of RMI Naming port (default 1099). For the new instance
foo-server
, the port number should be 1099 plus portOffset specified infoo-server/var/config/config-substitutions.properties
.No Format borderStyle solid<geronimo_home>/bin/shutdown --port <RMI_port_num> - To deploy applications to this instance use the port number of RMI Naming port
...
- This deploys to the primary Geronimo repository
...
- solid
...
<geronimo_home>/bin/deploy
...
--port
...
<RMI_port_num>
...
deploy
...
<applications>
...
- This deploys to a secondary Geronimo repository exclusive to the Geronimo server defined as
GERONIMO_SERVER=foo-server
. See Configuring multiple Repositories for more detailed instructions.
...
- solid
...
<geronimo_home>/bin/deploy
...
--port
...
<RMI_port_num>
...
deploy
...
--targets
...
<foo_repo_name>
...
<applications>
...
The Administrative Console can also be used for all these operations. Connect to an instance by using the right HTTP port (default 8080).
...
- 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
andetc
to each instance directory - Create a
repository
directory within each instance directory and set it up as a second repository for the corresponding Geronimo instance. See Configuring multiple Repositories - Modify the
gserv(1|2)/var/config/config-substitutions.properties
file for each Geronimo instance changing thePortOffset
. We'll set thePortOffset
forgserv1
to 100 and thePortOffset
forgserv2
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} export GERONIMO_HOME=/opt/geronimo3 export GERONIMO_SERVER=gserv1 cd ${GERONIMO_SERVER} # Normal startup ${GERONIMO_HOME}/bin/startup # Interactive startup #${GERONIMO_HOME}/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} export GERONIMO_HOME=/opt/geronimo3 export GERONIMO_SERVER=gserv2 cd ${GERONIMO_SERVER} # Normal startuo ${GERONIMO_HOME}/bin/startup # Interactive startup #${GERONIMO_HOME}/bin/geronimo run
- On linux, make the start script is executable with chmod: chmod 755 start.sh
- Create the Geronimo instance directories as
- 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 |-- -etc- |-- gserv1 | |-- etc | |-- repository | |-- start.sh | `-- var |-- gserv2 | |-- etc | |-- repository | |-- start.sh | `-- var |-- jsr88 |-- lib |-- +repository+ |-- schema `-- -var- It is suggested that inGERONIMO_HOME/etc
andGERONIMO_HOME/var
are removed andGERONIMO_HOME/repository
is made read-only - Finally you can start up each instance by executing their associated start script you just created in the previous step
...