Was环境多数据源开发
撰稿人:张斌 撰稿时间:2024-09-26
1 / 7
目录
一问题概述 ............................................................................................................................................................3
1.1 问题现象 ..........................................................................................................................................3 1.2 问题分析 ..........................................................................................................................................3 二解决方式 ............................................................................................................................................................4
2.1配置XA数据源方式 ...........................................................................................................................4 2.2 CMT开发方式 ......................................................................................................................................5 三 问题关联知识联想 .......................................................................................................................................7
3.1 NC事务的两种模式 ...........................................................................................................................7 3.2 CMT事务模式的控制级次 ........................................................................................................7
2 / 7
一问题概述
1.1 问题现象
万达提出需求,要将CBS支付数据读取中间库生成NC的银行对账单,并生成上收下拨单据。补丁上线两年后,was系统出现执行下载cbs数据错误,并且抛出enlist exception异常,并且在开发环境不能重现。调取日志如下
1.2 问题分析
根据日志内容,确定开发代码中存在调用NC数据源后,再次调用CBS数据源的情况。 报错是因为was事务管控,在未启用XA情况下同一事务下不能执行两个数据源任务。
图1-1 XA模式事务流程
3 / 7
二解决方式
2.1配置XA数据源方式
(1) NCHOME下的bin文件,打开wasSysConfig.bat文件
图2-1 wasSysConfig.bat
(2)配置数据源,修改是否XA数据源为是
(3)如果点击修改按钮后,是否XA数据源选项置灰,无法勾选,我们需要手动调整\\nchome\\ierp\\bin\\prop.xml文件中对应数据源的
4 / 7
图2-2 porp.xml修改XA数据源
2.2 CMT开发方式
(1)新建接口,接口里方法后缀加上_RequiresNew,这个表示方法执行时,一定按照创建新事务方式执行。
图2-3 接口截图
(2) 继承接口。编写方法。
5 / 7