134 lines
6.3 KiB
XML
134 lines
6.3 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Tran>
|
|
<Transaction code="TIMCHK" log_switch='1' desc="软路由定时心跳服务">
|
|
<Attributes>
|
|
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
|
|
</Attributes>
|
|
<DynSentence name="QRYROUT"> <!--查询该前置机的心跳无效次数-->
|
|
<Sentence>
|
|
SELECT NUMBER FROM CAPSOFTROUTE WHERE
|
|
BANKCODE=? AND FRSPRNO=?
|
|
</Sentence>
|
|
<Fields>CORG_NO|FRSPRNO|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QRYSTS"> <!--查询该路由信息所对应的前置机的初始状态-->
|
|
<Sentence>
|
|
SELECT ORTSTS FROM CAPSOFTROUTE WHERE
|
|
BANKCODE=? AND FRSPRNO=?
|
|
</Sentence>
|
|
<Fields>CORG_NO|FRSPRNO|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdCMMTRU"> <!--更新该前置机所对应的路由为无效-->
|
|
<Sentence>
|
|
UPDATE CMMTRTRULE
|
|
SET RUL_STS=0
|
|
WHERE CORG_NO=?
|
|
</Sentence>
|
|
<Fields>BANKCODE|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdSRSTS"> <!--更新该前置机的状态标志-->
|
|
<Sentence>
|
|
UPDATE CAPSOFTROUTE
|
|
SET ORTSTS=?
|
|
WHERE BANKCODE=? AND FRSPRNO=?
|
|
</Sentence>
|
|
<Fields>UpdSts|CORG_NO|FRSPRNO|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QryEFFPRO"> <!--查询前置机有效的台数-->
|
|
<Sentence>
|
|
SELECT COUNT(*) EFFECT FROM CAPSOFTROUTE WHERE BANKCODE=? AND ORTSTS='S'
|
|
</Sentence>
|
|
<Fields>CORG_NO|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QrySOFTR">
|
|
<Sentence>
|
|
select * from (select * from CAPSOFTROUTE order by TM_SMP )a where rownum=1
|
|
</Sentence>
|
|
<Fields>|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="Qry_SOFTR">
|
|
<Sentence>
|
|
select BANKCODE,OBJSVR,HBTXNCD,ORTSTS,BODYPARAM ,HEADPARAM,FRSPRNO from CAPSOFTROUTE
|
|
</Sentence>
|
|
<Fields>|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QrySOFTRCut">
|
|
<Sentence>
|
|
SELECT count(*) AS FepCount FROM CAPSOFTROUTE
|
|
</Sentence>
|
|
<Fields>|</Fields>
|
|
</DynSentence>
|
|
<FlowCtrl>
|
|
<Quote name="Init_CAP01"/> <!--交易初始化-->
|
|
<!--查询参数信息表中前置机台数-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QrySOFTRCut"/>
|
|
</Exec>
|
|
<Set>~i=1</Set> <!--初始状态为1-->
|
|
<!--将所需的信息挂在ETF树上-->
|
|
<Exec func="PUB:QueryInGroup" error="IGNORE">
|
|
<Arg name="SqlCmd" value="Qry_SOFTR"/>
|
|
<Arg name="RecordName" value="REC"/>
|
|
<Arg name="Limit" value="500"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=数据库错误</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<Exec func="PUB:DumpETF" />
|
|
<While condition="INTCMP(~i,2,$FepCount)">
|
|
<!--调用参数信息表中的数据-->
|
|
<!--
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QrySOFTR"/>
|
|
</Exec>
|
|
-->
|
|
<Set>CORG_NO=ETF(STRCAT(REC_,~i,.BANKCODE))</Set> <!-- 合作机构号 -->
|
|
<Set>BANKCODE=ETF(STRCAT(REC_,~i,.BANKCODE))</Set> <!-- 合作机构号 -->
|
|
<Set>OBJSVR=ETF(STRCAT(REC_,~i,.OBJSVR))</Set> <!-- 接出服务名 -->
|
|
<Set>HBTXNCD=ETF(STRCAT(REC_,~i,.HBTXNCD))</Set> <!-- 心跳服务码 -->
|
|
<Set>ORTSTS=ETF(STRCAT(REC_,~i,.ORTSTS))</Set> <!-- 该前置机的初始状态 -->
|
|
<Set>BODYPARAM=ETF(STRCAT(REC_,~i,.BODYPARAM))</Set> <!-- 该前置机的初始状态 -->
|
|
<Set>HEADPARAM=ETF(STRCAT(REC_,~i,.HEADPARAM))</Set> <!-- 该前置机的初始状态 -->
|
|
<Set>FRSPRNO=ETF(STRCAT(REC_,~i,.FRSPRNO))</Set> <!-- 前置机编号 -->
|
|
<Exec func="PUB:CallThirdService">
|
|
<Arg name="HTxnCd" value="$HBTXNCD" />
|
|
<Arg name="ObjSvr" value="OFRTCAP1" />
|
|
</Exec>
|
|
<!-- 更新前置机状态-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSRSTS"/>
|
|
</Exec>
|
|
<!--更新内存参数-->
|
|
<If condition="AND(IS_EQUAL_STRING($ORTSTS,S),IS_EQUAL_STRING($UpdSts,F))"> <!--该前置机的初始状态为有效 -->
|
|
<!--刷新参数服务器中相应银行的参数-->
|
|
<Exec func="ROUTE:UPDATEROUTEPARAM" error="IGNORE">
|
|
<Arg name="BANKCODE" value="$BANKCODE" /><!-- 银行编码 -->
|
|
<Arg name="FRSPRNO" value="$FRSPRNO" /><!-- 银行前置机编号 -->
|
|
</Exec>
|
|
</If>
|
|
<!--更新路由表-->
|
|
<!--前置机有效的台数-->
|
|
<!--
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryEFFPRO"/>
|
|
</Exec>
|
|
-->
|
|
<!--前置机有效台数为0时需要更新路由表-->
|
|
<!--
|
|
<If condition="IS_EQUAL_STRING($EFFECT,0)">
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdCMMTRU"/>
|
|
</Exec>
|
|
</If>
|
|
-->
|
|
<Set>~i=ADD(~i,1)</Set> <!--查询数加一-->
|
|
<Continue/>
|
|
</While>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
</Tran>
|