事务协调器、资源使用端、服务端及分布式事务处理方法

文档序号:6573367阅读:235来源:国知局
专利名称:事务协调器、资源使用端、服务端及分布式事务处理方法
技术领域
本发明涉及分布式事务处理技术,尤其涉及能够实现跨系统分布式事务处理的事务协调器、事务资源使用端、服务端以及事务资源使用端、服务端处理分布式事务的方法。
背景技术
随着企业应用系统的广泛发展,财务管理系统、管理分析系统、营业系统,客户关系管理系统、物流管理系统、计费系统等系统间存在着越来越多的信息交互,这要求企业数据具有一致性。企业数据一致性的需求要求数据操作具有原子性,一致性,隔离性,持久性(Atomicity,Consistency,Isolation,Durability,简称ACID),即要求进行分布式事务处理,并且事务处理需要在多个事务性资源间实现。
事务是指作为工作的单一逻辑单元而执行的一系列操作。分布式事务是指两个或更多事务资源(比如,两个单独的数据库)之间的ACID事务。
现有的基于J2EE连接架构(J2EE Connector Architecture,简称JCA)的事务统一框架实现了跨系统的事务统一。在该框架下,资源适配器(ResourceAdapter)提供了连接(Connection)和连接工厂(Connection Factory)接口,连接工厂负责创建与应用系统(Application System)的连接。连结管理(Connection Manager)统一管理不同应用系统的连接。当连接管理接收到来自连接工厂的连接请求时,连接管理从连接的缓存容器——连接池(PoolManager)中获取连接。如果连接池无可用的连接,则会调用管理连接工厂(Managed Connection Factory)创建一个新的物理连接。
现有的基于JCA的事务统一构架存在如下缺陷接口复杂,实现困难,甚至有些现有系统在机制上就无法实现JCA的标准接口,其仅适用于基于J2EE规范构建的应用系统,并不能解决不基于J2EE规范或者非Java应用系统的数据一致性需求,如C++应用,C#应用等。

发明内容
本发明实施例的目的在于提供了接口简单,符合数据一致性要求的事务协调器、事务资源使用端、事务资源服务端、以及事务资源使用端、服务端的分布式事务处理方法,实现跨系统分布式事务处理,并适用于基于J2EE、J2SE(Java 2 Standard Edition)、C++、C#等多种应用系统。
为了实现上述目的,本发明实施例提供了一种事务资源使用端的分布式事务处理方法,包括如下步骤注册事务资源客户端;利用所述事务资源客户端向事务资源服务端提交携带有事务标识的提交请求;及注销事务资源客户端。
为了实现上述目的,本发明实施例还提供了一种事务资源服务端的分布式事务处理方法,包括根据业务操作请求中携带的事务标识查找对应的事务适配器;将当前事务替换为所述事务适配器;根据所述业务操作请求执行业务操作;将资源管理器注册到所述事务适配器;根据提交请求中携带的事务标识将所述提交请求转发至所述事务适配器;及通过所述资源管理器执行提交。
为了实现上述目的,本发明实施例又提供了一种事务协调器,包括事务代理模块,用于通过注册的事务资源客户端提交携带有事务标识的提交请求;注册模块,用于注册参与当前事务的事务资源客户端,并将注册信息通知所述事务代理模块;所述事务资源客户端至少为一个;提交请求转发模块,用于向事务代理模块提交提交请求;以及注销模块,用于注销当前事务的事务资源客户端,并将注销信息通知所述事务代理模块。
为了实现上述目的,本发明实施例还提供了一种事务资源使用端,包括事务协调器,用于协调事务资源,进行分布式事务控制,该事务协调器包括事务代理模块用于通过注册的事务资源客户端提交携带有事务标识的提交请求;注册模块,用于注册参与当前事务的事务资源客户端,并将注册信息通知事务代理模块;所述事务资源客户端至少为一个;提交请求转发模块,用于向事务代理模块提交提交请求;及注销模块,用于注销当前事务的事务资源客户端,并将注销信息通知事务代理模块;业务操作请求模块,用于通过的事务资源客户端提交携带有事务标识的业务操作请求;提交请求模块,用于发起提交请求;事务资源客户端,用于与事务资源服务端通信,提交业务操作请求及提交请求。
为了实现上述目的,本发明实施例再提供了一种事务资源服务端,包括事务映射模块,用于查找事务标识对应的事务适配器;该事务映射模块包括事务适配器,用于将提交请求转发至注册的资源管理器;记录模块,用于记录事务标识与事务适配器的对应关系及查找模块,用于查找事务标识对应的事务适配器;事务适配器创建模块,用于创建事务适配器,并将事务标识与事务适配器保存至所述记录模块;资源管理器,用于根据所述提交请求执行提交;事务管理器,用于将当前事务替换为所述事务适配器以及资源管理器的注册及注销。
本发明实施例由事务协调器在事务管理器上层控制事务,实现了分布式事务处理要求的原子性、一致性、隔离性和持久性,并且作为接口的事务适配器简单易用;本发明实施例实现了跨系统的分布式事务处理,满足了基于J2EE、J2SE(Java 2 Standard Edition)、C++、C#等多种应用系统的数据操作一致性需求。


图1为本发明实施例事务资源使用端的第一结构示意图;图2为本发明实施例事务资源服务端的第一结构示意图;图3为本发明实施例事务资源使用端及事务资源服务端构成的分布式事务处理系统的结构示意图;图4为本发明实施例事务协调器的第一结构示意图;图5为本发明实施例事务协调器的第二结构示意图;图6为本发明实施例事务资源使用端的第二结构示意图;图7为本发明实施例事务资源服务端的第二结构示意图;图8为本发明实施例事务资源使用端的分布式事务处理方法的第一流程图;图9为本发明实施例事务资源服务端的分布式事务处理方法的第一流程图;图10为本发明实施例事务资源使用端的分布式事务处理方法的第二流程图;图11为本发明实施例事务资源服务端的分布式事务处理方法的第二流程图;图12为本发明实施例事务资源使用端的分布式事务处理方法的第三流程图;图13为本发明实施例事务资源服务端的分布式事务处理方法的第三流程图。
具体实施例方式
如图1所示,本发明实施例事务资源使用端的第一结构示意图。事务资源使用端1通过事务资源客户端12使用事务资源服务端提供的服务。事务资源使用端1包括事务协调器11、事务资源客户端12、业务操作请求模块13以及提交请求模块14。
事务协调器11用于协调事务资源并进行分布式事务控制,事务资源使用端1通过事务协调器11开始事务。事务资源客户端12与事务资源服务端2(图中未示出)一一对应,其用于与相应的事务资源服务端2通信,提交携带有事务标识的业务操作请求及提交请求,实现事务资源服务端2的业务调用。业务操作请求模块13用于通过事务资源客户端12提交携带有事务标识的业务操作请求,业务操作包括数据的增、删、改、查及消息发布等。各事务资源客户端12接收到业务操作请求后,注册到事务协调器11中。提交请求模块14用于发起提交请求,该模块将提交请求发送至事务协调器11,事务协调器11通过注册的事务资源客户端12向事务资源服务端2发送提交请求。
当事务涉及多个事务资源客户端时,业务操作请求模块13可按照事务包含的各项操作的顺序向操作对应的各事务资源客户端12逐个发送业务操作请求,各事务资源客户端接收到业务操作请求后注册到事务协调器11中,从而事务协调器11可统一管理多个事务资源。
本实施例基于非JCA体系结构实现了跨系统分布式事务处理,适用于基于J2EE、J2SE、C++及C#等多种系统。
如图2所示,为本发明实施例事务资源服务端的第一结构示意图。事务资源服务端2用于通过事务资源客户端12(图中未示出)为事务资源使用端1(图中未示出)提供服务资源,其包括事务映射模块21、资源管理器22、事务管理器23及事务适配器创建模块24。
事务映射模块21用于查找事务标识对应的事务适配器,该事务映射模块21包括事务适配器211、查找模块212及记录模块213。事务适配器211用于接收提交请求并将提交请求转发至注册的资源管理器,每一事务适配器211用于管理事务资源服务端2参与的一个事务的操作,当事务资源服务端2参与了多个事务时,事务映射模块21则包括多个事务适配器211。查找模块212用于查找事务标识对应的事务适配器211。记录模块213用于记录事务标识与事务适配器的对应关系。
资源管理器22用于根据提交请求执行提交,其支持两阶段提交协议。事务管理器23用于将当前事务替换为所述事务适配器以及资源管理器的注册及注销,管理事务资源,如物理数据库、支持事务的内存数据库以及支持事务接口的应用系统。事务适配器创建模块24用于创建事务适配器211,事务资源服务端2接收到业务操作请求后,若没有查找到事务标识相应的事务适配器,则创建事务适配器211,并将事务适配器211及对应的事务标识保存至记录模块213。
本实施例基于非JCA体系结构实现了跨系统分布式事务处理,由事务适配器负责一次事务操作的管理,作为接口的事务适配器简单易用,适用于基于J2EE、J2SE、C++及C#等的多种应用系统。
如图3所示,为本发明实施例事务资源使用端及事务资源服务端构成的分布式事务处理系统结构示意图。从本图中可以看出,事务资源使用端1通过事务资源客户端12与事务资源服务系统2连接,事务资源客户端12与事务资源服务系统2一一对应。
如图4所示,为本发明实施例事务协调器第一结构示意图。事务协调器11包括注册模块112、提交请求转发模块113、注销模块114及事务代理模块115。
注册模块112用于注册参与当前事务的事务资源客户端12,并将注册信息通知事务代理模块115。事务资源客户端12作为资源代理注册到注册模块112。提交请求转发模块113接收到提交请求模块14发送的提交请求后,通过事务代理模块115提交携带有事务标识的提交请求。事务代理模块115在一个事务中管理参与本事务的,即作为资源代理注册的事务资源客户端12,其通过事务资源客户端12提交携带有事务标识的提交请求,并且支持以两阶段提交方式提交该提交请求。注销模块114用于在提交提交请求后将当前事务的事务资源客户端12注销,并将注销信息通知事务代理模块115。
本实施例的基于非JCA的事务协调器实现了跨系统的分布式事务管理,满足基于J2EE、J2SE、C++及C#等的多种应用系统的数据操作一致性需求。
如图5所示,本发明实施例的事务协调器还可包括创建模块111,该模块用于创建事务代理模块115,并生成事务标识。
两阶段提交分为提交准备以及提交操作两阶段,在提交准备阶段,事务资源收到请求后执行数据修改和日志记录等处理,处理完成后只是把事务的状态改成“可以提交”,然后返回结果,报告是否准备完毕。如果所有的事务资源都准备就绪,则进入提交操作阶段。在提交操作阶段,事务的“可以提交”状态改为“提交完成”状态。
如图6所示,为本发明实施例事务资源使用端第二结构示意图。本实施例将图5所示事务协调器11应用于图2所示的事务资源使用端实施例一,并且事务代理模块115具体包括准备请求模块1151以及操作请求模块1152。
准备请求模块1151用于提交携带有事务标识的提交准备请求;操作请求模块1152用于在提交准备成功的情况下继续向注册的事务资源客户端提交携带有事务标识的提交操作请求。
本实施例中,提交请求的提交采用两阶段方式,即第一阶段是提交准备,第二阶段提交操作,这样,使用端可有效控制数据操作一致性,从而实现跨事务管理器的事务统一。
如图7所示,为本发明的事务资源服务端实施例二结构示意图。本实施例与图2所示实施例的区别在于,事务映射模块21进一步加入了删除模块214,事务管理器23具体包括事务切换模块231、资源注册模块232及资源注销模块233。
事务切换模块231用于在接收到业务操作请求后,将当前事务由事务管理器23的事务替换为事务标识对应的事务适配器211,以及在执行提交后,将当前事务由事务适配器211替换为事务管理器23的事务。
资源注册模块232用于将参与本次事务的资源管理器22注册到事务标识对应的事务适配器211,从而,事务适配器211可以将接收到的提交请求转发至相应的资源管理器22。
资源注销模块233用于在执行提交后将资源管理器22从事务适配器211中注销。
事务映射模块21的删除模块213用于在执行提交后,删除事务标识对应的事务适配器211及事务标识与事务适配器的对应关系,从而可及时释放空间。
如图8所示,为本发明实施例的事务资源使用端的分布式事务处理方法第一流程图,包括如下步骤步骤A101、注册事务资源客户端;步骤A102、利用注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交请求;步骤A103、注销事务资源客户端。
本实施例基于非JCA体系结构实现了跨系统分布式事务处理,适用于基于J2SE、J2EE的应用系统以及基于C++、C#等的非Java应用系统。
如图9所示,为本发明实施例事务资源服务端的分布式事务处理方法第一流程图,包括如下步骤步骤B101、根据业务操作请求中携带的事务标识,查找事务标识对应的事务适配器;步骤B102、将当前事务由事务管理器的事务替换为事务适配器;;步骤B103、根据业务操作请求执行业务操作,业务操作包括数据的增、删、改、查及消息发布等;
步骤B104、将资源管理器注册到事务标识对应的事务适配器;步骤B105、根据提交请求中携带的事务标识将提交请求转发至相应的事务适配器,事务适配器通过注册的资源管理器执行提交。
本实施例基于非JCA体系结构实现了跨系统分布式事务处理,适用于基于J2SE或者非Java应用系统,由事务适配器负责一次事务操作的管理,作为接口的事务适配器简单易用。
如图10所示,为本发明实施例事务资源使用端的分布式事务处理方法第二流程图。本实施例事务协调器通过事务代理模块管理协调事务操作,在提交提交请求时采用两阶段提交方式,从而使用端可有效地控制事务统一。本实施例包括如下步骤步骤A201、创建事务代理模块,生成事务标识;步骤A202、向参与事务的事务资源客户端发送业务操作请求;步骤A203对事务资源客户端进行注册并将注册信息通知事务代理模块;步骤A204事务资源客户端向事务资源服务端提交携带有事务标识的业务操作请求;步骤A205、判断业务操作请求是否成功,若成功执行步骤A206;步骤A206、向事务代理模块提交提交请求;步骤A207、事务代理模块通过注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交准备请求;步骤A208、判断提交准备是否成功,若成功执行步骤A209;步骤A209、事务代理模块通过注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交操作请求。
本实施例中,提交请求的提交采用两阶段提交方式,即第一阶段提交提交准备请求,第二阶段进行提交提交操作请求,这样,使用端可有效控制数据操作一致性,从而实现跨事务管理器的事务统一。
如图11所示,为本发明实施例事务资源服务端的分布式事务处理方法第二流程图。本实施例配合事务资源使用端的两阶段提交方式,包括如下步骤步骤B201、接收业务操作请求,根据业务操作请求中携带的事务标识查找对应的事务适配器;步骤B202、将当前事务由事务管理器的事务替换为事务适配器;步骤B203、执行业务操作;步骤B204、将资源管理器注册到事务标识对应的事务适配器;步骤B205、接收提交准备请求,根据提交准备请求中携带的事务标识将提交准备请求转发至相应的事务适配器,事务适配器通过注册的资源管理器执行提交准备并返回执行结果;步骤B206、接收提交操作请求,根据提交操作请求中携带的事务标识将提交准备请求转发至相应的事务适配器,事务适配器通过注册的资源管理器执行提交操作。
本实施例实现了基于非JCA的跨系统事务协调,通过暴露事务管理器的提交准备接口,事务统一可由事务资源使用端统一控制,在事务管理器的上层控制事务,实现分布式事务处理要求的原子性、一致性、隔离性和持久性。
如图12所示,为本发明实施例事务资源使用端的分布式事务处理方法第三流程图。本实施例中参与事务的事务资源有多个,在创建事务时,需要对多个事务资源客户端逐个发起业务请求,对其进行注册,并逐个发送提交准备请求及提交操作请求。本实施例包括如下步骤步骤A301、事务资源使用端应用通过事务协调器开始事务;步骤A302、事务协调器创建事务代理模块并生成事务标识,该事务标识可以为事务序列号;步骤A303、事务资源使用端应用向参与事务的事务资源客户端发送业务操作请求;步骤A304、事务资源客户端作为资源代理注册到事务协调器;步骤A305、事务协调器将注册信息通知事务代理模块;
步骤A306、事务资源客户端向事务资源服务端提交携带有事务标识的业务操作请求;步骤A307、判断业务操作请求是否成功,若成功执行步骤A308;对于各事务资源,判断各业务操作请求是否成功的方法可能不同,有的系统无论执行成功还是失败,均会返回响应,有的系统只会在出现异常时返回响应,这需要根据系统的具体定义来确定;步骤A308、判断是否参与本次事务的所有事务资源客户端均已注册,并已发送业务操作请求,若是,执行步骤A309,否则,执行步骤A303;步骤A309、事务资源使用端应用向事务协调器提交提交请求;步骤A310、事务协调器向事务代理模块转发提交请求;步骤A311、事务代理模块向注册的事务资源客户端提交携带有事务标识的提交准备请求;步骤A312、事务资源客户端向事务资源服务端提交携带有事务标识的提交准备请求;步骤A313、事务资源客户端接收事务资源服务端返回的响应步骤A314、事务资源客户端将响应转发至事务代理模块;步骤A315、事务代理模块判断提交准备是否成功,若成功执行步骤A316;步骤A316、判断是否已向注册的各事务资源客户端发送提交准备请求,若是,执行步骤A317,否则执行步骤A311;步骤A317、事务代理模块向注册的事务资源客户端提交携带有事务标识的提交操作请求;步骤A318、事务资源客户端向事务资源服务端提交携带有事务标识的提交操作请求;步骤A319、事务协调器注销事务资源客户端;步骤A320、事务协调器将注销信息通知事务代理模块;步骤A321、判断是否已向注册的各事务资源客户端发送提交操作请求,若否,执行步骤A317。
本实施例实现了基于非JCA的跨系统事务协调,通过暴露事务管理器的提交准备接口,事务协调器可主动控制跨越事务管理器的事务统一,在事务管理器的上层控制事务,实现分布式事务处理要求的原子性、一致性、隔离性和持久性。
如图13所示,为本发明实施例事务资源服务端的分布式事务处理方法第三流程图。本实施例中事务的执行涉及多个资源管理器,在执行业务操作以及执行提交时,依次向各资源管理器转发请求,在事务执行完毕后注销各资源管理器并删除事务标识。本实施例具体包括如下步骤步骤B301、事务资源服务端应用接收业务操作请求;步骤B302、事务资源服务端应用向事务映射模块发查询请求;步骤B303、事务映射模块查找事务标识对应的事务适配器;若查找到,执行步骤B306,否则,执行步骤B304;步骤B304、事务资源服务端应用创建事务适配器;步骤B305、事务资源服务端将事务适配器与事务标识进行保存;步骤B306、事务资源服务端将当前事务由事务管理器的事务替换为事务标识对应的事务适配器;步骤B307、事务资源服务端应用执行业务操作;步骤B308、执行业务操作过程中调用多个资源管理器;步骤B309、各资源管理器获取事务;步骤B310、各资源管理器注册到事务适配器;步骤B311、事务资源服务端应用接收提交准备请求;步骤B312、事务资源服务端应用向事务映射模块查询事务标识对应的事务适配器;步骤B313、事务映射模块查找事务标识对应的事务适配器并向事务资源服务端应用返回查找结果;
步骤B314、事务资源服务端应用将提交准备请求转发至事务标识对应的事务适配器;步骤B315、事务适配器向注册的资源管理器发送提交准备请求;步骤B316、资源管理器执行提交准备,向事务适配器返回执行结果;步骤B317、事务适配器判断提交准备是否成功,若是,执行步骤B318;步骤B318、事务适配器判断是否注册的各资源管理器均已执行提交准备,若是,执行步骤B319,否则,执行步骤B315;步骤B319、事务适配器向事务资源服务端应用返回执行结果;步骤B320、事务资源服务端应用向事务资源客户端返回执行结果;步骤B321、事务资源服务端应用接收提交操作请求;步骤B322、事务资源服务端应用向事务映射模块查询事务标识对应的事务适配器;步骤B323、事务映射模块查找事务标识对应的事务适配器并向事务资源服务端应用返回查找结果;步骤B324、事务资源服务端应用将提交操作请求转发至事务标识对应的事务适配器;步骤B325、事务适配器向注册的资源管理器发送提交操作请求;步骤B326、资源管理器执行提交操作;从事务适配器中注销资源管理器;步骤B327、事务适配器判断是否注册的各资源管理器均已执行提交操作,若是,执行步骤B328,否则,执行步骤B325;步骤B328、事务资源服务端删除事务映射模块中的事务标识对应的事务适配器;步骤B329、事务资源服务端将将当前事务由事务适配器替换为事务管理器的事务。
本实施例实现了基于非JCA的多事务资源协调,通过暴露事务管理器的提交准备接口,事务统一可由事务资源使用端统一控制,在事务管理器的上层控制事务,实现分布式事务处理要求的原子性、一致性、隔离性和持久性。
本发明实施例实现了基于非JCA的事务统一,满足了基于J2EE、J2SE(Java 2 Standard Edition)的应用系统以及基于C++、C#等的非Java应用系统的数据操作一致性需求;暴露事务管理器的提交准备接口,由使用端控制事务管理器的事务统一;在事务管理器上层控制事务,实现了分布式事务处理要求的原子性、一致性、隔离性和持久性,并且与JCA架构相比,接口简单易用。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换,而不脱离本发明技术方案精神的,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种事务资源使用端的分布式事务处理方法,其特征在于,所述方法包括如下步骤注册事务资源客户端;利用所述事务资源客户端向事务资源服务端提交携带有事务标识的提交请求;及注销所述事务资源客户端。
2.根据权利要求1所述的事务资源使用端的分布式事务处理方法,其特征在于,所述注册事务资源客户端的步骤之前还包括如下步骤创建事务代理模块;及生成事务标识;所述事务代理模块,用于通过注册的事务资源客户端提交携带有事务标识的提交请求。
3.根据权利要求2所述的事务资源使用端的分布式事务处理方法,其特征在于,所述生成事务标识的步骤之后,所述分布式事务处理方法还包括向事务资源客户端发送携带有事务标识的业务操作请求的步骤。
4.根据权利要求2所述的事务资源使用端的分布式事务处理方法,其特征在于,在对事务资源客户端进行注册的步骤之后还包括将注册信息通知事务代理模块的步骤。
5.根据权利要求1所述的事务资源使用端的分布式事务处理方法,其特征在于,所述通过注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交请求的步骤具体为采用两阶段提交方式通过注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交请求。
6.根据权利要求3所述的事务资源使用端的分布式事务处理方法,其特征在于,所述向事务资源客户端发送业务操作请求的步骤具体为依次向各参与当前事务的事务资源客户端发送业务操作请求。
7.根据权利要求1至6任意一项所述的分布式事务处理方法,其特征在于,所述注册事务资源客户端的步骤具体为依次注册参与当前事务的各事务资源客户端。
8.根据权利要求1至6任意一项所述的事务资源使用端的分布式事务处理方法,其特征在于,所述通过注册的事务资源客户端向事务资源服务端提交携带有事务标识的提交请求的步骤具体为向注册的多个事务资源客户端依次提交携带有事务标识的提交准备请求,若均成功,则向该多个事务资源客户端依次提交携带有事务标识的提交操作请求。
9.一种事务资源服务端的分布式事务处理方法,其特征在于,所述方法包括根据业务操作请求中携带的事务标识查找对应的事务适配器;将当前事务替换为所述事务适配器;根据所述业务操作请求执行业务操作;将资源管理器注册到所述事务适配器;根据提交请求中携带的事务标识将所述提交请求转发至所述事务适配器;及通过所述资源管理器执行提交。
10.根据权利要求9所述的事务资源服务端的分布式事务处理方法,其特征在于,所述根据业务操作请求中携带的事务标识查找对应的事务适配器的步骤后,若不存在事务标识对应的事务适配器,则创建事务适配器,并记录事务标识与事务适配器的对应关系。
11.根据权利要求9所述的事务资源服务端的分布式事务处理方法,其特征在于,在执行提交后,删除所述事务适配器以及所述事务标识与事务适配器的对应关系,并将当前事务由事务适配器替换为事务管理器的事务。
12.根据权利要求9所述的事务资源服务端的处理分布式事务处理方法,其特征在于,所述根据提交请求中携带的事务标识将所述提交请求转发至所述事务适配器的步骤具体为根据提交请求中携带的事务标识查找对应的事务适配器,将提交请求转发至该事务适配器。
13.一种事务协调器,其特征在于,所述事务协调器包括事务代理模块,用于利用注册的事务资源客户端提交携带有事务标识的提交请求;注册模块,用于注册参与当前事务的事务资源客户端,并将注册信息通知所述事务代理模块,所述事务资源客户端至少为一个;提交请求转发模块,用于向事务代理模块转发提交请求;及注销模块,用于注销当前事务的事务资源客户端,并将注销信息通知所述事务代理模块。
14.根据权利要求13所述的事务协调器,其特征在于,所述事务协调器还包括创建模块,用于创建事务代理模块,生成事务标识。
15.根据权利要求13或14所述的事务协调器,其特征在于,所述事务代理模块具体为采用两阶段提交方式提交携带有事务标识的提交请求的事务代理模块。
16.根据权利要求13或14所述的事务协调器,其特征在于,所述事务代理模块具体包括准备请求模块,用于提交携带有事务标识的提交准备请求;操作请求模块,用于向注册的事务资源客户端提交携带有事务标识的提交操作请求。
17.一种事务资源使用端,其特征在于,所述事务资源使用端包括事务协调器,用于协调事务资源,进行分布式事务控制;该事务协调器包括事务代理模块,用于通过注册的事务资源客户端提交携带有事务标识的提交请求;注册模块,用于注册参与当前事务的事务资源客户端,并将注册信息通知事务代理模块;所述事务资源客户端至少为一个;提交请求转发模块,用于向事务代理模块转发提交请求;及注销模块,用于注销当前事务的事务资源客户端,并将注销信息通知事务代理模块;业务操作请求模块,用于通过的事务资源客户端提交携带有事务标识的业务操作请求;及提交请求模块,用于发起提交请求;事务资源客户端,用于与事务资源服务端通信,提交业务操作请求及提交请求。
18.根据权利要求17所述的事务资源使用端,其特征在于,所述事务协调器还包括创建模块,用于创建事务代理模块,生成事务标识。
19.根据权利要求17所述的事务资源使用端,其特征在于,所述事务代理模块具体为采用两阶段提交方式提交携带有事务标识的提交请求的事务代理模块。
20.根据权利要求17所述的事务资源使用端,其特征在于,所述事务代理模块具体包括准备请求模块,用于提交携带有事务标识的提交准备请求;操作请求模块,用于向注册的事务资源客户端提交携带有事务标识的提交操作请求。
21.一种事务资源服务端,其特征在于,所述事务资源服务端包括事务映射模块,用于查找事务标识对应的事务适配器;该事务映射模块包括事务适配器,用于将提交请求转发至注册的资源管理器;记录模块,用于记录事务标识与事务适配器的对应关系;及查找模块,用于查找事务标识对应的事务适配器;事务适配器创建模块,用于创建事务适配器,并将事务标识与事务适配器保存至所述记录模块;资源管理器,用于根据所述提交请求执行提交;及事务管理器,用于将当前事务替换为所述事务适配器以及资源管理器的注册及注销。
22.根据权利要求21所述的事务资源服务端,其特征在于,所述事务管理器具体包括事务切换模块,用于将当前事务由事务管理器的事务替换为事务标识对应的事务适配器,以及在执行提交后,将当前事务由事务适配器替换为事务管理器的事务;资源注册模块,用于将资源管理器注册到事务标识对应的事务适配器;资源注销模块,用于将资源管理器从事务适配器中注销。
23.根据权利要求21或22所述的事务资源服务端,其特征在于,所述事务映射模块进一步包括删除模块,用于在执行提交后,删除事务标识对应的事务适配器。
全文摘要
本发明涉及事务协调器,事务资源使用端、服务端以及事务资源使用端、服务端处理分布式事务的方法。使用端对事务资源客户端进行注册;通过注册的事务资源客户端提交提交请求;注销事务资源客户端。服务端根据业务操作请求中携带的事务标识查找对应的事务适配器;将当前事务替换为所述事务适配器;;执行业务操作;将资源管理器注册到事务标识对应的事务适配器;根据提交请求中携带的事务标识将所述提交请求转发至相应的事务适配器,通过注册的资源管理器执行提交。本发明实施例实现了基于非JCA的事务统一,接口简单,满足基于J2EE、J2SE的应用系统以及基于C++、C#等的非Java应用系统的数据操作一致性需求,并实现了跨事务管理器的事务统一。
文档编号G06F9/46GK101046815SQ20071006441
公开日2007年10月3日 申请日期2007年3月14日 优先权日2007年3月14日
发明者刘诗凯, 沈青春 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1