解决.NET使用TransactionScope,操作多个oracle数据库时报6107错误

这几天想使用MS Enterprise Library3.1做一个持久化层包装,想使用MS的TransactionScope解决多数据库事务问题,我使用的是Oracle,但调试代码时,打开一个数据库操作没有问题,但打开第二个数据库时总数报6107错误(使用的是9i);

思考是不是数据库太老了,今天又安装了10g,但依然报6107错误,思考是不是权限没有设置造成的,于是找到Oracle目录(我的是10g,oracle/product/10.2.0),右键属性 -> 安全,添加Authenticated Users用户,点选“读取和运行”的允许为不选中,但点选选中它,单击“高级”查看一下权限选项的“应用于”是不是设置为“该文件夹,子文件夹及文件”,然后应用 -> 确定;

再次启动调试,运行成功;

但还有一个问题没有解决,就是调试时间稍微长点,Enterprise Library中的TransactionScopeConnection就要执行认为事务执行成功,执行OnTransactionCompleted委托事件,并释放了所有数据库连接对象;

其实我已经改造了Database 类,不让他执行完 DbCommand 后关闭数据库连接对象;

在网上搜了一下,找到几篇的文章;

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=883692&SiteID=1

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=323845&SiteID=1

http://www.cnblogs.com/dreamstec/archive/2007/09/16/894709.html

http://www.cnblogs.com/cn_wpf/archive/2007/08/08/844766.html (这篇不错)

看来MS的TransactionScope问题还比较多,实际使用时要慎重了;

不知道使用Oracle自己的ODP.NET效果怎么样,改天试试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值