交易协调员和交易经理之间有什么区别?
我不知道这是否是一个有效的问题,但我一直在阅读这两个术语。
如果它们是不同的东西,那么IBM Websphere堆栈中有哪些产品可以完成这两项不同的工作?
最佳答案
像MSDTC这样的事务协调器是用于管理分布式事务的服务器。它保存事务的持久记录,并与资源管理器管理两阶段提交/回退过程的通信。它可能会也可能不会集成到事务管理器中。
事务协调器是系统中处理此提交过程的部分。它可能与事务监控器不是同一程序。事务处理协调器的一个示例是MS DTC(分布式事务处理协调器)。有点有趣,因为在此架构(MTS/COM+)中,它实际上是作为一个单独的进程运行的。
事务管理器或TP监视器是应用程序用来控制事务提交/回退过程的子系统。它托管应用程序的中间层,并提供用于获取事务ID和投票以提交/回滚事务的API。如果表决仅涉及一个过程,则相当于建议提交/回退。在Java圈子中,这通常称为“应用程序服务器”(使用EJB时有时称为“Bean容器”)。事务管理器的示例是MS事务服务(后称为COM +事务服务),CICS和各种Java应用程序服务器。
对资源管理器的提交/回滚请求不必与托管应用程序的服务器来自同一服务器。事务管理器可以使用单独的事务协调器来管理提交/回退过程。它们可以使用诸如TX.(事务分界)之类的协议(protocol)进行通信。在其他情况下,事务管理器可以使用XA之类的协议(protocol)直接向资源管理器(数据库)发布提交/回退指令。因此,交易协调和管理功能在某种程度上是分开的,并且可能由同一软件完成,也可能不会由同一软件完成。对于MSDTC,它们是分开的,但这不是严格要求的。
将事务处理协调器移到一个单独的进程中的一个优点是,它不会很容易因不良的应用程序代码而崩溃。在这种情况下,该过程仅处理事务提交主机,而没有应用程序。其他项目与其通信。这使事务处理协调器变得非常简单,专注并且可以防止应用程序崩溃。如果将其集成到应用程序服务器中,则应用程序服务器崩溃可能会导致涉及第三方资源管理器的事务处理中断,而这些事务处理与该应用程序无关。将事务处理协调移到一个单独的过程的不利方面是由于网络请求而导致的事务提交延迟增加。
编辑:我不确定Websphere,但是IIRC Weblogic上的事务协调器称为“Weblogic事务管理器”,并且事务管理是通过bean容器完成的。
关于transactions - 交易协调员和交易经理之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1253836/