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);
}
...