TrnAdd返回ErrCode34的排查建议及Silverlake夜间更新模式咨询
针对TrnAdd返回ErrCode 34的检查与解决方案
一、ErrCode 34错误的检查方式
你遇到的错误信息如下:
<FaultMsgRec> <ErrCode>34</ErrCode> <ErrCat>Error</ErrCat> <ErrDesc>Function is not available during Nightly Updates</ErrDesc> <ErrLoc>DDCRDRADD</ErrLoc> </FaultMsgRec> </FaultRecInfoArray>
推荐的检查步骤:
- 确认当前时段是否在Silverlake的夜间更新窗口内:联系运维团队获取生产/测试环境的固定更新时段,测试/DMZ环境的更新周期可能与生产不一致,需单独确认。
- 查询系统实时状态:调用Silverlake提供的系统状态查询命令(如
GET_SYS_STATUS,具体命令以官方文档为准),直接获取当前是否处于夜间更新模式。 - 核对交易类型权限:部分高风险或写入类交易在夜间更新期间会被系统强制拦截,确认你提交的TrnAdd交易类型是否属于更新期间禁用的范畴。
- 查看模块运行日志:检查
DDCRDRADD模块的主机日志,确认夜间更新进程是否存在延迟、异常,导致更新窗口意外延长。
二、Silverlake夜间更新的运行机制
Silverlake夜间更新主要执行批量账户清算、数据同步、系统配置迭代等核心操作,此时系统会锁定部分写入型接口(包括TrnAdd),防止交易数据与更新数据产生冲突,保障数据一致性。
在测试/DMZ环境中,你可以联系运维开启夜间更新模拟流程,通过在不同时段提交TrnAdd交易,观察接口响应,验证系统在更新期间的限制逻辑。
三、Silverlake的暂存交易模式(对应"memo"模式)支持及确认方式
Silverlake支持类似的暂存交易模式,具体操作如下:
- 提交前确认:调用系统状态查询接口,返回结果中会包含
NightlyUpdateInProgress标识,若该值为Y,则需要启用暂存模式。 - 启用暂存模式:在TrnAdd请求中添加特定参数(如
MemoMode=Y,具体参数名需参考Silverlake官方接口规范),此时交易不会立即写入核心数据库,而是被暂存到待处理队列,待夜间更新完成后自动执行。 - 若未启用该模式就在更新期间提交交易,系统会返回ErrCode 34的错误。
内容的提问来源于stack exchange,提问作者rr78006
相关产品推荐
相关产品推荐

