remoting服务端事务处理问题

mqmmx 2006-11-23 11:02:23
上个问题在这里
http://community.csdn.net/Expert/topic/5048/5048343.xml?temp=6.800479E-02

我想来想去还是想把服务端的事务处理方法公开出来用.
所以我在公开的BeginTrace方法用开了个线程,执行如下程序,RollbackTrace()或CommitTrace()方法中把isTran=false,其它所有数据库处理的方法中将isRun = true; 这样我的客户端运行事务时,就不会因为调试时强退或网络问题发生数据库死锁了. 不知我这样写还会有什么问题吗?

bool isTran, isRun;

void Tran()
{
while (isTran)
{
Thread.Sleep(3000);
if (isRun == false)
{
this.RollbackTransaction();
break;
}
isRun = false;
}
}
...全文
624 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
mqmmx 2007-04-04
  • 打赏
  • 举报
回复
我用了.net 2.0中的下面两个类
System.Transactions.TransactionOptions
System.Transactions.CommittableTransaction
因为TransactionOptions有TimeOut方法设定超时,也实现了上面的问题。但用时发现开始事务在SQL2005里比ORACLE10G快多了,提交时也一样。难道不是MS的东西就只能慢一些?我用的还是System.Data.OracleClient里的类没用Oracle.DataAccess里的呢!

另外这两个东西是不是也算COM+
  • 打赏
  • 举报
回复
代码跑起来可能不会按照你的逻辑,应该会因循环使你的标记位“延迟”起作用
mqmmx 2007-03-06
  • 打赏
  • 举报
回复
多谢yan63,原来MarshalByRefObject和ServicedComponent是父子关系.
你所说的remoting服务端生命周期,我知道但试不出来才象上面的写法的,你能给个全一点的关于remoting生命周期管理的例子吗?
curd0468 2007-03-04
  • 打赏
  • 举报
回复
帮顶一下
yan63 2007-03-02
  • 打赏
  • 举报
回复
我用remoting要继承MarshalByRefObject
Com+要继承ServicedComponent
C#不支持多继承
------------------------------------
参考下msdn的文档
System.Object
System.MarshalByRefObject
System.ContextBoundObject
System.EnterpriseServices.ServicedComponent
不会有多继承的问题,



我就想问问,那些个大型项目,三层部署时, 数据处理层、逻辑层及界面部分别部署在三台服务器上时,事务部分是怎么做的。难道都用COM+
---------------------------------------------
分布式的事物处理最好的就是用com+,至于效率,事务操作的粒度不宜过细,否则开销过大会有效率的问题,记得remoting本身有提供服务端的生命周期管理,回头再看看资料
jxf654 2007-02-16
  • 打赏
  • 举报
回复
up
mqmmx 2007-02-15
  • 打赏
  • 举报
回复
楼上,能不能,把很复杂的socket,大致的说说
burn3tt 2007-01-04
  • 打赏
  • 举报
回复
呵呵,我是用的socket,很复杂~~
vainnetwork 2007-01-04
  • 打赏
  • 举报
回复
UP
阿牛138588 2007-01-03
  • 打赏
  • 举报
回复
mark
glacier111 2006-12-31
  • 打赏
  • 举报
回复
jf
mqmmx 2006-12-31
  • 打赏
  • 举报
回复
我就想问问,那些个大型项目,三层部署时, 数据处理层、逻辑层及界面部分别部署在三台服务器上时,事务部分是怎么做的。难道都用COM+
chenjunhui 2006-12-13
  • 打赏
  • 举报
回复
顶是硬道理
palts520 2006-12-11
  • 打赏
  • 举报
回复
JF
midymidy 2006-12-09
  • 打赏
  • 举报
回复
up
midymidy 2006-12-09
  • 打赏
  • 举报
回复
正在学习中,,可能是com
azurebz 2006-12-08
  • 打赏
  • 举报
回复
帮顶,学习
mqmmx 2006-12-01
  • 打赏
  • 举报
回复
处理事务最好的就是COM+
怎么不用?
================================================

我用remoting要继承MarshalByRefObject
Com+要继承ServicedComponent
C#不支持多继承,要用的话我的改动会很大,而且,我用过Com+做简单的sql和oracle同步就一个表,速度实在是不行,太慢了.还有就是我只是一个数据库一个服务器,用不到com+的.普通ado.net事务就能满足要求的.

有没有其它的好方案,其它人写好的现成数据处理层(微软的就不用说了)
mqmmx 2006-11-30
  • 打赏
  • 举报
回复
zdbb(辉辉)
你说的监控线程状态的处理,是什么呢?再加个线程来判别吗?
稍微有点无敌 2006-11-30
  • 打赏
  • 举报
回复
处理事务最好的就是COM+
怎么不用?
加载更多回复(6)

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧