银行插件:工商银行或者民生银行
问题现象:
付款单提交银企互联,部分付款失败,系统提示:银企返回:付款单超时,不再提交.短时间内付款积压过多未及时提交给银行。原因可能为:EAS调度过于频繁或者没走批量接口
原因以及解决方法:
1、本身银企平台每个银行前置机的连接默认单线程同步运行,所以会有任务排队(也就是 会有 完成打包准备提交银行 这一状态的现象)
2、付款,同步的请求量不是很大的时候,该状态持续时间不会太久;但是如果付款或同步请求数较多,由于银企平台以前的安装包自带一个配置文件(frequency.xml)默认对工商银行和民生银行有付款和同步接口调用频率的限制(5分钟),所以会导致等待较久,甚至直到超时没能提交到银行,客户需要则可去掉该限制
3、如果需要去掉该限制:银企服务器安装路径下:xxxxx\ebservice705\ebservice\configs\frequency.xml
打开该文件,将以下内容复制 粘贴 覆盖原文件内容,保存即可。
<?xml version="1.0" encoding="UTF-8"?>
<frequency>
<bank bankVersionId="EBG_SIM">
<!-- className 为限制的接口名 interval为调用间隔 单位为秒 目前只支持付款和同步接口 付款和同步方法都在一个类里面 -->
<!-- method 为 pay:付款接口调用频率 queryPay:同步接口调用频率 affect:付款和同步接口互相影响 -->
<!-- <interface className="com.kingdee.bos.ebservice.banks.ebg.simulator.services.PaymentImpl" method="affect" interval="300"></interface> -->
</bank>
</frequency>
4、重启银企平台服务
此处由于其他同事的提问补充一个相关问题:
其他银行插件如果遇到 状态 一直是 "完成打包准备提交银行",这种情况一般是由于该银行插件有其他业务(如:查询余额,明细,同步付款状态,大批量付款等)在跑,因为前面说到每个银行插件的所有请求都是默认串行跑,所以量大后面的请求会排队等待,根据经验多次问题出现是由于客户在这段时间有后台事务定时任务去执行查余额明细同步付款等业务导致。
下一步建议:将该类后台事务执行时间设置在业务空闲时间。