一个bug?

事务很容易产生bug。这是一个问题。

在广州的时候,出现的bug是集群的事务不同步,而这次在佛山出现的bug,是多数据源的问题。先说一下整体的情况。

OA系统,用到我们EOS作为整体框架,websphere5+db2 8.2 + EOS ,eos的版本号为52。用到了多数据源。

理论上来说,一个事务操作一个连接,所以在整个事务中间,如果需要用到另外一个连接,自然会报错。

比如在广州的时候,一个bizlet用到这段代码:

ProcessCaller pc = new ProcessCaller("common""0""-1","defaultAppID")

看上去,只是new 一个 ProcessCaller,没什么大不了的。但是实际上,请跟踪他的连接,会发现,他自己会new一个连接。如果这个时候你用调用该bizlet的事务里面的数据,当然,会拿不到里面的数据了。

而这次出现的问题是:

一个prP的事务里面,调用一个biz,bizA的数据源设定是A数据源,而biz里面的biz bizB里面,设定的是B数据源。这样有一个层次的关系。

prP事务>bizA>bizB

当prP事务调起bizA的时候,根据bizA的配置,默认的拿到A数据源,所以这个时候,增个事务是针对A数据源的,而在bizB里面,需要操作是拿到B的数据源,对B数据源对应的表进行操作。由于之前事务已经有一个数据源,这个时候,B数据源在该事务中是拿不到的,所以就会把错误抛出。

很明显,这个错误很正常,如果用到spring的事务,也应该会遇到这个问题。本来逻辑上,这样就是说不过去的。

该怎么解决?

update:

最后的解决方案,在bizB的里面,再次封装一次,封装的biz的属性里面获取另外一个连接的数据源,这样就可以了。对于     如果用到spring的事务,也应该会遇到这个问题。 这句话,可能是有问题的,嘿嘿,chengzhi说,XA的数据源是能满足这个要求的。

,小子无知,大胆猜测。

 

Tags: eos, primeton, bug, 事务

« 上一篇 | 下一篇 »

信息推荐

只显示10条记录相关文章

基于HP-UX的一次测试调整(三) (浏览: 1243, 评论: 0)
linux,eos,weblogic,性能测试 (浏览: 1094, 评论: 1)
你的SOA是? (浏览: 1492, 评论: 0)
普元 待遇 (浏览: 2931, 评论: 0)
EOS工作流 (浏览: 1644, 评论: 0)
关于普元的简介 (浏览: 1302, 评论: 0)
一路走来 (浏览: 1511, 评论: 2)
这次真是bug了,嘿嘿 (浏览: 2030, 评论: 0)
IE6的一个bug (浏览: 3653, 评论: 2)

发表评论