[发明专利]会话失败后的自动事务重试有效
| 申请号: | 201380040029.6 | 申请日: | 2013-07-26 |
| 公开(公告)号: | CN104508663B | 公开(公告)日: | 2018-01-30 |
| 发明(设计)人: | M·A·内林克斯;L·F·F·多斯 桑托斯;O·伊格那特;D·B·洛美特;Q·布拉德利;R·拉姆;C·J·马弗德;P·吉沃德加克;B·姆更丹 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 范玮 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 会话 失败 自动 事务 重试 | ||
背景
数据库服务器是响应于从计算机应用接收到的请求来向其提供数据库服务的产品。此类数据库服务可以包括但不限于存储、检索、分析或操纵数据库数据。取决于实现,这些应用可以在数据库服务器在其上运行的同一机器上运行,或者可以在经由一个或多个网络连接至数据库服务器在其上运行的该机器的其他机器上运行。为将请求发送给数据库服务器,应用连接到数据库服务器并且与其建立所谓的会话。会话表示应用与数据库服务器之间正在进行的交互式信息交换。会话在某一时间点被设置或建立,并且随后在稍后的时间点被拆毁。所建立的会话通常涉及从应用向数据库服务器以及从数据库服务器向应用发送不止一个消息。
在应用发起了与数据库服务器的会话之后,可以在应用与服务器之间打开事务以执行一系列数据库操作。事务可以是原子的(atomic)以使得所有数据库操作都发生或者没有一个数据库操作发生。由此,应用可以向数据库服务器发送命令以供在事务的上下文内执行。在某一时间点,应用与数据库服务器之间建立的连接可能失败。例如,在应用与数据库服务器在不同机器上运行的场景中,在数据库服务器在其上运行的机器被关闭或崩溃的情况下或者在连接这些不同机器的网络存在问题的情况下连接可能失败。如果连接失败,则会话本身失败,并且由数据库服务器当前正在处理的事务失败。由于事务失败,无论数据库服务器是否已开始处理事务的操作,事务的所有操作都失败。结果,应用必须实现重试逻辑以重新尝试整个事务。然而,重试逻辑在应用中实现起来很复杂。此外,当这一应用被移至云环境时,存在更多因云服务本质引起会话失败的可能性。由此,可能需要修改应用以便能够更好地处理云中的数据库接入失败。
概述
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了用于从客户端与数据库服务器之间的会话失败中恢复并且用于允许以高效方式完成在会话失败期间处于进程中的事务的方法和系统。在数据库服务器处维护事务日志以跟踪执行事务内部的命令的进展。如果客户端与数据库服务器之间发生会话失败并且随后会话被重建,则事务日志可以被引用以使得事务能够从失败点继续,而无需从开头重新开始事务并且重新执行事务内部的命令。
本文还描述了包含存储计算机代码/指令的计算机可读存储介质的计算机程序产品,该代码/指令用于允许从会话失败中恢复,并且允许完成会话失败期间处于进程中的事务,以及允许本文描述的附加实施例。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图说明
合并在此并作为说明书一部分的附图与说明书一起示出了本发明的实施例,且进一步用于解释本发明的原理的作用,并且使相关领域的技术人员能够实现并使用本发明。
图1是根据一实施例的在客户端与数据库服务器之间会话失败的情况下允许事务完成的示例系统的框图。
图2是根据一示例实施例的图1所示的客户端的框图。
图3是根据一示例实施例的图1所示的数据库服务器的框图。
图4A和4B描绘了根据一示例实施例的在数据库服务器处执行的用于执行在数据库服务器与客户端之间的会话中的事务的过程的流程图。
图5描绘了根据一示例实施例的用于生成会话、事务和命令标识符的过程的流程图。
图6描绘了根据一示例实施例的在数据库服务器处执行的用于标识先前定义的会话的过程的流程图。
图7描绘了根据一示例实施例的被配置成标识与先前定义的会话相关联的事务和命令的数据库服务器的会话管理器的框图。
图8是根据一示例实施例的在系统中的客户端与数据库服务器之间的信息流的序列图,该系统在会话失败的情况下允许事务完成。
图9示出了根据一示例实施例的用于复制会话状态的过程。
图10描绘了根据一示例实施例的在第二数据库服务器处执行的从第一数据库服务器与客户端之间的会话失败中恢复的过程的流程图。
图11是根据一示例实施例的便于从会话失败中恢复的示例系统的框图,其中状态相关的信息经由共享存储器的使用在第一数据库服务器与第二数据库服务器之间被共享。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380040029.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于自动化工具控制系统的工具塑造
- 下一篇:基于短语的词典提取和翻译质量评估





