WAS
JVM 설치
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
[edu@wasts1 ~]$ vi ~/.bashrc
# User specific aliases and functions
JAVA_HOME=/usr/lib/jvm/java-1.8.0
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
tomcat 설치
]# mkdir -p /edu/tomcat/engine/
]# cd /edu/tomcat/engine/
]# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-9/v9.0.29/bin/apache-tomcat-9.0.29.tar.gz
]# tar zxvf apache-tomcat-9.0.29.tar.gz
]# rm -f /edu/tomcat/engine/apache-tomcat-9.0.29.tar.gz
DB 연결
- DB 벤더에서 제공하는 JDBC 드라이드 다운로드
cp /home/share/LABS/mysql-connector-java-8.0.18.jar /edu/tomcat/engine/apache-tomcat-9.0.29/lib/
<GlobalNamingResources>
…
<Resource name="jdbc/eduDS" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.56.101:3306/edu?useUnicode=true&characterEncoding=utf8"
username="edu" password="edu"
maxTotal="10"
maxIdle="10"
minIdle="10"
maxWaitMillis="30000"
validationQuery="SELECT 1"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
/>
</GlobalNamingResources>
<Context path="" docBase=“/edu/webapp/example.war">
<ResourceLink global=“jdbc/eduDS” name=“jdbc/eduDS”
type=“javax.sql.DataSource” />
</Context>
- GlobalNamingResouce 는 Context 별로 공유해서 해서 사용
- context 내에 ResouceLink로 사용
tomcat 클러스터링
- HTTP Session 클러스터링
- UDP를 지원하지 않는 Cloud 환경에서는 TCP로 변경해서 사용
- 대용량 트래픽을 원하는 어플리케이션은 적합하지 않음
클러스터링 설정
]$ /edu/webapp/example.war/WEB-INF/web.xml
<web-app>
<distributable />
</web-app>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="${server.name}">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
bind="192.168.56.101"
address="231.0.6.1"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.56.101"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<생략>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>