BX Framework(BXM) Center-Cut 메인 서비스 인스턴스 설치

Center-Cut 메인 서비스 인스턴스를 위한 ccServiceEndpoint web application의 위치는 $BXM_HOME/centercut/ccServiceEndpoint01 이다.

  • $BXM_HOME/centercut/ccServiceEndpoint01을 tomcat9/webapps/ 디렉토리로 symbolic link생성하여 Was에 배포한다.

  • 이후 $BXM_HOME/centercut/ccServiceEndpoin01은 ccServiceEndpoint01로 대체한다.

    BX Framework(BXM) Center-Cut 메인 서비스 인스턴스 환경파일 리스트
    파일명 파일위치 비고

    web.xml

    ccServiceEndpoint01/WEB-INF/

    web context 설정파일

    bxm-management-instance.xml

    ccServiceEndpoint01/WEB-INF/classes

    BXM Framework Center-Cut 메인 인스턴스 설정파일

    logback.xml

    logback 설정파일 (BXM 사용)

    commons-logging.properties

    commons logging 설정파일 (Spring 사용)

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

      • ccServiceEndpoint01/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>ccServiceEndpoint</display-name>
          <context-param>
            <param-name>config-location</param-name>
            <param-value>bxm-management-instance.xml</param-value>
          </context-param>
          <listener>
                <listener-class>bxm.service.endpoint.http.HttpServiceEndpointContextListener</listener-class>
          </listener>
        
          <servlet>
            <servlet-name>bxmCCHttpServiceEndpointMapping</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>bxmCCHttpServiceEndpointMapping</servlet-name>
            <url-pattern>/httpService/*</url-pattern>
          </servlet-mapping>
        
        </web-app>
    2. BX Framework(BXM) 설정화일을 수정한다.

      • ccServiceEndpoint01/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}/centercut01/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}/centercut01/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 레벨 사용, 운영에서는 warn 레벨 사용을 권장한다.

        • << BXM_HOME >>은 BX Framework(BXM)을 설치한 경로로 수정한다.

        applogdb appender는 Database에 로그를 저장하므로 로그량이 적은 개발서버에서만 사용하는 것을 권장한다. 로그량이 많은 경우 Application의 성능저하가 발생하므로 사용에 주의한다.

      • 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 Center-Cut Configuration</description>
            <environment>
                <system-properties>
                    beantype.usemetadata=true
                    accrue.data.accesstime=true
                    accrue.beanfactory.accesstime=true
                    <!-- For Main Service Only -->
                    asyncTaskExecutor.workerpool=100
                    asyncTaskExecutor.taskqueue=10
                    deferred.run=bxm.centercut.dft.deferred.impl.DefaultCcutDeferredRun
                    <!-- For Main Service Only -->
                </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/online</application-home>
                </loader>
            </environment>
            <management>
                <connector serviceurl="service:jmx:rmi:///jndi/rmi://localhost:30001/jmxrmi">
                    <environment>
                    </environment>
                </connector>
                <objectname domain="JRF">
                        <properties>
                                Name=bxm-management
                        </properties>
                </objectname>
            </management>
        
            <context forced-timeout="3600000">
                <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.DatabaseMessageSource"
                message-classname="bxm.instance.message.SystemDatabaseMessage"
            />
        
            <deferred-service-executor>
                <deferred-services>
                  <deferred-service
                    application="BxmCCMainMng"
                     bean="BCCAutoStart"
                     max-workerpool-size="10"
                     max-queue-size="10"
                     rake-interval="180000"
                     nodata-wait="false"
                     shutdown-mode="PROCESSING_QUEUED_AND_RUNNING_TASK"/>
                  <deferred-service
                    application="BxmCCMainMng"
                     bean="BCCAutoReRegister"
                     max-workerpool-size="10"
                     max-queue-size="10"
                     rake-interval="120000"
                     nodata-wait="false"
                     shutdown-mode="PROCESSING_QUEUED_AND_RUNNING_TASK"/>
                </deferred-services>
            </deferred-service-executor>
        </bxm-instance>
        • NonXA, XA Datasource 는 WAS에 설정된 Datasource JNDI 을 참조하여 설정한다. 본문서에서는 NonXA데이터소스로 APPNXA, XA데이터소스로 APPXA를 사용한다.

        • << BXM_HOME >>은 BX Framework(BXM)을 설치한 경로로 수정한다.

      deferred-service의 BCCAutoStart는 자동 실행에 대한 설정이며 반복 주기는 rake-interval로 조절한다.(단위:ms)

      deferred-service의 BCCAutoReRegister는 오류 자동 재등록에 대한 설정이며 반복 주기는 rake-interval로 조절한다.(단위:ms)

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

Copyright© Bankwareglobal All Rights Reserved.