Online 설정

BXM 온라인에 Multi-Domain 기능을 적용하기 위해선 다음과 같은 추가적인 설정이 필요하다.

  • SystemHeader에 Interface 추가 구현

  • ControlParameter에 Interface 추가 구현

1. SystemHeader에 Interface 추가 구현

대상 Interface: bxm.request.EnableDomainContextHeader

package bxm.request;

import bxm.container.EnableDomain;

public interface EnableDomainContextHeader extends EnableDomain {

    /**
     * Domain Id를 반환한다.
     * @return Domain Id
     */
    String getDomainId();
}

구현 예시(bxm.dft.context.DefaultSystemHeader)

...
@XmlRootElement( name= "header")
public class DefaultSystemHeader extends ContextHeader implements IOmmObject, Predictable, FieldInfo, EnableDomainContextHeader  {
...
    @BxmOmm_Field(referenceType="reference", description="domain id", formatType="", format="", align="left", length=14, decimal=0, arrayReference="", fill="", validationRule="")
    private java.lang.String domainId  = EnableDomain.DEFAULT_DOMAIN_ID;

    /**
     * @Description domain id
     */
    public java.lang.String getDomainId(){
        return domainId;
    }

    /**
     * @Description domain id
     */
    @JsonProperty("domainId")
    public void setDomainId( java.lang.String domainId ) {
        isSet_domainId = true;
        if (StringUtils.hasLength(domainId))
            this.domainId = domainId;
    }
...

2. ControlParameter에 Interface 추가 구현

대상 Interface: bxm.instance.context.control.EnableDomainControlParameters

package bxm.instance.context.control;

import javax.sql.DataSource;

public interface EnableDomainControlParameters{

    void loadControlParameters(DataSource datasource, String domainId, String applicatioName, String serviceName, String operationName);
}

대상 Interface: bxm.instance.context.control.EnableDomainCachedControlParameters

package bxm.instance.context.control;

public interface EnableDomainCachedControlParameters{

    void clearCache( String domainId, String applicationName, String serviceName, String operationName);
}

구현 예시(bxm.dft.context.control.impl.DefaultControlParametersImpl)

...
public class DefaultControlParametersImpl implements CachedControlParameters, DefaultControlParameters, EnableDomainControlParameters, EnableDomainCachedControlParameters {
    private Logger logger = LoggerFactory.getLogger(DefaultControlParametersImpl.class);
    ...
    @Override
    public void loadControlParameters(DataSource datasource, String domainId, String trxCd, String serviceName, String operationName) {
        Assert.notNull(datasource, "datasource can not be null.");
        Assert.hasText(domainId, "domainId can not be null or empty.");
        Assert.hasText(trxCd, "trxCd can not be null or empty.");

        logger.debug("load control paramter - domainId : {}, trxCd : {}", domainId, trxCd);
    ...
    @Override
    public void clearCache(String domainId, String trxCd, String serviceName, String operationName) {
        logger.debug("clearing control parameter cache for (domainId [{}], trxCd [{}])", domainId, trxCd);
        cachedControlParameters.remove(domainId + "." + trxCd);
    }
    ...

Copyright© Bankwareglobal All Rights Reserved.