[发明专利]智能启用分布式事务的方法有效
申请号: | 201210408530.0 | 申请日: | 2012-10-24 |
公开(公告)号: | CN102945264B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 杨良;王延东 | 申请(专利权)人: | 浪潮通用软件有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 姜明 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种智能启用分布式事务的方法,属于计算机领域。该方法对微软.NET的分布式事务接口进行透明封装,多个数据访问层协同工作时,如果后台数据库为同一实例时,自动启用数据库事务,若是多个数据库实例,则自动启用分布式事务,并且把已经启用的数据库事务与分布式事务融合。与现有技术相比,本发明的智能启用分布式事务的方法具有结构清晰、应用方便、兼容标准事务接口等特点,广泛应用于分布式数据访问架构之中,具有很好的推广应用价值。 | ||
搜索关键词: | 智能 启用 分布式 事务 方法 | ||
【主权项】:
智能启用分布式事务的方法,其特征在于:对微软.NET的分布式事务接口进行透明封装,多个数据访问层协同工作时,如果后台数据库为同一实例时,自动启用数据库事务,若是多个数据库实例,则自动启用分布式事务,并且把已经启用的数据库事务与分布式事务融合,具体实现方法包含数据库连接管理及分布式事务代理两部分:数据库连接管理:实现一个数据库连接工厂GSPDatabaseFactory,以数据库连接工厂GSPDatabaseFactory实现对数据源创建的管理,创建数据库连接成功后放入内部连接池;数据库连接工厂GSPDatabaseFactory根据连接字符串形成连接信息字段列表,再根据当前线程上下文Token形成一个索引值,根据这个索引值在内部连接池中检索可用的数据库连接;数据库连接工厂GSPDatabaseFactory的GetDatabase方法返回一个接口IGSPDatabase有执行SQL语句的接口方法和开启、关闭数据库的方法,在不启用分布式事务的情况下,由数据库连接工厂GSPDatabaseFactory智能管理数据库连接的开启和关闭;分布式事务代理:实现一个虚拟分布式事务协调器:VirtualDTC,初次调用下述代码,初始化当前调用上下文中的虚拟分布式事务作用域,VirtualTransactionScope scope1 = newVirtualTransactionScope(TransactionScopeOption.Required);当前调用堆栈继续调用上述代码,根据TransactionScopeOption参数的值来确定虚拟分布式事务如何融合,虚拟分布式事务协调器记录当前管理的数据库连接,如果后续创建的数据库连接与连接池中的连接信息相同,则直接使用连接池中的连接,接着比较当前正在使用的数据库连接是否就是匹配的连接:如果相同,并且事务属性是Required,则前后两次数据库连接进行合并,并且增加引用计数;外部调用代码后续试图关闭数据库时,由数据库连接管理器负责减少引用计数;如果连接信息相同,但是事务属性是RequiredNew,则内部创建一个显式的分布式事务,并且把管理的内部数据库连接登记到该分布式事务中;如果与连接池上连接信息不同,则直接启动显式分布式事务,并把现有数据库连接登记到分布式事务。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮通用软件有限公司,未经浪潮通用软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210408530.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种无纸化安全教学的实现方法
- 下一篇:一种基于8路服务器的散热除尘方法