发明名称 |
保证跨数据源操作结果一致性的装置和方法 |
摘要 |
本发明提供了一种保证跨数据源操作结果一致性的方法,包括:打开消息中间件的本地事务,当接收到来自消息中间件的指定列队中的消息时,根据消息创建一个全局事务,开始第二数据源的本地事务,其中,消息中间件为第一数据源;根据消息的业务处理需要从第二数据源中获取所需业务数据,在业务处理结束时,将生成的处理结果保存至第二数据源;根据返回的处理结果发起提交或者回滚全局事务的过程,先提交或者回滚第二数据源的本地事务,然后提交或者回滚消息中间件的本地事务,全局事务提交或者回滚成功后,释放全局事务的相关资源。本发明还提供了一种保证跨数据源操作结果一致性的装置。可以在非XA协议方式下,保证跨数据源的操作结果的一致性。 |
申请公布号 |
CN102306197B |
申请公布日期 |
2013.07.03 |
申请号 |
CN201110283994.9 |
申请日期 |
2011.09.22 |
申请人 |
用友软件股份有限公司 |
发明人 |
栗竹冉 |
分类号 |
G06F17/30(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
北京友联知识产权代理事务所(普通合伙) 11343 |
代理人 |
尚志峰;汪海屏 |
主权项 |
一种保证跨数据源操作结果一致性的装置,其特征在于,包括:消息处理单元,请求打开消息中间件的本地事务,接收来自所述消息中间件的指定列队中的消息,根据所述消息向全局事务控制单元发送创建一个全局事务的第一请求以及在接收到来自应用服务单元返回的处理结果时,向所述全局事务控制单元发送发起提交或者回滚所述全局事务的过程的第二请求以及在接收到来自所述全局事务控制单元的命令时,提交或者回滚所述消息中间件的本地事务,所述消息中间件的本地事务为在所述消息中间件上运行的事务,所述消息中间件为第一数据源;所述全局事务控制单元,在接收到来自所述消息处理单元的所述第一请求时,创建一个所述全局事务,开始第二数据源的本地事务以及在接收到来自所述消息处理单元的所述第二请求时,发起提交或者回滚所述全局事务的过程,先提交或者回滚所述第二数据源的本地事务,然后命令所述消息处理单元提交或者回滚所述消息中间件的本地事务,以完成所述全局事务的提交或者回滚过程,所述全局事务提交成功后,释放所述全局事务的相关资源,所述全局事务为跨所述第一数据源和所述第二数据源运行的事务,所述第二数据源的本地事务为在所述第二数据源上运行的事务;所述应用服务单元,根据所述消息的业务处理需要从所述第二数据源中获取所需业务数据,在所述业务处理结束时,将生成的处理结果保存至所述第二数据源,将所述处理结果返回至所述消息处理单元。 |
地址 |
100094 北京市海淀区北清路68号用友软件园 |