Welcome

Ortak Tomcat Kurulumu Üzerinden Birden Fazla Instance Çalıştırmak

Zaman zaman aynı makina üzerinde birden fazla tomcat instance’ını çalıştırmak isteyebiliriz. Bunun için farklı tomcat kurulumları yapmakta kolay ve hızlı bir çözüm olabilir, ancak güncelleme ve projelerin paylaştıkları kütüphanelerin yönetimi açısından bakıldığında ortak bir tomcat kurulumu üzerinden birden fazla tomcat instance’ını çalıştırmak çok daha avantajlı olmaktadır.

Ortak tomcat kurulumu üzerinden farklı instance’lar çalıştırmak için, tomcat’i belirli bir dizine kurduktan sonra her bir node için ayrı ayrı dizinler oluşturarak aşağıdaki işlemleri yapmalısınız. Örneğin /work/tools/servers/apache-tomcat/apache-tomcat-7.0.16 tomcat kurulu dizinimiz olsun. /work/tools/servers/apache-tomcat dizini altında da node1 ve node2 isimli iki dizin oluşturalım. Her ikisi de ayrı ayrı tomcat instance’larının çalıştırılmasında kullanılacaktır.

Öncelikle, kurulum dizinindeki bin dizininin altındaki setenv.sh ve tomcat-juli.jar dosyalarını node dizinlerinin altında bin dizini oluşturarak kopyalayınız. Eğer tomcat instance’larına özel env değişiklikleri yapamaycak iseniz setenv.sh dosyasını kopyalamanıza gerek yoktur.

Kurulum dizinindeki conf dizinini altındaki dosyalar ile birlikte aynen node dizinlerinin altına kopyalayınız. node/conf/server.xml dosyaları içerisinde her node için farklı http, https, ajp, shutdown portları belirleyiniz.

node dizinleri altında temp, logs, webapps, work dizinlerini oluşturunuz. Test amacı ile kurulum dizini altındaki /webapps/ROOT dizinini node/webapps dizini altına kopyalayabilirsiniz.

Artık her bir instance’ı ayrı ayrı çalıştırabilirsiniz. Start ve stop işlemleri için tomcat kurulumunun bin dizini altındaki startup ve shutdown scriptlerini kullanabilmek için CATALINA_BASE, CATALINA_HOME ve BASEDIR ortam değişkenlerini tanımlamanız gerekmektedir. CATALINA_BASE her bir node için farklı olacaktır. CATALINA_HOME ve BASEDIR değişkenleri ise tomcat kurulum dizinini göstermelidir.

Aşağıda linux veya unix ortamlarında kullanmak üzere yazdığım script’i bu iş için kullanabilirsiniz.

!/bin/bash
    this script is used to start and stop tomcat nodes which
    share same tomcat installation 


if $# -ne 2 ; then
echo "usage: ./run-node.sh  "
exit -1;
fi
export NODE_HOME=/work/tools/servers/apache-tomcat
export TOMCAT_HOME=$NODE_HOME/apache-tomcat-7.0.16

if ! -d $NODE_HOME/ ; then
echo $HOME_HOME/$2 node directory does not exist
exit -1;
fi

export CATALINA_BASE=$NODE_HOME/$2
export CATALINA_HOME=$TOMCAT_HOME
export BASEDIR=$CATALINA_HOME

if = "start" ; then
$CATALINA_HOME/bin/startup.sh;
elif = "stop" ; then
$CATALINA_HOME/bin/shutdown.sh;
else
echo "invalid first parameter :" $1
echo "you can either start or stop a node"
exit -1;
fi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.