후행 처리 인스턴스 환경설정
후행 처리 인스턴스를 위한 WebApplication의 위치는 $BXM_HOME/deferred/deferredServiceEndpoint01 이다.
아래의 내용대로 적용하여 WAS에 후행 처리 인스턴스 설정을 완료한다.
-
tomcat9_deferred01/webapps 위치에서 $BXM_HOME/deferred/deferredServiceEndpoint01를 심볼릭 링크 설정 한다.
파일명 | 파일위치 | 비고 |
---|---|---|
web.xml |
$BXM_HOME/deferred/deferredServiceEndpoint01/WEB-INF/ |
web context 설정파일 |
bxm-management-instance.xml |
$BXM_HOME/deferred/deferredServiceEndpoint01/WEB-INF/classes |
후행 처리 인스턴스 설정파일 |
logback.xml |
logback 설정파일 (BXM 사용) |
|
commons-logging.properties |
commons logging 설정파일 (Spring 사용) |
-
web context 설정파일을 수정한다.
-
$BXM_HOME/deferred/deferredServiceEndpoint01/WEB-INF/ 디렉터리로 이동한다
-
web.xml 설정 및 확인
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"> <display-name> deferredServiceEndpoint01 </display-name> <context-param> <param-name>config-location</param-name> <param-value>bxm-management-instance.xml</param-value> </context-param> <listener> <listener-class>bxm.deferred.endpoint.http.HttpDeferredEndpointContextListener</listener-class> </listener> <servlet> <servlet-name>bxmHttpServiceEndpointMapping</servlet-name> <servlet-class>bxm.dft.service.endpoint.http.DefaultHttpServiceEndpointMapping</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>fld-encoding</param-name> <param-value>UTF-8</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>bxmHttpServiceEndpointMapping</servlet-name> <url-pattern>/httpService/*</url-pattern> </servlet-mapping> </web-app>
-
-
후행 처리 설정파일을 수정한다.
-
$BXM_HOME/deferred/deferredServiceEndpoint01/WEB-INF/classes 디렉터리로 이동한다
-
commons-logging.properties 설정 및 확인
commons-logging을 통해 Spring로그가 대량으로 출력되므로 로그를 출력하지 않도록 설정되어 있다.
디폴트 값을 그대로 사용한다.
-
logback.xml 설정 및 확인
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <property name="LOGS_ABSOLUTE_PATH" value="{BXM_HOME}/logs" /> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%logger{36}:%line] - %msg%n</pattern> </encoder> </appender> <appender name="applogfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS_ABSOLUTE_PATH}/deferred01/app_${bxm.node.name}_${bxm.instance.name}.log</file> <encoder> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%X{guid}][%-5level][%logger{36}:%line] - %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOGS_ABSOLUTE_PATH}/deferred01/app_${bxm.node.name}_${bxm.instance.name}.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> <totalSizeCap>3GB</totalSizeCap> </rollingPolicy> </appender> <appender name="applogdb" class="bxm.dft.logging.logback.DefaultAsyncTableAppender"> <connectionSource class="ch.qos.logback.core.db.JNDIConnectionSource"> <jndiLocation>java:BXMNXA</jndiLocation> <!--jndiLocation>java:/comp/env/BXMNXA</jndiLocation--> </connectionSource> <bufferSize>5</bufferSize> <pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}][%logger{36}:%line] - %msg%n</pattern> </appender> <root level="debug"> <appender-ref ref="console" /> <appender-ref ref="applogfile" /> <appender-ref ref="applogdb" /> </root> </configuration>
-
로그레벨은 개발에서는 debug 레벨 사용, 운영에서는 info 레벨 사용을 권장한다.
파일로그 명명규칙은 사이트 명명규칙에 맞게 수정한다.
-
<< BXM_HOME >>은 후행 처리를 설치한 경로이다.
-
-
bxm-management-instance.xml 설정 및 확인
<?xml version="1.0" encoding="UTF-8"?> <bxm-instance xmlns="http://www.bankwareglobal.com/schema/instance" xmlns:cn="http://www.bankwareglobal.com/schema/common" name="bxm-instance"> <description> BXM Deferred Configuration</description> <environment> <system-properties> beantype.usemetadata=true accrue.data.accesstime=true accrue.beanfactory.accesstime=true deferred.node.no=1 deferred.init.wait.time=3000 deferred.numbering=true deferred.numbering.time=5000 deferred.node.status=true deferred.main.interval=3000 deferred.processor.run=true deferred.err.processor.run=true </system-properties> <!-- 개발 : D, 운영 : O, 테스트 : T --> <system-mode>D</system-mode> <datasource> <jndi-datasource jndi-name="java:/comp/env/BXMNXA" /> </datasource> <loader mode="hot" autodeploy="true" interval-millis="10000" lazy-init="true" deferred-init="true" deferred-init-interval="1000" sessionfactory-lazyinit="true"> <application-home><<BXM_HOME>>/apps/deferred</application-home> </loader> </environment> <management> <connector serviceurl="service:jmx:rmi:///jndi/rmi://localhost:20001/jmxrmi"> <environment> </environment> </connector> <objectname domain="JRF"> <properties> Name=bxm-management </properties> </objectname> </management> <context forced-timeout="120000"> <preprocessor classname="bxm.dft.service.processor.DefaultSystemPreProcessor" order="1"/> <postprocessor classname="bxm.dft.service.processor.DefaultSystemPostProcessor" order="1"/> <control-parameter classname="bxm.dft.context.control.impl.DefaultControlParametersImpl"/> <transaction-rollbackfors> bxm.app.ApplicationException bxm.dft.app.DefaultApplicationException </transaction-rollbackfors> <request header-classname="bxm.dft.context.DefaultSystemHeader" imagelogging="true" request-resolver-classname="bxm.dft.request.DefaultRequestResolver" response-resolver-classname="bxm.dft.request.DefaultResponseResolver" request-trace-classname="bxm.dft.request.DefaultRequestTrace" interceptor-classname="bxm.dft.service.endpoint.DefaultRequestInterceptor" service-executor-interceptor-classname="bxm.dft.service.DefaultServiceExecutorInterceptor" /> </context> <!-- 개발 (max-resultset 값은 프로젝트 설정에 따라 정의) --> <data-access trace-inject="false" monitor-inject="false" identify-inject="true" max-resultset="1000" fetch-size="10" min-fetch-size="10" limit-exceeded-action="Warning" forced-logging="false"> <jndi-datasource-aliases> <!-- name : J2EE Application Service dataSource jndiName for applications --> <!-- alias : jndi-datasource, jndi-xadatasource value in application configuration file( bxm-application.xml) --> <alias name="java:/comp/env/APPNXA" alias="DSNXA"/> <alias name="java:/comp/env/APPXA" alias="DSXA"/> </jndi-datasource-aliases> </data-access> <message message-source-classname="bxm.instance.message.DatabaseMessageSource"/> <system-message message-source-classname="bxm.instance.message.SystemDatabaseMessageSource" /> </bxm-instance>
-
NonXA, XA Datasource 는 WAS에 설정된 Datasource JNDI 을 참조하여 설정한다. 본 문서에서는 NonXA데이터소스로 APPNXA, XA데이터소스로 APPXA를 사용한다.
-
<< BXM_HOME >>은 후행 처리를 설치한 경로이다.
-
-