...
The bin, lib and schema directories are read-only, and thus are shared between instances. The repository is also shared, which means that an application deployed in one instance will show up in the list of deployed modules for all instances. Thus creating the second repository for each instance is recommended to keep deployments local to the Geronimo instances. See Configuring multiple Repositories.
Here is an example layout of what it would look like to have installed one Geronimo instance named "foo-server".
...
- Create a directory
foo-server
under<geronimo_home>
. - Copy
var
andetc
directories tofoo-server
. You can use the command deploy:new-server-instance to help you with this step. < GERONIMO-6287 - Recommended: create
foo-server/repository
and set it up as a second repository for the Geronimo instance. See Configuring multiple Repositories - Edit
foo-server/var/config/config-substitutions.properties
and change the portOffset. Try using any integers such as 1, 2, 10, 20, 30.. for various instances.
...
- On a Windows system:
set GERONIMO_SERVER="foo-server"
- On a Unix-like system:
export GERONIMO_SERVER="foo-server"
...
- 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:
It is suggested that inNo 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-
GERONIMO_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
...