It is possible to run multiple instances of geronimo on the same machine. Currently multiple instances of geronimo share the following directories in <geronimo_home>
, the directory where you installed Geronimo.
- bin
- lib
- schema
- repository
Each instance gets its own copy of the following at <geronimo_home>/<instance_name>
- var
- deploy (hot deployment)
bin, lib and schema are read-only, and thus may be shared between instances. The repository is shared, that is, an application deployed in one instance will show up in the list of deployed modules, but not running, in all the other instances!
Creating a new server instance
Be Careful
Start with a fresh image of geronimo. Do not use an image that has been used to run the default instance.
To create an instance named foo
do the following. All your instance data will be put in <geronimo_home>/foo
. All the directories named below are relative to <geronimo_home>
.
mkdir foo
- Copy
var
tofoo
. Starting from v2.2, you can use a GShell command deploy/new-instance to help you with this step. - Edit
foo/var/config/config.substitutions.properties
and change the portOffset. Try using 10, 20, 30.. and so on for various instances.
Running an instance
- Set the
org.apache.geronimo.server.name
system property to the instance name before you start the server. Use the syntax-Dorg.apache.geronimo.server.name=foo
for an instance namedfoo
located at<geronimo_home>/foo
. Add this to yourGERONIMO_OPTS
environment variable
On a Windows system:set GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=foo
On a Unix-like system:export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=foo
- Start the server using startup
<geronimo_home>/bin/startup
- To shutdown this instance use the port number of RMI Naming port (default 1099)
<geronimo_home>/bin/shutdown --port <port_num>
- To deploy applications to this instance use the port number of RMI Naming port
<geronimo_home>/bin/deploy --port <port_num> deploy ......
The Administrative Console can also be used for all these operations. Connect to an instance by using the right HTTP port (default 8080).
Other Useful Enhancements
To use multiple repositories see Configuring multiple Repositories.