Running many parallel instances
Before you go for a side-by-side setup please consider
- Examine possibilities to use Exclusive group data ownership (easy)
- Using docker containers (grants full application isolation)
Server setup (Tomcat)
- Put WAR file in a shared location
- Add descriptor file for each application in: /<tomcat>/conf/Catalina/localhost/
The file should contain a references in the codebase section
<?xml version="1.0" encoding="UTF-8"?> <Context path="/TempusServa" docBase="C:/SharedApplications/TempusServa.war"> ....
Note that new descriptor files can be added at runtime, and will not require a server restart.
Handling updates
Updates to the application are easy
- Update the .war file in the shared location
- Stop the application server
- Remove all folders inside /<tomcat>/webapps
- Start the application server
Saving memory
Each application instance will consume 20 MB of PermGen memory (clasloader memory) if the document building functions are in use (approx. 5 mB instance if not). In order to reduce this amount to approx. 2 mB/application, all shared librarys could be moved to the webservers shared folder (Tomcat 6 is "lib").
This approach is only recommended if:
- You are running no other applications on that particular webserver (can be done)
- Sure that all applications will be using the same TS version
Move all .jar files from the war files /WEB-INF/lib folder, except for: p2eShared.jar.
The easy way to complete this this task is to rename the .war til .zip, move the files, and rename back to .war.