Skip to main content

Multiple Tomcat Instances on Single Machine

In this post we will see how to run multiple tomcat instances on a single machine and under a single user account.

tomcat

Setup


We already see how to run tomcat in Ubuntu machine in my previous blog (http://kmlsarwar.blogspot.com/2014/08/how-to-install-apache-tomcat-on-ubuntu.html).

Step One—Create folder

Create two folder named "tomcat-instance1" and "tomcat-instance2" anywhere, and copy conf, logs, temp, webapps and work  folder from CATALINA_HOME folder and change conf/server.xml file in tomcat-instance1 and tomcat-instance2. we need to change 3 port shutdown port, connector port and ajp port.



Shutdown port - this port is used for shutdown the tomcat. when we call the shutdown.sh script they send signal to shutdown port. this port listen by tomcat java process. if signal is received the that process then its cleanup and exit by itself.

Connector Port -This port is actual port to expose the application to outside client. 

AJP port - this port is used to apache httpd server  communicate to tomcat. this port used when we setup load balanced server.

See the sample server.xml file:

<server port="8005" shutdown="SHUTDOWN">
.....
 <connector connectiontimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectport="8443">

<connector port="8009" protocol="AJP/1.3" redirectport="8443">
</connector></connector></server>


So we change these three port to different number, because once this port is binded  then other process can't bind it again. so wee bind different port. 

So tomcat-instance1/conf/server.xml file i configured server port =8105, connector port = 8181, ajp port = 8109.

And tomcat-instance2/conf/server.xml file i configured server port =8205, connector port = 8282, ajp port = 8209


Step Two—Create Script

 

Now we create two script file for startup and shutdown the tomcat-instance1 and tomcat-instance2.

startup-instance1.sh
export CATALINA_BASE=/usr/local/tomcat/tomcat-instance1
cd $CATALINA_HOME/bin
./startup.sh


startup-instance2.sh
export CATALINA_BASE=/usr/local/tomcat/tomcat-instance2
cd $CATALINA_HOME/bin
./startup.sh



shutdown-instance1.sh
export CATALINA_BASE= /usr/local/tomcat/tomcat-instance1
cd $CATALINA_HOME/bin
./shutdown.sh

shutdown-instance2.sh
export CATALINA_BASE= /usr/local/tomcat/tomcat-instance2
cd $CATALINA_HOME/bin
./shutdown.sh

Here we explicitly set the CATALINA_BASE variable and point to new tomcat-instance1 and
tomcat-instance1 the we go to CATALINA_HOME/bin folder because all binary for running tomcat is still present in CATALINA_HOME folder then startup/shutdown the script.

Based on above technique we can create many instance folder and change conf/server.xml file port values and run that instance with own newly created script files.


Step Three—Run

 

We need to give  permission to this scripts to execute. Then we run this script with this command

$ ./startup-instance1.sh
$ ./startup-instance2.sh

Once that runs, Two Tomcat are up and ready on port 8181 and 8282.

You can visually verify that Tomcat is working by accessing your server page at
 your_IP_address:8181 and  your_IP_address:8282

We can stop tomcat instance using the  shutdown script

$ ./shutdown-instance1.sh
$ ./shutdown-instance2.sh

This will shutdown the tomcat instance. Enjoy multiple instance of Tomcat!!!

 

 


Comments

Popular posts from this blog

Configure Tomcat Web Management Interface

We already see, how to install tomcat in ubuntu in my previous blog( http://kmlsarwar.blogspot.com/2014/08/how-to-install-apache-tomcat-on-ubuntu.html ) In order to use the manager webapp installed, we must add a login to our Tomcat server. We will do this by editing the tomcat-users.xml file: sudo nano /etc/tomcat7/tomcat-users.xml    This file is filled with comments which describe how to configure the file. You may want to delete all the comments between the following two lines, or you may leave them if you want to reference the examples: <tomcat-users> </tomcat-users>  You will want to add a user who can access the manager-gui and admin-gui (the management interface that we installed in Step Three). You can do so by defining a user similar to the example below. Be sure to change the password and username if you wish: <tomcat-users> <user username="admin" password="password" roles="manager-gui,admin-gui"...

How to install Oracle JDK on Ubuntu from repository

This package provides Oracle Java JDK 7 (which includes Java JDK, JRE and the Java browser plugin). However, you can't only install Oracle JRE - the PPA only provides the full Oracle JDK7 package. To install: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-jdk7-installer And to uninstall: sudo apt-get remove oracle-jdk7-installer And to verify your installation: java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode) And to verify the web browser installation: http://java.com/en/download/installed.jsp Verified Java Version Congratulations! You have the recommended Java installed (1.7.0_51). And to update: If for some reason, the Java version in use is not 1.7.0, you can try to run the following command: sudo update-java-alternatives -s java-7-oracle To Install and Set in environment variable: To...

JavaMelody: Monitoring the Performance of Tomcat Application Server

Javamelody is an opensource (LGPL) application to monitor Java or Java EE application servers in QA and production environments. JavaMelody is mainly based on statistics of requests and on evolution charts. (Extract from the Javamelody home page) It allows to improve applications in QA and production Give facts about the average response times and number of executions Make decisions when trends are bad, before problems become too serious Optimize based on the more limiting response times Find the root causes of response times Verify the real improvement after optimization It includes summary charts showing the evolution over time of the following indicators: Number of executions, mean execution times and percentage of errors of http requests, sql requests, jsp pages or methods of business façades (if EJB3, Spring or Guice) Java memory Java CPU Number of user sessions Number of jdbc connections These charts can be viewed on the current day, week, month, year or cu...