三层开发不是有在服务器运行的组件吗?Transaction Server就是管理这些组件的.
最重要区别是远程的. 我没有确切开发过. 仅供参考.

解决方案 »

  1.   

    Transaction Server主要是用来管理中间层主件,特别是在对SQL SERVER的事务处理上面
    特别好,你可以到微软的站点上查看有关的帮助(http://msdn.microsoft.com)
      

  2.   

    各位高手可不可以深入一点,特别在三层开发中怎么更好地运用Transaction Server?因为小弟总是认为它除了可以实现DCOM和管理本地COM之外,其他功能就一无所知,请大哥们多多指导,小弟一定加分的,谢谢。
      

  3.   

    MTS/COM+ 的作用主要作用有两个:
    1. Object Request Broker对象请求代理程序
    同时作为对象的代理(surrogatte),MTS还提供诸如Context Management, JIT等功能.
    2. Transaction Processing-Monitor这两大类功能各包括了一些"子功能,因此,COM+/MTS是DCOM的超集.把component放入COM+/MTS时,除了要在registry中注册外,还要用到Registration Database,它是以本机一个文件的形式存在的.因此,不能用regsvr32去注册一个COM+/MTS的component.ADO的事物是local transaction 的概念,也就是只能有一个resource manager.当需要几个remote甚至不同类的resource manager(SQL & MSMQ,for example),就要Distributed Transaction Coordinator(DTC).而DTC又是COM+/MTS的一部分.如果你是VB程序员的话,我推荐"Programming Distributed Applications with COM+ and Microsoft Visual Basic 6.0, Second Edition". 这本书是我见到的最好的关于COM+/VB的书.我不知道国内是否有买.不过,看完这本书后你会发现,VB本身固有的限制使它不能成为开发Middleware的工具,最明显的就是single threaded apartment的限制.以我的实际经验来看,最好不要用来开发会超过50个并发用户的中间件,否则,你会遇到极明显的性能降低.所以,尽管我不是武器决定论者,我还是建议加强VC的能力.
      

  4.   

    精彩,精彩!多谢GoldenLion!祝你春节快乐,身体健康!
    其实我已经将Transaction Server的帮助打印出来阅读,但太多不明白了,最主要是不能和现实中实践结合起来,所以我急需解决的是,在实际编程中怎样运用Transaction Server?例如:功能中的跟踪消息、事务处理列表、事务处理统计这三个功能,怎样运用?难道每次对事务的编程和实现都去看看事务处理的状况吗?
    根据你所讲的两个作用,小弟我想再请教。
    第一个作用:针对各种功能,可不可以详细一点告诉我?
    COM与COM+有什么区别?
    “COM+/MTS是DCOM的超集”是什么意思?
    “ADO的事物是local transaction 的概念”是什么意思?是不是“组件只是放在一台服务器”的意思,其实为什么要把组件放在不同的服务器中,成为远程组件?这就是DCOM的问题吧。GoldenLion,希望你可以为我解答,万分感谢
      

  5.   

    由于MS 的战略发展, .Net将是未来MS 主推的分布式开发模式, 下面的讨论就以目前还算最流行的COM+为主, 而非NT4上的MTS.和DCOM/COM相同, COM+的一个目的是componentware, 亦即组件开发. 另外, 它还集成了一些分布式开发的service.如
    1. JIT
    2. Object Pooling
    3. Load Balance (should install Application Center)
    4. Shared Property Manager
    5. Queued Component
    6. Transaction Support
    7. Role-based security
    8. Loosly-coupled Event以上面最重要的第6 点为例:Three-tier的原意是"逻辑上的三层", 实际运用中通常将Web Server, Middleware, Database Server放在不同的机器上. 这是scale-out 和scale-up的不同考虑. Oracle提倡的是scale-up, 也就是你要不停地升级机器去满足日益增长的client和数据的需要. MS则可以用一些PC来实现小型机的性能. 一个中等规模的企业级计算是很难将web server, middleware, db server放在一台machine上的, 当然如果现在又回到大型主机年代的话,就有可能了.ADO的transaction 是基于connection 的:
    Dim conn As Connection
    Set conn = New Connection
    conn.Open MyConnectString
    conn.IsolationLevel = adXactSerializable
    conn.BeginTrans
        conn.Execute ...
        conn.Execute ...
        conn.Execute ...
    conn.CommitTrans
    因此, transaction就只能由特定的resource manager(SQL Server)来完成.功能中的跟踪消息、事务处理列表、事务处理统计只是MTS Explorer所起的界面管理作用而已, 只能说是细枝末节.在看SDK以前,你可以看一下MSDN中 Backgrounder, technicle article部分有关COM+ 和Enterprise Development的文章, 会有很大帮助的. 就说到这里了, 我用33.6K的猫terminal到公司的速度简直太慢了, 再加上更慢的微软拼音输入...祝新年快乐!
      

  6.   

    GoldenLion,真是太感谢你了,给我一个这么详细的解释,我一定把全部分都给你(尽管限制我只能给这么少分),我还有很多关于这类问题,例如还有一条“SOS!SOS!HELP ME!关于ACTIVEX DLL的问题”的问题,到现在只有一位大哥解答我(已经放上去几天了),欢迎您继续帮助我,祝新年行大运,身体健康!