BX Framework(BXM) Center-Cut Main Service Instance Installation
The location of the ccServiceEndpoint web application for the Center-Cut main service instance is $BXM_HOME/centercut/ccServiceEndpoint01.
-
Deploy to WAS by creating a symbolic link from $BXM_HOME/centercut/ccServiceEndpoint01 to the tomcat9/webapps/ directory.
-
After that, $BXM_HOME/centercut/ccServiceEndpoin01 is replaced with ccServiceEndpoint01.
BX Framework(BXM) Center-Cut Main Service Instance Environment File List File name File location Remarks web.xml
ccServiceEndpoint01/WEB-INF/
web context configuration file
bxm-management-instance.xml
ccServiceEndpoint01/WEB-INF/classes
BXM Framework Center-Cut main instance configuration file
logback.xml
logback configuration file (used by BXM)
commons-logging.properties
commons logging configuration file (used by Spring)
-
Modify the web context configuration file.
-
Move to the ccServiceEndpoint01/WEB-INF/ directory.
-
Configure and check web.xml.
Default configuration (no modifications)
<?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>
-
-
Modify the BX Framework(BXM) configuration file.
-
Move to the ccServiceEndpoint01/WEB-INF/classes directory.
-
Configure and check commons-logging.properties.
Since a large amount of Spring logs is printed through commons-logging, it is configured not to output logs.
Use the default values as they are.
-
Configure and check 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>-
For development, use the debug log level; for production, it is recommended to use the warn level.
-
Modify << BXM_HOME >> to the path where BX Framework(BXM) is installed.
Since the applogdb appender stores logs in the database, it is recommended to use it only on development servers where the log volume is small. If the log volume is large, Application performance degradation may occur, so use it with caution.
-
-
Configure and check 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> <!-- Development: D, Production: O, Test: 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> <!-- Development (the max-resultset value is defined according to project settings) --> <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>-
Configure NonXA and XA Datasource by referring to the Datasource JNDI set in WAS. In this document, APPNXA is used as the NonXA datasource and APPXA as the XA datasource.
-
Modify << BXM_HOME >> to the path where BX Framework(BXM) is installed.
-
BCCAutoStart of deferred-service is the configuration for automatic execution, and the repeat cycle is adjusted with rake-interval. (unit: ms)
BCCAutoReRegister of deferred-service is the configuration for automatic error re-registration, and the repeat cycle is adjusted with rake-interval. (unit: ms)
-
-