Salesforce

Quick guide on how to configure multiple Tomcat instances running as service on linux

« Go Back

Information

 
TitleQuick guide on how to configure multiple Tomcat instances running as service on linux
URL NameQuick-guide-on-how-to-configure-multiple-Tomcat-instances-running-as-service-on-linux
Article Number000119109
EnvironmentProduct: OpenEdge
Version: 11.7
OS: centos7 and above, redhat 7 and above
Question/Problem Description
Quick guide on how to configure multiple Tomcat instances running as service on linux
How to configure multiple Tomcat instances running REST as service on linux
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
download Java and Tomcat(into /opt/tomcat) 
groupadd tomcat 

Set up CATALINA_HOME
1.    useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
2.    cd /opt/tomcat
3.    chgrp -R tomcat conf
4.    sudo chmod g+rwx conf
5.    chmod g+r conf/*
6.    chown -R tomcat logs/ temp/ webapps/ work/
7.    chgrp -R tomcat bin
8.    chgrp -R tomcat lib
9.    chmod g+rwx bin
10.    chmod g+r bin/*

Set up systemd unit file for CATALINA_HOME
vi /etc/systemd/system/tomcat.service
#sample 
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=<JavaPath>
Environment=CATALINA_PID=<Catalina_home>/temp/tomcat.pid
Environment=CATALINA_HOME=<Catalina_home>
Environment=CATALINA_BASE=<Catalina_home>
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=<catalina_home>/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

Set up Tomcat instances (CATALINA_BASE)
1.    mkdir /opt/tc_instance1
2.    copy directories
<Catalina_home>/conf
<Catalina_home>/logs
<Catalina_home>/webapps
<Catalina_home>/work
Into /opt/tc_instance1
3.    chgrp -R tomcat conf
4.    chmod g+rwx conf
5.    chmod g+r conf/*
6.    chown -R tomcat logs/ temp/ webapps/ work/
7.    modify /opt/tc_instance1/conf/server.xml to make sure there is no port conflict
<Server port="<newPort>" shutdown="SHUTDOWN">
<Connector port="<newPort>" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector port="<newPort>" protocol="AJP/1.3" redirectPort="8443" />

note: https is not in use in the guide.

Do this for each instances created

Set up systemd unit file for CATALINA_BASE
vi /etc/systemd/system/tomcatinstance1.service
#sample 
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=<JavaPath>
Environment=CATALINA_PID=<Catalina_base>/temp/tomcat.pid
Environment=CATALINA_HOME=<Catalina_home>
Environment=CATALINA_BASE=<Catalina_base>
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=<catalina_home>/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

Note:
All tomcat instances have its own CATALINA_BASE, which is the directory created in step 1. And they all share one CATALINA_HOME, which is /opt/tomcat.

Start Tomcat and instances from systemctl
systemctl start tomcat.service
systemctl start tomcatinstance1.service
Workaround
Notes
Deploy war files into tomcat instances from OEM/OEE is is not supported.
Workaround:
Use Tomcat auto deploy or tomcat manager to deploy.
Both method will enable deployed services
Check under <catalina_base>/webapps/<service>/WEB-INF/adapters/runtime.props
<bpm:serviceAvailable>1</bpm:serviceAvailable>

Set up tomcat manager user:
edit $CATALINA_BASE/conf/tomcat-users.xml/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,admin-gui,admin-script"/>
Keyword Phrase
Last Modified Date8/30/2017 9:17 PM

Powered by