후행 처리 인스턴스 환경설정

후행 처리 인스턴스를 위한 WebApplication의 위치는 $BXM_HOME/deferredProc/dfServiceEndpoint01 이다.

아래의 내용대로 적용하여 WAS에 후행 처리 인스턴스 설정을 완료한다.

  • tomcat11_deferredProc01/webapps 위치에서 $BXM_HOME/deferredProc/dfServiceEndpoint01를 심볼릭 링크 설정 한다.

후행 처리 인스턴스 환경파일 리스트
파일명 파일위치 비고

web.xml

$BXM_HOME/deferredProc/dfServiceEndpoint01/WEB-INF/

web context 설정파일

bxm-management-instance.xml

$BXM_HOME/deferredProc/dfServiceEndpoint01/WEB-INF/classes

후행 처리 인스턴스 설정파일

logback.xml

logback 설정파일 (BXM 사용)

commons-logging.properties

commons logging 설정파일 (Spring 사용)

  1. web context 설정파일을 수정한다.

    • $BXM_HOME/deferredProc/dfServiceEndpoint01/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> deferredProcServiceEndpoint01 </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.proc.endpoint.http.HttpDeferredEndpointContextListener</listener-class>
        </listener>
      
      </web-app>
  2. 후행 처리 설정파일을 수정한다.

    • $BXM_HOME/deferredProc/dfServiceEndpoint01/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="siftappender" class="ch.qos.logback.classic.sift.SiftingAppender">
              <discriminator>
                  <key>deferredId</key>
                  <defaultValue>unknown</defaultValue>
              </discriminator>
      
              <sift>
      
          <appender name="eachfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
              <file>${LOGS_ABSOLUTE_PATH}/deferredProc/partial/${deferredId}/${deferredId}.log</file>
              <encoder>
                  <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
              </encoder>
              <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                  <fileNamePattern>${LOGS_ABSOLUTE_PATH}/deferredProc/partial/${deferredId}/${deferredId}.%d{yyyy-MM-dd}.log</fileNamePattern>
                  <maxHistory>30</maxHistory>
                  <totalSizeCap>3GB</totalSizeCap>
              </rollingPolicy>
          </appender>
      
              </sift>
          </appender>
      
          <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}/deferredProc/deferredProc01.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}/deferredProc/deferredProc01.%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>
              </connectionSource>
              <bufferSize>5</bufferSize>
              <pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}][%logger{36}:%line] - %msg%n</pattern>
          </appender>
      
          <root level="info">
              <appender-ref ref="console" />
              <appender-ref ref="applogfile" />
              <appender-ref ref="applogdb" />
              <appender-ref ref="siftappender" />
          </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 Proc Configuration</description>
           <environment>
              <system-properties>
                  beantype.usemetadata=true
                  accrue.data.accesstime=true
                  accrue.beanfactory.accesstime=true
                  deferred.node.nm=aft11
                  deferred.taskqueue=30
                  deferred.app.datasource.nm=MainDS
                  deferred.encoding=UTF-8
                  deferred.repeat.error.occur.control=Y
              </system-properties>
              <system-mode>D</system-mode>
              <datasource>
                  <jndi-datasource jndi-name="java:/comp/env/BXMNXA">
                  </jndi-datasource>
              </datasource>
              <loader mode="hot" autodeploy="true" interval-millis="8000" registry="off" lazy-init="true" deferred-init="true" deferred-init-interval="1000" sessionfactory-lazyinit="true" use-lastmodified-cache="true">
                  <application-home><<BXM_HOME>>/apps/deferredProc</application-home>
                  <instrument>
                      <cn:transformer classname="bxm.dft.transform.PrintServiceLogTagTransformer" order="1">
                          <cn:typefilter rule="include" type="regex" expression="bxm.*.bean.*"/>
                      </cn:transformer>
                  </instrument>
              </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="30000">
              <preprocessor classname="bxm.dft.service.processor.DefaultSystemPreProcessor" order="1"/>
              <preprocessor classname="bxm.validation.processor.SimpleValidatePreProcessor" order="2"/>
              <postprocessor classname="bxm.dft.service.processor.DefaultSystemPostProcessor" order="1"/>
              <postprocessor classname="bxm.dft.service.processor.DefaultServiceLogPostProcessor" order="2"/>
              <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>
      
            <data-access trace-inject="false" monitor-inject="false" identify-inject="true" max-resultset="5000" fetch-size="100" min-fetch-size="100" limit-exceeded-action="Error" forced-logging="true">
              <jndi-datasource-aliases>
                  <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.DatabaseMessageSource"
              message-classname="bxm.instance.message.SystemDatabaseMessage"
          />
      
      </bxm-instance>
      • NonXA, XA Datasource 는 WAS에 설정된 Datasource JNDI 을 참조하여 설정한다. 본 문서에서는 NonXA데이터소스로 APPNXA, XA데이터소스로 APPXA를 사용한다.

      • << BXM_HOME >>은 후행 처리를 설치한 경로이다.

SWLab Bankware Global
  • 전체
  • BXM
  • BXCM
  • BXCP
  • BXI
제품 선택 시 더 정확한 매뉴얼 가이드를 제공해드립니다.

Copyright© Bankwareglobal All Rights Reserved.