init
This commit is contained in:
@@ -0,0 +1,524 @@
|
||||
package com.eactive.eai.flowcontroller;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
|
||||
import com.eactive.eai.adapter.AdapterGroupVO;
|
||||
import com.eactive.eai.adapter.AdapterManager;
|
||||
import com.eactive.eai.adapter.Keys;
|
||||
import com.eactive.eai.common.EAIKeys;
|
||||
import com.eactive.eai.common.EAITable;
|
||||
import com.eactive.eai.common.exception.ExceptionHandler;
|
||||
import com.eactive.eai.common.exception.ExceptionUtil;
|
||||
import com.eactive.eai.common.message.EAIMessage;
|
||||
import com.eactive.eai.common.message.EAIMessageKeys;
|
||||
import com.eactive.eai.common.message.MessageType;
|
||||
import com.eactive.eai.common.property.PropManager;
|
||||
import com.eactive.eai.common.routing.IFRouter;
|
||||
import com.eactive.eai.common.routing.Process;
|
||||
import com.eactive.eai.common.routing.RouteKeys;
|
||||
import com.eactive.eai.common.server.EAIServerManager;
|
||||
import com.eactive.eai.common.util.Logger;
|
||||
import com.eactive.eai.common.util.MessageUtil;
|
||||
import com.eactive.eai.common.util.ObjectUtil;
|
||||
import com.eactive.eai.common.util.ServiceUtil;
|
||||
import com.eactive.eai.control.LogSender;
|
||||
import com.eactive.eai.message.StandardMessage;
|
||||
import com.eactive.eai.message.service.InterfaceMapper;
|
||||
import com.eactive.eai.transformer.function.util.CodeConversion;
|
||||
import com.ext.eai.common.stdmessage.STDMessageKeys;
|
||||
|
||||
public class CompFCProcess extends Process {
|
||||
public String adptrMsgPtrnCd;
|
||||
|
||||
public java.lang.String adapterGroupName;
|
||||
|
||||
public int logPssSeq;
|
||||
|
||||
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
|
||||
|
||||
public java.util.Properties callProp;
|
||||
|
||||
public EAIMessage resEaiMsg;
|
||||
|
||||
public com.eactive.eai.common.message.EAIMessage reqEaiMsg;
|
||||
|
||||
static Logger esbLogger = Logger.getLogger(Logger.LOGGER_ESBFW);
|
||||
private int svrLogLevel;
|
||||
private static ThreadLocal local = new ThreadLocal(); // 경과시간 동기화를 위한 ThreadLocal
|
||||
|
||||
String guidLogPrefix = "";
|
||||
|
||||
static final long serialVersionUID = 1L;
|
||||
|
||||
public EAIMessage clientReturn() {
|
||||
if (svrLogLevel >= 1) {
|
||||
try {
|
||||
long msgSndTm = System.currentTimeMillis();
|
||||
|
||||
Long threadData = (Long) local.get();
|
||||
long processTm = msgSndTm - threadData.longValue();
|
||||
if (esbLogger.isInfo())
|
||||
esbLogger.info(
|
||||
guidLogPrefix + "End... - 경과시간 : " + processTm + "(ms) - EAI Server Log Level is INFO");
|
||||
} catch (Exception e) {
|
||||
logger.warn("clientReturn", e);
|
||||
}
|
||||
}
|
||||
return resEaiMsg;
|
||||
}
|
||||
|
||||
public void callService(com.eactive.eai.common.message.EAIMessage reqEaiMsg, java.util.Properties callProp) {
|
||||
this.reqEaiMsg = reqEaiMsg;
|
||||
this.callProp = callProp;
|
||||
|
||||
if (this.reqEaiMsg == null)
|
||||
return;
|
||||
svrLogLevel = this.reqEaiMsg.getSvrLogLvl();
|
||||
|
||||
// guidLogPrefix = "BaseFCProcess] GUID["+reqEaiMsg.getKbMsg().getKBHeader().getGuIdNo()+"] UUID["+this.reqEaiMsg.getSvcOgNo()+"] ";
|
||||
guidLogPrefix = "BaseFCProcess] GUID[" + getGuid(reqEaiMsg) + "] UUID[" + this.reqEaiMsg.getSvcOgNo() + "] ";
|
||||
|
||||
if (svrLogLevel >= 1) {
|
||||
try {
|
||||
long msgRcvTm = System.currentTimeMillis();
|
||||
local.set(new Long(msgRcvTm));
|
||||
|
||||
if (esbLogger.isInfo())
|
||||
esbLogger.info(guidLogPrefix + " started... - EAI Server Log Level is INFO");
|
||||
} catch (Exception e) {
|
||||
logger.warn("callService", e);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
flow();
|
||||
} catch (Exception e) {
|
||||
printExceptionMessage(e);
|
||||
if (isSourceAsync()) {
|
||||
logSenderCtrlSend();
|
||||
callExceptionHandler();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void flow() throws Exception {
|
||||
// isRealCall
|
||||
if (!isRealCall()) {
|
||||
return;
|
||||
}
|
||||
// 초기화
|
||||
init();
|
||||
// Outbound 프로세스 호출
|
||||
ifRouterProcess();
|
||||
// GUID설정
|
||||
setGUID();
|
||||
// if (checkServiceMsgSize()){
|
||||
// callMultiProcess();
|
||||
// }
|
||||
}
|
||||
|
||||
// public void callMultiProcess() throws Exception{
|
||||
//
|
||||
// if (logger.isDebug()) logger.debug( guidLogPrefix + "ASYNC-SYNC CALLED");
|
||||
// //---------------------------------------------------------------
|
||||
// // AS의 경우 다음 서비스메시지(AS 응답)에 키관리메시지내용을 복사한다.
|
||||
// //---------------------------------------------------------------
|
||||
// String keyMgtMsgVl = resEaiMsg.getCurrentSvcMsg().getKeyMgtMsgVl();
|
||||
// if(logger.isDebug()) logger.debug( guidLogPrefix + "AS 응답 keyMgtMsgVl["+keyMgtMsgVl+"]");
|
||||
//
|
||||
// EAIMessage newReqEaiMsg = SerializationUtils.clone(this.reqEaiMsg);
|
||||
// newReqEaiMsg.setSvcPssSeq( newReqEaiMsg.getSvcPssSeq() + 1 );
|
||||
// newReqEaiMsg.getCurrentSvcMsg().setKeyMgtMsgVl(keyMgtMsgVl);
|
||||
// //---------------------------------------------------------------
|
||||
//
|
||||
// // 기동이 표준인 경우만
|
||||
//// if(com.eactive.eai.adapter.Keys.IF_STANDARD.equals(newReqEaiMsg.getStdMsgUsgCls())){
|
||||
//// resEaiMsg = ExtMessageConverter.setAsyncSyncResponseForStandard(guidLogPrefix, reqEaiMsg, resEaiMsg);
|
||||
//// }
|
||||
//
|
||||
// try {
|
||||
// this.resEaiMsg = IFRouter.process(newReqEaiMsg, this.callProp);
|
||||
// } catch(Exception e) {
|
||||
// String[] msgArgs = new String[1];
|
||||
// msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
// String rspErrorCode = "RECEAIFBF100";
|
||||
// String orgErrorCode = ExceptionUtil.getErrorCode(e, rspErrorCode);
|
||||
// String rspErrorMsg = ExceptionUtil.make(rspErrorCode, orgErrorCode, msgArgs);
|
||||
// if (logger.isError()) logger.error(guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
// //throw new RuntimeException(rspErrorCode);
|
||||
// // 2009.11.26 : 정길영과장 요청
|
||||
// // AS 응답송신 중 에러가 밸생할 경우 400 에러로그를 남기도록 수정
|
||||
// this.logPssSeq = 400;
|
||||
// LogSender.send(this.logPssSeq, this.resEaiMsg, null);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void ifRouterProcess() throws Exception {
|
||||
try {
|
||||
String keyMgtMsgVl = null;
|
||||
JSONObject totalResDataObject = new JSONObject();
|
||||
|
||||
for (int i = 0; i < reqEaiMsg.getSvcMsgs().size(); i++) {
|
||||
EAIMessage reqMsg = (EAIMessage) ObjectUtil.deepCopy(this.reqEaiMsg);
|
||||
reqMsg.setSvcPssSeq(i + 1);
|
||||
if (keyMgtMsgVl != null)
|
||||
reqMsg.getCurrentSvcMsg().setKeyMgtMsgVl(keyMgtMsgVl);
|
||||
this.resEaiMsg = IFRouter.process(reqMsg, this.callProp);
|
||||
// byte[] resBytes = (byte[]) this.resEaiMsg.getExtMsg().getBizData()[0];
|
||||
String bizData = this.resEaiMsg.getStandardMessage().getBizData();
|
||||
|
||||
// ServiceMessage svcMsg = reqMsg.getSvcMsg(i);
|
||||
// String encode = null;
|
||||
// if("1".equals(svcMsg.getBsRspCnvEn()) && StringUtils.isNotBlank(svcMsg.getBsRspCnvMsgID())) {
|
||||
// Layout layout = TransformManager.getManager().getTransform(svcMsg.getBsRspCnvMsgID()).getSourceLayout(0);
|
||||
// if("UJSON".equals(layout.getLayoutType().getName())) {
|
||||
// encode = "utf-8";
|
||||
// } else {
|
||||
// encode = "euc-kr";
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if(StringUtils.isBlank(encode)) {
|
||||
// AdapterGroupVO gvo = AdapterManager.getInstance().getAdapterGroupVO(svcMsg.getPsvSysItfTp());
|
||||
// encode = MessageUtil.isUTF8(gvo.getMessageType()) ? "utf-8": "ms949";
|
||||
// }
|
||||
// String resString = new String(resBytes, encode);
|
||||
|
||||
// totalResDataObject.putAll((JSONObject)JSONValue.parse(resString));
|
||||
|
||||
totalResDataObject.putAll((JSONObject) JSONValue.parse(bizData));
|
||||
keyMgtMsgVl = resEaiMsg.getCurrentSvcMsg().getKeyMgtMsgVl();
|
||||
}
|
||||
|
||||
AdapterGroupVO gvo = AdapterManager.getInstance().getAdapterGroupVO(this.adapterGroupName);
|
||||
|
||||
// String encode = MessageUtil.isUTF8(gvo.getMessageType()) ? "utf-8" : "ms949";
|
||||
// this.resEaiMsg.getExtMsg().getBizData()[0] = totalResDataObject.toJSONString().getBytes(encode);
|
||||
} catch (Exception e) {
|
||||
String[] msgArgs = new String[1];
|
||||
msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
String rspErrorCode = "RECEAIFBF001";
|
||||
String rspErrorMsg = ExceptionUtil.make(e, rspErrorCode, msgArgs);
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
this.resEaiMsg.setRspErr(rspErrorCode,rspErrorMsg);
|
||||
throw new Exception(rspErrorCode);
|
||||
}
|
||||
}
|
||||
|
||||
public void ifRouterProcessResponse() throws Exception {
|
||||
try {
|
||||
this.reqEaiMsg.setSvcPssSeq(2);
|
||||
this.resEaiMsg = IFRouter.process(this.reqEaiMsg, this.callProp);
|
||||
// this.resEaiMsg.getExtMsg().setSendRecv(STDMessageKeys.SEND_RECV_CD_SEND);
|
||||
setReturnType(this.resEaiMsg, STDMessageKeys.SEND_RECV_CD_SEND);
|
||||
} catch (Exception e) {
|
||||
String[] msgArgs = new String[1];
|
||||
msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
String rspErrorCode = "RECEAIFBF100";
|
||||
String orgErrorCode = ExceptionUtil.getErrorCode(e, rspErrorCode);
|
||||
String rspErrorMsg = ExceptionUtil.make(rspErrorCode, orgErrorCode, msgArgs);
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
this.resEaiMsg.setRspErr(rspErrorCode,rspErrorMsg);
|
||||
// throw new RuntimeException(rspErrorCode);
|
||||
// 2009.11.26 : 정길영과장 요청
|
||||
// AS 응답송신 중 에러가 밸생할 경우 400 에러로그를 남기도록 수정
|
||||
this.logPssSeq = 400;
|
||||
LogSender.send(this.logPssSeq, this.resEaiMsg, null);
|
||||
}
|
||||
}
|
||||
|
||||
public void logSenderCtrlSend() {
|
||||
// String telgmDmndDstcd = kbmessage.getKBHeader().getTelgmDmndDstcd();
|
||||
String returnType = getReturnType(reqEaiMsg);
|
||||
|
||||
if (STDMessageKeys.SEND_RECV_CD_RECV.equals(returnType)) {
|
||||
this.logPssSeq = 400;
|
||||
} else {
|
||||
this.logPssSeq = 200;
|
||||
}
|
||||
|
||||
try {
|
||||
LogSender.send(this.logPssSeq, this.resEaiMsg, null);
|
||||
} catch (Exception e) {
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + "AA Exception Logging Error :" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean checkServiceMsgSize() {
|
||||
// Outbound Error일 경우
|
||||
if (MessageUtil.checkRspErrCd(this.resEaiMsg.getRspErrCd()) && reqEaiMsg.getSvcMsgs().size() > 1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void setCurrentService() throws Exception {
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + "ASYNC-SYNC CALLED");
|
||||
// ---------------------------------------------------------------
|
||||
// AS의 경우 다음 서비스메시지(AS 응답)에 키관리메시지내용을 복사한다.
|
||||
// ---------------------------------------------------------------
|
||||
String keyMgtMsgVl = resEaiMsg.getCurrentSvcMsg().getKeyMgtMsgVl();
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + "AS 응답 keyMgtMsgVl[" + keyMgtMsgVl + "]");
|
||||
resEaiMsg.setSvcPssSeq(resEaiMsg.getSvcPssSeq() + 1);
|
||||
resEaiMsg.getCurrentSvcMsg().setKeyMgtMsgVl(keyMgtMsgVl);
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
// 기동이 표준인 경우만
|
||||
if (com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.reqEaiMsg.getStdMsgUsgCls())) {
|
||||
// resEaiMsg = ExtMessageConverter.setAsyncSyncResponseForStandard(guidLogPrefix, reqEaiMsg, resEaiMsg);
|
||||
setReturnType(resEaiMsg, STDMessageKeys.SEND_RECV_CD_RECV);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isOutboundCall() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void init() throws Exception {
|
||||
InterfaceMapper mapper = this.reqEaiMsg.getMapper();
|
||||
StandardMessage standardMessage = this.reqEaiMsg.getStandardMessage();
|
||||
String guid = mapper.getGuid(standardMessage);
|
||||
String guidseq = mapper.getGuidSeq(standardMessage);
|
||||
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " REQ Current GUID [" + guid + "][" + guidseq + "]");
|
||||
mapper.nextGuidSeq(standardMessage);
|
||||
guidseq = mapper.getGuidSeq(standardMessage);
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " REQ ADD PATHSEQ GUID [" + guid + "][" + guidseq + "]");
|
||||
|
||||
String adapterType = "";
|
||||
this.resEaiMsg = this.reqEaiMsg;
|
||||
|
||||
this.adapterGroupName = reqEaiMsg.getCurrentSvcMsg().getPsvSysItfTp();
|
||||
|
||||
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
|
||||
if (eaiServerManager.isTASEnabledEAIServer() && EAIMessageKeys.TRANTYPE_TAS.equals(reqEaiMsg.getTranType())) {
|
||||
// this.adptrMsgPtrnCd = com.eactive.eai.adapter.Keys.IF_NONSTANDARD;
|
||||
// adapterType = Keys.TYPE_NET2;
|
||||
PropManager manager = PropManager.getInstance();
|
||||
Properties prop = manager.getProperties(RouteKeys.SIM);
|
||||
|
||||
if (reqEaiMsg.getCurrentSvcMsg().isSyncItfTp()) {
|
||||
this.adapterGroupName = prop.getProperty(RouteKeys.SIM_ADAPTER_SYNC, "_SIM_OU_HTT_SyC");
|
||||
} else {
|
||||
this.adapterGroupName = prop.getProperty(RouteKeys.SIM_ADAPTER_ASYNC, "_SIM_OU_HTT_AsC");
|
||||
}
|
||||
} else {
|
||||
AdapterManager adapterManager = AdapterManager.getInstance();
|
||||
AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(this.adapterGroupName);
|
||||
|
||||
// 등록된 어댑터가 실제 존재하지 않는 경우 : 2009.04.03
|
||||
if (adptGrpVO == null) {
|
||||
String[] msgArgs = new String[1];
|
||||
msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
String rspErrorCode = "RECEAIFBF003";
|
||||
String rspErrorMsg = ExceptionUtil.make(rspErrorCode, msgArgs) + "(어댑터그룹 미등록/미사용 - "
|
||||
+ this.adapterGroupName + ")";
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
this.resEaiMsg.setRspErr(rspErrorCode,rspErrorMsg);
|
||||
throw new Exception(rspErrorCode);
|
||||
}
|
||||
// failover 사용시에는 제거 되어야됨
|
||||
// if(adptGrpVO.nextAdapterVO() == null) {
|
||||
// String[] msgArgs = new String[1];
|
||||
// msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
// String rspErrorCode = "RECEAIFBF002";
|
||||
// String rspErrorMsg = ExceptionUtil.make(rspErrorCode, msgArgs)
|
||||
// + ","+this.adapterGroupName;
|
||||
// if (logger.isError()) logger.error( guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
// throw new Exception(rspErrorCode);
|
||||
// }
|
||||
this.adptrMsgPtrnCd = adptGrpVO.getAdptrMsgPtrnCd();
|
||||
adapterType = adptGrpVO.getType();
|
||||
}
|
||||
|
||||
String svcTsmtUsgTp = ""; // 기동 호출방식
|
||||
String psvItfTp = ""; // 수동 호출방식
|
||||
|
||||
// 2009.03.11
|
||||
// AA가 아니고 기동이 표준이 아닌 경우
|
||||
// Adapter의 timeout값을 설정한다.
|
||||
try {
|
||||
svcTsmtUsgTp = this.reqEaiMsg.getSvcTsmtUsgTp(); // 기동 호출방식
|
||||
psvItfTp = this.reqEaiMsg.getCurrentSvcMsg().getPsvItfTp(); // 수동 호출방식
|
||||
if (!(EAIMessageKeys.ASYNC_SVC.equals(svcTsmtUsgTp) && EAIMessageKeys.ASYNC_SVC.equals(psvItfTp))
|
||||
&& !(com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.reqEaiMsg.getStdMsgUsgCls()))) {
|
||||
// SA 또는 SNA Adapter일 경우에 는 SA Timeout값을 설정
|
||||
if ((EAIMessageKeys.SYNC_SVC.equals(svcTsmtUsgTp) && EAIMessageKeys.ASYNC_SVC.equals(psvItfTp))
|
||||
|| Keys.TYPE_SNA.equals(adapterType)) {
|
||||
int saTimeoutSec = this.reqEaiMsg.getCurrentSvcMsg().getTmoVl();
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " SA TimeoutValue [" + saTimeoutSec + "]");
|
||||
// this.reqEaiMsg.getKbMsg().getKBHeader().setGnrzToutCrtcNmvl(""+saTimeoutSec);
|
||||
setTimeout(this.reqEaiMsg, "" + saTimeoutSec);
|
||||
} else {
|
||||
int timeout = ServiceUtil.getTimeoutValue(adapterGroupName);
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " Target Adapter TimeoutValue [" + timeout + "]");
|
||||
if (timeout > 0) {
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + "Set Adapter TimeoutValue [" + timeout + "] to STDMessage");
|
||||
// this.reqEaiMsg.getKbMsg().getKBHeader().setGnrzToutCrtcNmvl(""+timeout);
|
||||
setTimeout(this.reqEaiMsg, "" + timeout);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (logger.isWarn()) {
|
||||
logger.warn(guidLogPrefix + "Get Adapter TimeoutValue Error - " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// TheK 요건 : SNA송신 비동기 응답거래시 수신거래코드를 EAI에서 매핑함 (20190522)
|
||||
String srcAdapterGroupName = reqEaiMsg.getSngSysItfTp();
|
||||
AdapterManager adapterManager = AdapterManager.getInstance();
|
||||
AdapterGroupVO inAdptGrpVO = adapterManager.getAdapterGroupVO(srcAdapterGroupName);
|
||||
String inAdapterMsgType = MessageType.ASC;
|
||||
if (eaiServerManager.isTASEnabledEAIServer() && EAIMessageKeys.TRANTYPE_FROMTAS.equals(reqEaiMsg.getTranType())
|
||||
&& inAdptGrpVO == null) {
|
||||
logger.info(guidLogPrefix + "- TAS 기동거래 [" + srcAdapterGroupName + "] = " + MessageType.ASC);
|
||||
} else {
|
||||
if (inAdptGrpVO == null) {
|
||||
String[] msgArgs = new String[1];
|
||||
msgArgs[0] = this.reqEaiMsg.getEAISvcCd();
|
||||
String rspErrorCode = "RECEAIFBF003";
|
||||
String rspErrorMsg = ExceptionUtil.make(rspErrorCode, msgArgs) + "(어댑터그룹 미등록/미사용 - "
|
||||
+ srcAdapterGroupName + ")";
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + rspErrorMsg);
|
||||
// this.resEaiMsg.setRspErrCd(rspErrorCode);
|
||||
// this.resEaiMsg.setRspErrMsg(rspErrorMsg);
|
||||
this.resEaiMsg.setRspErr(rspErrorCode,rspErrorMsg);
|
||||
throw new Exception(rspErrorCode);
|
||||
}
|
||||
inAdapterMsgType = inAdptGrpVO.getMessageType();
|
||||
}
|
||||
}
|
||||
|
||||
public void printExceptionMessage(Exception e) {
|
||||
// Exception e = this.context.getExceptionInfo().getException();
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + "ExceptionPath : " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
public boolean isSourceAsync() {
|
||||
if (EAIMessageKeys.ASYNC_SVC.equals(this.reqEaiMsg.getSvcTsmtUsgTp())) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void callExceptionHandler() {
|
||||
try {
|
||||
AdapterManager adapterManager = AdapterManager.getInstance();
|
||||
AdapterGroupVO inAdptGrpVO = adapterManager.getAdapterGroupVO(this.reqEaiMsg.getSngSysItfTp());
|
||||
String inAdapterMsgType = inAdptGrpVO.getMessageType();
|
||||
if (EAITable.EBCDIC_TYPE.equals(inAdapterMsgType)) {
|
||||
String bizData = this.reqEaiMsg.getStandardMessage().getBizData();
|
||||
byte[] asc = CodeConversion.meToMixedAsc(bizData.getBytes());
|
||||
try {
|
||||
String inboundCharset = callProp.getProperty(com.eactive.eai.adapter.Keys.CHARSET_KEY_IN);
|
||||
this.reqEaiMsg.getStandardMessage().setBizData(new String(asc), inboundCharset);
|
||||
} catch (Exception e) {
|
||||
logger.error("setBizData error", e);
|
||||
}
|
||||
}
|
||||
ExceptionHandler.handle(this.reqEaiMsg);
|
||||
} catch (Exception e) {
|
||||
if (logger.isError())
|
||||
logger.error(guidLogPrefix + "ExceptionHandler Call Error", e);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isRealCall() {
|
||||
if (this.callProp != null) {
|
||||
String mode = this.callProp.getProperty(EAIKeys.CALL_MODE_KEY);
|
||||
if (mode != null && EAIKeys.CALL_MODE_WARMUP.equals(mode)) {
|
||||
logger.warn(guidLogPrefix + "Warming Up Called");
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// private String getAdapterType(String adapterGroupName) {
|
||||
// AdapterManager adapterManager = AdapterManager.getInstance();
|
||||
// AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(this.adapterGroupName);
|
||||
// return adptGrpVO.getType();
|
||||
// }
|
||||
|
||||
public void setGUID() throws Exception {
|
||||
InterfaceMapper mapper = this.resEaiMsg.getMapper();
|
||||
StandardMessage standardMessage = this.resEaiMsg.getStandardMessage();
|
||||
String guid = mapper.getGuid(standardMessage);
|
||||
String guidseq = mapper.getGuidSeq(standardMessage);
|
||||
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " REQ Current GUID [" + guid + "][" + guidseq + "]");
|
||||
mapper.nextGuidSeq(standardMessage);
|
||||
guidseq = mapper.getGuidSeq(standardMessage);
|
||||
if (logger.isDebug())
|
||||
logger.debug(guidLogPrefix + " REQ ADD PATHSEQ GUID [" + guid + "][" + guidseq + "]");
|
||||
|
||||
String svcTsmtUsgTp = this.reqEaiMsg.getSvcTsmtUsgTp(); // 기동 호출방식
|
||||
String psvItfTp = this.reqEaiMsg.getCurrentSvcMsg().getPsvItfTp(); // 수동 호출방식
|
||||
|
||||
if ((!(com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.adptrMsgPtrnCd))
|
||||
&& !(EAIMessageKeys.ASYNC_SVC.equals(svcTsmtUsgTp) && EAIMessageKeys.ASYNC_SVC.equals(psvItfTp)))
|
||||
|| ((com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.adptrMsgPtrnCd))
|
||||
&& (EAIMessageKeys.ASYNC_SVC.equals(svcTsmtUsgTp)
|
||||
&& EAIMessageKeys.SYNC_SVC.equals(psvItfTp)))) {
|
||||
String prcssRtdTranCd = mapper.getReturnServiceId(standardMessage);
|
||||
|
||||
if (prcssRtdTranCd != null && prcssRtdTranCd.length() >= 14) {
|
||||
String cicsTrncd = prcssRtdTranCd.substring(0, 4);
|
||||
String telgmRecvTranCd = prcssRtdTranCd.substring(4, 14);
|
||||
mapper.setServiceId(standardMessage, telgmRecvTranCd);
|
||||
} else {
|
||||
if (logger.isInfo()) {
|
||||
logger.info(guidLogPrefix + "- PrcssRtdTranCd Length < 14 [" + prcssRtdTranCd + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!(EAIMessageKeys.ASYNC_SVC.equals(svcTsmtUsgTp) && EAIMessageKeys.ASYNC_SVC.equals(psvItfTp))
|
||||
&& (com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.reqEaiMsg.getStdMsgUsgCls()))
|
||||
&& (STDMessageKeys.RECOVER_YN_YES
|
||||
.equals(getRecoverYn(this.reqEaiMsg)) ) ) {
|
||||
String reqOgtranGuIdNo = getOrgGuid(this.reqEaiMsg);
|
||||
mapper.setOrgGuid(standardMessage, reqOgtranGuIdNo);
|
||||
if (logger.isInfo()) {
|
||||
logger.info(guidLogPrefix + " OgtranGuIdNo 복원 " + this.reqEaiMsg.getSvcOgNo() + " OgtranGuIdNo ["
|
||||
+ mapper.getOrgGuid(standardMessage) + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user