Multiple Instances

< enportal | 5.6 | admin

Multiple instances of enPortal can be configured to run on the same system. This article details some of the considerations to have this work correctly.

1. Why Multiple Instances?

The following are some sample cases where you may want to install more than one instance of enPortal on the same server:

  • Testing - The test team needs to have multiple versions of the system available so they can validate the functionality and features against one another.
  • Development - A developer is working on multiple enPortal development projects at the same time.
  • Staging - A production and dev system are both running on the production server. They can be swapped, for example, to make the dev system become the production system after validation is complete and certified.
  • Demos - Multiple demo systems can be created and provided at the same time for review.
  • Multi-homed server - have different copies of enPortal running for different target networks.

2. Configuration

Refer to the Runtime Options page for a complete listing of options and how to configure, but for the purposes of running multiple copies of enPortal on the same server the following are critical:

Option Description
HTTP_PORT Each instance will need to listen on a different port.
SHUTDOWN_PORT Each instance will need it's own shutdown port.
HTTP_ADDRESS (optional) for multi-homed systems, restrict enPortal to listen only on a specific IP address.

When running multiple enPortal instances the total memory usage of all enPortal copies needs to be considered with respect to the total available memory on the server. Refer to the Memory Configuration page for more information.
On Linux/UNIX systems it's possible to install multiple system services for multiple enPortal instances on the same server, as long as each service is given it's own unique name.

2.1. Database Configuration

If you are using the default enPortal database settings and the embedded local H2 database, no special configuration is required to run multiple instances on the same server. Each instance will use its own database.

If your system is configured to access an external database, such as Oracle or MySQL, then care must be taken. If you have two systems running locally that are accessing the same database, unpredictable results may occur. For example, if you add a test User on the dev instance, and this is connected to the same database as the production instance, the test User will also appear in the production instance.