후행 처리 인스턴스 WAS 환경설정
-
후행 처리 instance를 위하여 전용 tomcat을 설치한다
-
tomcat 의 설치위치는 $BXM_HOME과 동일한 레벨의 디렉터리로 tomcat9_deferred01 이라는 디렉터리를 사용한다. 즉, tomcat9_deferred01, $BXM_HOME 이 같은 레벨에 있어야 한다.
tomcat 디렉터리 명명규칙은 사이트 특성에 맞게 하면 된다.
예를 들면, 노드 별로 설정한다면 tomcat9_deferred01, tomcat9_deferred02, tomcat9_deferred03 와 같은 명명규칙이 있다.
-
후행 처리를 사용하기 위하여 Tomcat에 BXM library에 대한 classpath, Datasource, Service port, Context를 설정한다.
-
BXM 라이브러리에 대한 classpath 설정한다.
-
tomcat9_deferred01/conf 디렉터리로 이동한다.
catalina.properties의 common.loader항목에 BXM 라이브러리에 대한 classpath를 추가한다.
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,<<BXM_HOME>>/lib/bxm/*.jar,<<BXM_HOME>>/lib/deps/*.jar,<<BXM_HOME>>/lib/ext/*.jar
BXM_HOME은 후행 처리를 설치한 경로 이다.
-
-
후행 처리에서 사용할 Datasource를 설정한다.
-
tomcat9_deferred01/conf 디렉터리로 이동한다.
-
server.xml을 수정하여 datasource설정을 추가한다.
BXM Framework , Application 사용 NonXA , XA (2개) 의 Datasource 필요
BXMNXA : BXM Framework 사용 NonXA Datasource 이름
APPNXA : Application 사용 NonXA Datasource 이름
APPXA : Application 사용 XA Datasource 이름
-
추가한 설정은 아래와 같다.
<GlobalNamingResources> <Resource type="javax.sql.DataSource" name="BXMNXA" auth="Container" maxActive="20" minIdle="1" maxIdle="1" maxWait="10000" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="oracle.jdbc.OracleDriver" url="<<DB JDBC URL>>" username="bxm" password="<<bxm 계정 password>>" /> <Resource type="javax.sql.DataSource" name="APPNXA" auth="Container" maxActive="20" minIdle="1" maxIdle="1" maxWait="10000" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="oracle.jdbc.OracleDriver" url="<<DB JDBC URL>>" username="bxm" password="<<bxm 계정 password>>" /> <Resource name="APPXA" auth="Container" type="com.atomikos.jdbc.AtomikosDataSourceBean" factory="com.atomikos.tomcat.EnhancedTomcatAtomikosBeanFactory" uniqueResourceName="APPXA" maxPoolSize="20" minPoolSize="1" xaDataSourceClassName="oracle.jdbc.xa.client.OracleXADataSource" xaProperties.databaseName="<<oracle sid>>" xaProperties.serverName="<<db server ip>>" xaProperties.portNumber="<<oracle port>>" xaProperties.user="bxm" xaProperties.password="<<bxm 계정 password>>" xaProperties.URL="<<DB JDBC URL>>" /> </GlobalNamingResources>
<<…>>부분과 Pool의 설정 값(maxActive, minIdle등)은 사용자환경에 맞는 적절한 값으로 수정한다.
-
-
deferredServiceEndpoint가 사용하는 HTTP service port를 설정한다.
-
tomcat9_deferred01/conf 디렉터리로 이동한다.
server.xml 파일을 열고 service port 를 수정한다.
-
추가한 설정은 아래와 같다.
<Connector port="18080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
port에 지정된 값은 본 문서에서 예시한 값이며 사용자환경에 맞는 적절한 값으로 수정 가능하다.
-
-
service endpoint web application context환경을 설정한다.
-
tomcat9_deferred01/conf 디렉터리로 이동한다.
context.xml을 수정한다.
-
추가한 설정은 아래와 같다.
<Context reloadable = "false"> <ResourceLink global="BXMNXA" name="BXMNXA" type="javax.sql.DataSource"/> <ResourceLink global="APPNXA" name="APPNXA" type="javax.sql.DataSource"/> <ResourceLink global="APPXA" name="APPXA" type="com.atomikos.jdbc.AtomikosDataSourceBean"/> <Transaction factory="com.atomikos.icatch.jta.UserTransactionFactory" /> <Resource name="TransactionManager" auth="Container" type="com.atomikos.icatch.jta.UserTransactionManager" factory="org.apache.naming.factory.BeanFactory" /> </Context>
ResourceLink에 지정된 값은 본 문서에서 예시한 값이며, 사용자환경에 맞게 수정 가능하다.
Transaction, Resource에 지정된 값은 그대로 사용하며 Transaction Manager(atomikos)를 익숙한 사용자만 사용자환경에 맞는 적절한 값으로 수정 가능하다.
-
-
service endpoint tomcat instance의 JVM옵션을 설정한다.
-
tomcat9_deferred01/bin 디렉터리로 이동한다.
setenv.sh을 수정한다.
-
추가한 설정은 아래와 같다.
if [ "$1" = "start" ] ; then JAVA_OPTS="$JAVA_OPTS -Dbxm.node.name=DFT1 -Dbxm.instance.name=deferred01 -Dlog.level.layer.file=<<BXM HOME>>/deferred/deferredServiceEndpoint01/WEB-INF/classes/logLayer.properties" JAVA_OPTS="$JAVA_OPTS -Dlogback.configurationFile=<<BXM HOME>>/deferred/deferredServiceEndpoint01/WEB-INF/classes/logback.xml" #Tomcat사용시에만 추가. JAVA_OPTS="$JAVA_OPTS -Dcom.atomikos.icatch.file=<<BXM HOME>>/lib/jta/jta.properties" JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx1024m -XX:MaxPermSize=256m" #OJDBC7 AutoCommit Error validate option false JAVA_OPTS="$JAVA_OPTS -Doracle.jdbc.autoCommitSpecCompliant=false" fi
-
-