씨티은행에 적용 된 내용으로 다수의 PT-BT 세트가 있을 경우 특정 BT가 응답이 없을 경우 다른 BT 로 통신하도록 failover되는 설정입니다.
제보는 윤수대리님이 해주셨습니다. 아래 샘플은 씨티은행에 적용된 것으로 오래전에 적용된 버전이고 지금은 많이 변경되었지만, 기본적인 설정 방법은 동일합니다.
Jex Core library 커밋 히스트로를 확인해보니 2월에 failover 기능이 추가되어 있습니다. 버전이 오래된 JexFrame.0.2.jar 에서는 동작하지 않으니 유의하세요.
PT에서 BT 커넥션 체커는 소스 확인 결과 5초마다 BT상태 체크 하는 것으로 보였습니다.
1. pt jex config 파일에서 http(jex config xml path -> jex/resource/http) 스펙 2개 추가
<kibbt1>
<characterSet>utf-8</characterSet>
<connectTimeout>110000</connectTimeout>
<readTimeout>110000</readTimeout>
<waitTimeout>110000</waitTimeout>
<action>${JEX.http.kibbt1.action}</action>
<method>POST</method>
<property>
<User-Agent>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</User-Agent>
</property>
</kibbt1>
<kibbt2>
<characterSet>utf-8</characterSet>
<connectTimeout>110000</connectTimeout>
<readTimeout>110000</readTimeout>
<waitTimeout>110000</waitTimeout>
<action>${JEX.http.kibbt2.action}</action>
<method>POST</method>
<property>
<User-Agent>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</User-Agent>
</property>
</kibbt2>
2. pt의 jex.prop파일에서 BT타켓 설정
3. 다시 pt config 스펙 선언
<KIBBT single="true" type="biz" sendType="0" resource="${JEX.spec.kibbt}">
<parameters>
<traceSVC>true</traceSVC>
</parameters>
</KIBBT>
4.pt 의 jex.prop에서 아래 스펙 설정 추가 #Jex Config Container Set
JEX.spec.kibbt=http/kibbt1,kibbt2
위 설정에서 http/kibbt1,kibbt2 의 순서를 꼭 주의해 주세요. 앞에 먼저 정의된 이름으로 먼저 연결 시도하고 연결이 되면 두번째 정의된 이름으로는 붙지 않습니다.
여러대의 PT 설정에서 한 곳의 BT만 향하지 않도록 유의바랍니다.