The application relates to methods and systems for restoring the state of the database session. A method, device, and computer-readable medium for restoring the state established between the first session between the first server instance and the client to the second session between the second server instance and the client is provided. The non transactional session state that exists for the first session is maintained by repeating a non transactional command in the second session. Transactions are executed in the second session when the transaction is not completed in the first session. First, the server instance sends information to the client in the first session to maintain a command that is sent to the first server instance, and is used for possible replay of the command executed in the first session. If the first session becomes unavailable, the maintained information can be used by second server instances to restore database sessions, thereby covering up outages for users, applications and clients.
【技术实现步骤摘要】
用于恢复数据库会话的状态的方法和系统本申请是申请日为2012年9月7日、申请号为201280043498.9、名称为“对客户端和应用掩盖服务器停运”的专利技术专利申请的分案申请。对相关申请的交叉引用本申请涉及并要求以下申请的优先权(1)2011年9月9日提出的题为“RecoveringStatefulRead-OnlyDatabaseSessions”的申请序列号13/229,641,其全部内容通过引用而被合并于此,就像这里充分阐述的一样;(2)2012年4月16日提出的题为“IdempotenceForDatabaseTransactions”的申请序列号13/448,258,其全部内容通过引用而被合并于此,就像这里充分阐述的一样;(3)2012年4月16日提出的题为“IdempotenceForDatabaseTransactions”的申请序列号13/448,267,其全部内容通过引用而被合并于此,就像这里充分阐述的一样;以及(4)2012年7月5日提交的题为“PreservingServer-ClientSessionContext,”的申请序列号13/54 ...
【技术保护点】
一种方法,包括:服务器实例在客户端和所述服务器实例之间的会话中从所述客户端接收执行以下各项的请求:当被执行时引发数据库的改变的一个或多个事务命令,以及当被执行时不引发所述数据库的改变的一个或多个非事务命令;所述服务器实例向所述客户端发送至少一个第一指示,所述至少一个第一指示指示所述客户端在第一组信息中存储表示在所述会话中打开的但尚未被提交的一个或多个特定事务命令的一个或多个第一条目以及在第二组信息中存储表示在所述会话中已经被处理的一个或多个特定非事务命令的一个或多个第二条目;确定所述一个或多个特定事务命令在所述会话中已经被提交;以及至少部分地基于确定所述一个或多个特定事务命 ...
【技术特征摘要】
2011.09.09 US 13/229,641;2012.04.16 US 13/448,258;1.一种方法,包括:服务器实例在客户端和所述服务器实例之间的会话中从所述客户端接收执行以下各项的请求:当被执行时引发数据库的改变的一个或多个事务命令,以及当被执行时不引发所述数据库的改变的一个或多个非事务命令;所述服务器实例向所述客户端发送至少一个第一指示,所述至少一个第一指示指示所述客户端在第一组信息中存储表示在所述会话中打开的但尚未被提交的一个或多个特定事务命令的一个或多个第一条目以及在第二组信息中存储表示在所述会话中已经被处理的一个或多个特定非事务命令的一个或多个第二条目;确定所述一个或多个特定事务命令在所述会话中已经被提交;以及至少部分地基于确定所述一个或多个特定事务命令在所述会话中已经被提交,所述服务器实例在所述会话中向所述客户端发送至少一个第二指示,所述至少一个第二指示指示所述客户端从所述第一组信息中清除表示所述一个或多个特定事务命令的所述一个或多个第一条目而不从所述第二组信息中清除表示所述一个或多个特定非事务命令的所述一个或多个第二条目;其中所述方法由一个或多个计算设备执行。2.如权利要求1所述的方法,还包括:确定所述请求在所述会话中已经完成;至少部分地基于确定所述请求在所述会话中已经完成,所述服务器实例在所述会话中向所述客户端发送第三指示,所述第三指示指示所述客户端从所述第二组信息中清除表示所述一个或多个特定非事务命令的所述一个或多个第二条目。3.如权利要求2所述的方法,其中所述第三指示指示所述客户端从所述第一组信息中清除表示任何事务命令的所述一个或多个第一条目。4.如权利要求1所述的方法,其中所述至少一个第一指示包括指示所述客户端在所述第二组信息中存储表示所述一个或多个特定非事务命令的所述一个或多个第二条目的至少一个指示。5.如权利要求4所述的方法,还包括:确定所述特定的一个或多个非事务命令在所述会话中已经被处理;至少部分地基于确定所述特定的一个或多个非事务命令在所述会话中已经被处理,所述服务器实例在所述会话中向所述客户端发送一个或多个指示,所述一个或多个指示指示所述客户端在所述第二组信息中维持表示所述一个或多个特定非事务命令的所述一个或多个第二条目。6.如权利要求1所述的方法,其中第一数据结构被用于存储所述第一组信息;以及其中第二数据结构被用于存储所述第二组信息。7.如权利要求6所述的方法,其中所述第一数据结构是第一队列并且所述第二数据结构是第二队列。8.如权利要求1所述的方法,其中所述会话具有静态,所述静态指示所述会话的会话状态改变作为会话初始化的一部分或在任何事务之外发生;以及其中所述服务器实例响应于在所述会话中提交任何事务而发送所述至少一个第二指示。9.如权利要求1所述的方法,还包括:检测所述请求中的事务设置非事务会话状态;确定所述请求中的后来的命令是否使用所述非事务会话状态;如果确定后来的命令不使用所述非事务会话状态,则在提交所述事务之后,所述服务器实例在所述会话中向所述客户端发送至少一个指示,所述至少一个指示指示所述客户端从所述第一组信息和所述第二组信息中清除表示所述一个或多个特定事务命令的所述一个或多个第一条目以及表示所述一个或多个特定非事务命令的所述一个或多个第二条目;以及如果确定后来的命令使用所述非事务会话状态,则在提交所述事务之后,所述服务器实例在所述会话中向所述客户端发送指示所述客户端从所述第一组信息中清除表示所述一个或多个特定事务命令的所述一个或多个第一条目的指示。10.如权利要求1所述的方法,还包括:所述服务器实例检测所述请求的一个或多个事务被提交由此所述一个或多个事务成为一个或多个提交的事务;所述服务器实例检测后来的命令使用在所述请求的所述一个或多个提交的事务期间被改变的但是不由所述一个或多个事务持续的会话状态;作为响应,所述服务器实例在所述会话中向所述客户端发送描述在不重复所述一个或多个提交的事务的情况下改变所述会话状态的一个或多个命令的第三组信息;以及所述服务器实例在所述会话中向所述客户端发送指示所述客户端从所述第一组信息中清除表示所述一个或多个特定事务命令的所述一个或多个第一条目的指示。11.如权利要求1所述的方法,其中所述第一组信息与所述第二组信息被分开维持。12.如权利要求1所述的方法,其中所述第一组信息或所述第二组信息被存储在所述客户端处,或者所述第一组信息和所述第二组信息两者被存储在所述客户端处。13.如权利要求1所述的方法,其中所述至少一个第一指示在所述客户端处被接收时使得所述客户端在所述第一组信息中存储所述一个或多个第一条目。14.如权利要求1所述的方法,其中所述至少一个第二指示在所述客户端处被接收时使得所述客户端从所述第一组信息中清除所述一个或多个第一条目而不从所述第二组信息中清除所述一个或多个第二条目。15.如权利要求1所述的方法,其中所述至少一个第一指示或所述至少一个第二指示能够在所述客户端处执行,或者所述至少一个第一指示和所述至少一个第二指示两者能够在所述客户端处执行。16....
【专利技术属性】
技术研发人员:K·S·尼尔,C·L·科尔瑞恩,D·N·萨博,N·R·艾科达,S·H·罗艾斯科,周彤,J·D·拉瓦瑞恩,
申请(专利权)人:甲骨文国际公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。