CN1836213A - 服务器间的透明会话迁移 - Google Patents

服务器间的透明会话迁移 Download PDF

Info

Publication number
CN1836213A
CN1836213A CNA200480023127XA CN200480023127A CN1836213A CN 1836213 A CN1836213 A CN 1836213A CN A200480023127X A CNA200480023127X A CN A200480023127XA CN 200480023127 A CN200480023127 A CN 200480023127A CN 1836213 A CN1836213 A CN 1836213A
Authority
CN
China
Prior art keywords
session
migration
client computer
database
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200480023127XA
Other languages
English (en)
Other versions
CN100437545C (zh
Inventor
桑贾伊·卡卢斯卡尔
斯里尼瓦斯·戈拉普迪
德巴希什·查特吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Oracle America Inc
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN1836213A publication Critical patent/CN1836213A/zh
Application granted granted Critical
Publication of CN100437545C publication Critical patent/CN100437545C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明的技术允许客户机以对为之建立初始会话的应用程序透明的方式从服务器上的会话切换到另一服务器上的另一会话。这样,在透明的会话迁移下,切换客户机,而不执行定制为完成该迁移的应用程序指令。相反,该应用程序通过之与该服务器交互的客户侧接口构件处理迁移的详细信息,修改客户侧接口构件的内部状态,以实现相同效果。也不必为了构成这里描述的技术而修改遗留应用程序。

Description

服务器间的透明会话迁移
相关申请的交叉参考
本发明涉及捕捉和重新储存会话状态,以执行例如在服务器之间传送会话等任务,从而平衡多结点计算机系统中的工作负荷。
本发明要求于2003年8月14日提交的美国临时申请No.60/495,368 Computer Resource Provisioning的优先权,其内容结合于此作为参考。
本申请涉及以下美国申请:
美国申请No.XX/XXX,XXX,Transparent Session MigrationAcross Servers(律师卷号50277-2383),由Sanjay Kaluskar等人于2004年8月12日提交,结合于此作为参考;
美国申请No.XX/XXX,XXX,Hierarchical Management of theDynamic Allocation of Resources in a Multi-Node System(律师卷号50277-2382),由Benny Souder等人于2004年8月12日提交,结合于此作为参考;
美国申请No.XX/XXX,XXX,Incremental Run-Time SessionBalancing in Multi-Node System(律师卷号50277-2411),由Lakshminarayanan Chidambaran等人于2004年8月12日提交,结合于此作为参考;
美国临时申请No.XX/XXX,XXX,Suspending A Result Set AndContinuing From A Suapended Result Set For Transparent SessionMigration(律师卷号OI7039362001,申请人卷号OID-2004-043-01),于2004年8月12日提交,结合于此作为参考;
美国临时申请No.XX/XXX,XXX,Suspending A Result Set AndContinuing From A Suspended Result Set(律师卷号OI7039362002,申请人卷号OID-2004-043-02),于2004年8月12日提交,结合于此作为参考;以及
美国临时申请No.XX/XXX,XXX,Suspending A Result Set AndContinuing From A Suspended Result Set For Scrollable Cursors(律师卷号OI7039362003,申请人卷号OID-2004-043-03),于2004年8月12日提交,结合于此作为参考;
本申请涉及以下国际申请:
国际申请No.PCT/XXXX/XXXXX,Automatic and DynamicProvisioning of Databases(律师卷号50277-2571),由OracleInternational Corporation于2004年8月9日提交给美国受理局,结合于此作为参考;
国际申请No.PCT/XXXX/XXXXX,Hierarchical Managementof the Dynamic Allocation of Resources in a Multi-Node System(律师卷号50277-2592),由Oracle International Corporation于2004年8月13日提交给美国受理局,结合于此作为参考;
国际申请No.PCT/XXXX/XXXXX,Transparent Migration ofStateless Sessions Acroo Servers(律师卷号50277-2594),由OracleInternational Corporation于2004年8月13日提交给美国受理局,结合于此作为参考;
国际申请No.PCT/XXXX/XXXXX,On Demand Node andServer Instance Allocation and De-Allocation(律师卷号50277-2595),由Oracle International Corporation于2004年8月13日提交给美国受理局,结合于此作为参考。
背景技术
许多企业数据处理系统均依赖多结点数据库服务器储存和管理数据。所述企业数据处理系统通常遵从(follow)在第一层中具有多结点数据库服务器和在中间层和外层中具有一个或多个计算机的多层模型。
图1描述了在多层架构10上实现的多结点数据库服务器mds11。服务器(例如多结点数据库服务器mds11)是集成软件构件和例如存储器、结点等计算资源分配的组合,并且在结点上处理处理器上的集成软件构件的执行,软件和计算资源组合专用于代表一个或多个客户机执行特定功能。来自多结点计算机系统中的多个结点的资源可被分配,以运行特定服务器的软件。结点上的软件和来自该节点的资源分配的特定组合是本文中称为服务器实例或实例的服务器。因此,多结点服务器包括可在多个结点上运行的多个服务器实例。多结点服务器的数个实例甚至可在同一结点上运行。
数据库服务器管理和帮助访问特定数据库,处理客户机请求以访问该数据库。多结点数据库服务器(例如多结点数据库服务器mds11)包括多个“数据库实例”,每个数据库实例都在一个节点上运行。多结点数据库服务器mds11管理对数据库db11的存取。多结点数据库服务器可管理和帮助存取一个或多个数据库。
多层架构10的中间层包括中间层计算机cmp11,且外层包括用户计算机cmp12。用户计算机cmp12执行与终端用户交互的浏览器br11。终端用户与浏览器br11的交互使得浏览器通过例如互联网等网络发送请求给中间层计算机cmp11。该请求使得中间层计算机cmp11、客户机c11上的程序执行应用程序appl11。客户机c11执行应用程序appl11使得客户机c11连接至多结点数据库服务器md11。例如,应用程序appl11可以是用于接收来自浏览器br11的订单请求的订单输入应用程序。用于该订单输入应用程序的数据储存在db11中。为了处理该请求,客户机c11执行应用程序appl11使得客户机c11连接至数据库db11。一旦连接,客户机c11就发布(issue)数据库语句来取回(retrieve)和操纵储存在数据库db11中的数据。
相对于多层架构中的其它层直接连接至服务器的层在这里被认为是包含服务器的客户机。因此,在这里将客户机处理器c11称为多结点数据库服务器mds11的客户机。
应用程序作为在这里使用的术语是用于与服务器功能交互和使用服务器功能的软件单元。一般而言,应用程序包括集成功能和执行一组相关功能的软件模块(例如,包括机器可执行代码或可解释代码、动态链接库的程序)。
例如应用程序appl11等应用程序经由客户侧接口构件intcomp11与多结点数据库服务器mds11交互。应用程序appl11的执行使得客户机c11执行客户侧接口构件intcomp11,以与多结点数据库服务器mds11交互。应用程序appl11包括客户侧接口构件intcomp11的例行程序(例如,功能、步骤、对象方法、远程过程)的调用。应用程序通常由与开发服务器和服务器接口(例如,多结点数据库服务器mds11和客户侧接口构件intcomp11)的供应商和研发队伍不同的供应商和研发队伍开发。
为了使客户机与多结点数据库服务器mds11交互,在多结点数据库服务器mds11的数据库接口上为该客户机建立会话。例如数据库会话等会话是建立客户机到服务器的具体连接,例如数据库实例,其中客户机通过该数据库实例发布一系列请求(例如,执行数据库语句的请求)。
对于每个建立在数据库实例上的数据库会话,会话状态包括在数据库会话期间为数据库会话储存的数据。这种数据举例来说包括为之建立会话的客户机身份和由在数据库会话内执行软件的处理器和数据库构件产生的临时变量值。数据库构件是一组为数据库服务器提供专用和相关功能的软件模块,并且稍后被详细描述。数据库构件的一个实例是Java执行引擎。
会话的开始和结束区分(demarcate)工作单元。常常,数据库会话的开始对应于建立举例来说经由浏览器与应用程序交互的会话的终端用户,并且在终端用户退出时结束。因此,数据库会话的开始和结束取决于应用程序逻辑和终端用户动作,并且也许不是由上面建立会话的服务器控制。
客户侧接口构件
例如客户侧接口构件intcomp11等客户侧接口构件是驻留在服务器客户机的同一计算机上且在其上执行的软件构件,用于提供客户机和服务器之间的接口。客户侧接口构件intcomp11用于执行与多结点数据库服务器mds11的接口所需要的具体操作。例如,应用程序appl11调用客户侧接口构件intcomp11的功能,以建立至多结点数据库服务器mds11的连接。客户侧接口构件接着处理多结点数据库服务器mds11的特定实例上的连接详细信息(detail)。为了作出多结点数据库服务器mds11的请求,例如执行询问的请求,应用程序appl11配置为调用客户侧接口构件intcomp11的函数,接着客户侧接口构件intcomp11发送相同请求给节点和上面建立会话的数据库实例。
客户侧接口构件intcomp11可生成和/或访问其它软件模块隐藏的状态,即不是或可能不是由其它软件模块(具体而言,由应用程序appl11)引用和访问的状态。这种状态被认为是客户侧接口构件intcomp11内部的或专用的。
例如,为了在多结点数据库服务器mds11上创建会话,应用程序appl11盗用客户侧接口构件intcomp11的例行程序。客户侧接口构件在多结点数据库服务器mds11内的特定数据库实例上建立数据库会话,并且在内部数据结构或对象内储存有关该数据库会话的详细信息。所述数据结构和对象举例来说限定为应用程序建立的会话,并且将这种值指定为数据库实例上的会话的身份、数据库实例的名称、和用于至数据库实例的连接的网络地址和端口数量。
所述会话的详细信息没有返回到应用程序appl11,应用程序appl11也没有访问所述详细信息。相反,提供给应用程序appl11的是会话的“外部标识符”,例如客户侧接口构件intcomp11的内部数据映射到该会话的值、或对客户侧接口构件intcomp11产生的用于在应用程序appl11不能访问的对象的专用属性中储存该会话的一些详细信息的对象的参考。这样,应用程序appl11不“知道”已经为其建立的会话的特定详细信息;然而,应用程序appl11具有必须能识别已经为应用程序appl11建立的特定会话给客户侧接口构件intcomp11的信息。
分配工作负荷
管理多结点数据库服务器所需要的重要能力是在节点之间分配工作负荷。分配工作负荷用于通过最理想地平衡节点之间的工作负荷改善性能。分配工作负荷也允许工作从正在离线进行维护操作的节点传送到另一节点。
为了改善性能,使用连接时间平衡分配多节点数据库上的工作负荷。在创建用于客户机的数据库会话时,在连接时间平衡下,以连接时间分配工作负荷。具体而言,当客户机请求在多节点数据库服务器上建立数据库会话时,基于工作负荷考虑将会话放置在实例或节点上。例如,客户机发送会话请求给多节点数据库服务器。该多节点数据库服务器确定节点不必其它节点忙,并且在该节点上建立客户机请求。
连接时间平衡的缺点是,它不能重新平衡现有会话;它仅在创建会话时平衡会话。由现有会话创建的工作负荷不能被传送,并且不减少(abate),直到客户机主动减少或停止作出请求和/或终止会话。结果,工作负荷的时间(timing)服从在多节点数据库服务器控制之下的事件。
基于上述,本发明想要提供一种在已经创建会话后传送会话的客户机的工作负荷的方法。
附图说明
通过附图中的实例而非限制例示本发明,并且相同参考标号表示相同元件,在附图中:
图1是计算机系统的多层架构的框图。
图2示出根据本发明的一个实施例的可在上面实现本发明的一个实施例的多节点计算机系统的框图。
图3是描述根据本发明的一个实施例的参与迁移会话的客户机、源数据库实例、和目的地数据库实例的框图。
图4示出根据本发明的一个实施例的用于在服务器之间迁移会话的协议的实体交互图。
图5是描述根据本发明的一个实施例的用于确定迁移会话的迁移标准及其使用的框图。
图6是描述根据本发明的一个实施例的使用会话的会话状态的部分的数据库构件的框图。
图7是描述根据本发明的一个实施例的会话迁移的阶段的阶段过渡图。
图8示出根据本发明的一个实施例的用于数据库构件的可扩展框架的多个构件,负责捕捉和加载会话的会话状态。
图9是可用于实施本发明的一个实施例的计算机系统的框图。
具体实施方式
将描述可用于在多节点环境中传送会话的方法。在以下描述中,为了说明目的,为了提供对本发明的透彻理解,阐述了许多具体细节。然而,显然的是,没有这些具体细节也可实施本发明。在其他情况下,为了避免不必要地模糊本发明,以框图示出已知结构和装置。
这里描述的是允许客户机以对为之建立初始会话的应用程序透明的方式从服务器上的会话切换到另一服务器上的另一会话的技术。术语迁移是指服务器上的现有会话的客户机从现有会话切换到另一会话的操作,允许现有会话终止和客户机使用另一会话代替现有会话。这里称现有会话已经被迁移。术语“透明”是指以对于软件单元不要求执行定制为执行该操作的单元中的指令的方式执行操作。因此,在透明的会话迁移下,客户机在会话之间切换,而不执行定制为完成该迁移的应用程序指令。相反,该应用程序通过之与该服务器交互的客户侧接口构件处理迁移细节,修改客户侧接口构件的内部状态,以实现相同效果。也不必为了构成这里描述的技术而修改遗留应用程序。
在透明迁移会话中,将会话从“源”服务器透明地迁移到“目的”服务器。这样,可在服务器之间平衡现有会话,从而提高性能和资源可用性。
为了迁移会话,捕捉并重新储存该会话的状态。捕捉会话的状态产生了作为该会话的会话状态的真副本的字节流,该字节流可被储存在对象、文件、或其它类型的数据结构中,且稍后被访问以重新储存该会话。在透明会话迁移下,在源服务器上捕捉客户机的会话,产生储存在数据结构中并且传输给目的服务器的字节流,其中通过将该字节流加载到为客户机建立的目的服务器上的会话中,该目的服务器重新储存该会话。
会话迁移的参与方可包括计算机上的客户机、源服务器、和目的服务器,它们中的每个都位于多节点系统中的不同节点上。参与方遵从允许对于为之建立会话的应用程序或其它软件模块透明发生会话迁移的协议的改变。这里,将该协议称为透明会话迁移协议。如果任何会话迁移操作失败,则该协议允许恢复处理。
根据一个实施例,可将会话状态视为“构件会话状态”的合并和组合。构件会话状态由数据库构件特别生成和使用。会话状态可以是复杂的(complex)的构件状态的组合;开发生成和重新储存构件会话状态的副本的软件也是同样复杂的。这里描述的是有助于所述软件的开发和使用的可扩展框架。该可扩展框架限定回调函数的接口,其中所述回调函数被调用以捕捉和重新储存构件会话状态,并且确定构件会话状态是否允许会话被迁移。
尽管使用会话迁移例示该可扩展框架,但是该框架不限于这种用途。也可将它应用于其中会话状态被捕捉、储存、然后对于会话重新储存的任何用途。
例示的计算机系统
图2示出可用于实施本发明的实施例的多节点计算机系统。参看图2,它示出数据库集群dbc20。一个数据库集群是容放多节点数据库服务器的一组节点,该多节点数据库服务器例如多节点数据库服务器mds20等,用于管理对特定数据库的访问。数据库集群dbc20包括节点nd21、nd22、nd23、和nd24。数据库集群dbc20的节点在节点之间提供某种程度的共享存储(例如,对一组磁盘驱动器的共享访问)。数据库集群dbc20中的节点可以呈经由网络互联的计算机形式(例如,工作站、个人计算机),并且可以是格栅(grid)的部分。数据库服务器mds20包括数据库实例inst21、inst22、inst23、和inst24。
这里将连接至数据库实例(为多节点数据库服务器的部分)以访问由数据库实例管理的数据库的客户机称为数据库实例的客户机、多节点数据库服务器的客户机、或数据库的客户机。例如,不是数据库集群dbc20的部分的计算机上的进程执行应用程序,并且连接至数据库实例inst23,以访问数据库db20。将该进程称为数据库实例inst23的客户机、多节点数据库服务器mds20的客户机、和数据库db20的客户机。
工作负荷管理程序wm20是在数据库集群dbc20(尤其是实例inst21,负责管理以数据库集群dbc20为主机的数据库实例上的工作负荷)上运行的程序。工作负荷管理程序的实例是数据库指向器(director),该数据库指向器在Incremental Run-Time SessionBalancing中被描述,通过将一个或多个会话从源数据库实例迁移到目的数据库实例执行运行时会话平衡。
由收听者为客户机建立的会话
为了使客户机与多结点数据库服务器mds20交互,客户机发送数据库连接请求,以在数据库实例上建立会话。收听者收到该请求。收听者是在数据库集群dbc20上运行的程序,用于接收请求和指引它们到数据库集群dbc20内的数据库实例。
一旦为该客户机建立数据库会话,则该客户机可发布另外的请求,其中该另外的请求可以呈远程过程调用的形式,并且可包括以下请求:开始执行事务、执行询问、执行更新和其它类型的事务操作、提交(commit)或以其它方式终止事务、和终止数据库会话。
例示的客户机和源示例和目标实例
图3示出根据本发明的一个实施例的例示的客户机和源实例和目标实例的框图,用于例示透明会话迁移。参看图3,它示出分别作为源实例inst22和目标实例inst24的数据库实例inst22和inst24。客户机cl30是在客户机计算机cmp30上运行的程序。客户机计算机cmp30是与数据库集群dbc20中的任何节点分开的计算机,并且作为数据库集群dbc20的一个或多个数据库客户机(包括客户机cl30)的主机。以客户机计算机cmp30为主机的客户机包括执行例如应用程序appl30等由客户机cl30执行的应用程序的程序。
应用程序appl30经由客户侧接口构件intcomp30与数据库集群dbc20和多节点数据库服务器mds20交互。应用程序appl30包括客户侧接口构件intcomp30的例行程序(例如功能、步骤、对象方法、远程过程)的调用。客户侧接口构件的实例是可从Oracle Corporation得到的Oracle Call Interface(“OCI”)。
为了说明目的,这里将例如应用程序appl30等软件模块描述为在事实上进程对软件的执行使得进程执行特定动作时执行这些动作。例如,当将应用程序appl30描述为发送或接收消息或访问数据时,执行该应用软件的程序正在发送或接收该消息或访问该数据。
呼叫
呼叫是客户机为了执行任务对服务器做出的请求。典型地,由执行软件模块中的例行程序的调用的进程做出呼叫。该调用使得该进程执行该例行程序(这种执行自身可承担(entail)呼叫和执行其它例行程序),接着返回执行该模块到调用或刚好超出调用的位置(或某个其它指定的点,例如异常进程)。
呼叫可承担传送一个或多个输入参数给被调用的例行程序,并且返回作为一个或多个输出参数的值。消息可作为输入参数的部分和输出参数的部分被传送。对数据库实例的呼叫通常用于执行任务,例如执行数据库语句等。由呼叫传送的消息可包括作为输入参数的询问串、和作为输出参数的询问结果或对其位置的参考。
远程过程呼叫是由进程作出的例行程序呼叫,其中在相同或不同节点和/或计算机上的另一进程执行所呼叫的例行程序。将该另一进程称为远程进程。通过利用例如网络连接等通信连接发送执行例行程序的请求给另一进程,作出该呼叫。并且,输入参数和输出参数也通过该连接传送。在该远程进程执行该步骤时,呼叫进程的执行中止或被阻止。
呼叫使呼叫进程或远程进程执行被呼叫的例行程序,所述被呼叫的例行程序可促成其它例行程序的呼叫和执行。在该呼叫返回时呼叫终止。作为执行被呼叫的例行程序的部分进行的操作被认为是在呼叫范围内。
例如,为了作出对数据库集群dbc20的呼叫,应用程序allp30作出对客户侧接口构件intcomp30的一个函数的呼叫。响应于该调用,客户侧接口构件intcomp30执行该呼叫,使得(entail)客户侧接口构件intcomp30修改和访问由客户侧接口构件intcomp30储存在客户机计算机cmp30中的“本地”数据,并且客户侧接口构件intcomp30作出对源实例inst22的多个远程过程调用,该多个远程过程调用包括第一远程过程调用和第二远程过程调用。响应于第一远程过程调用,源实例inst22执行多个操作。对本地数据的修改和访问、多个远程进程调用、和由源实例inst22执行的多个操作都被认为是在应用程序appl30作出的“应用程序调用”内执行的。由源实例inst22执行的各种操作,当执行由第一远程过程调用所调用的例程时(可能需要执行其它例程),在此称为在客户端调用内的第一远程过程调用内被执行,这是因为第一远程过程调用由客户端接口构件intcomp30作出,并且当执行由应用程序appl30所调用的例程时,称为在应用程序调用内被执行,这是因为远程过程调用由客户端接口构件intcomp30作出。应用程序调用或客户端调用在此都可以称为客户机调用。
透明会话迁移协议
图4是用于例示用于透明会话迁移的协议的实体交互图。将客户机cl30、源实例inst22、和目标实例inst24作为该协议中的参与方例示该协议。该协议由迁移启动程序启动,其中该迁移启动程序是确定和/或请求迁移一组会话的实体。例如,工作负荷管理程序wm20可确定一组会话从源实例inst22迁移到目标实例inst24,以将工作负荷从源实例inst22转移到目标实例inst24。工作负荷管理程序wm20生成请求,以迁移这组会话。请求会话迁移以在数据库实例之间转移工作负荷的工作负荷管理程序wm20仅是实体的一个实例,并且是用于请求会话迁移目的;可能存在为了其它类型的目的请求迁移一组会话的其它类型的实体。例如,负责关闭(shut down)数据库实例的实体可迁移当前以数据库实例为主机的所有会话,从而可关闭该数据库实例。
在步骤405,源实例inst22收到迁移请求2,其中该迁移请求是迁移一列一个或多个会话的请求。该请求由会话迁移启动程序发出,例如由工作负荷管理程序wm20发出。为会话迁移选择或以其它方式指定的会话在这里称为被选择的会话。为了例示目的,待迁移的这列会话仅包括一个选择的会话,即,源会话sess30(参看图3)。
在步骤410,源实例inst22等待客户机对源会话sess30的呼叫,并且截取该呼叫,以发送选择消息3给该客户机。在这里将该呼叫称为被截取,因为尽管该呼叫被用于实现与会话迁移有关的某个动作(例如发送选择消息3等动作),但是也可为了实现所述动作以外的某个目的(例如,请求执行询问)作出呼叫。返回客户机的输出值包括可具有多个属性的“输出数据结构”。通过将输出参数的一个或多个属性设定为特定值,源实例inst22发送选择消息3。
在步骤420,源实例inst22执行迁移检查,即确定是否满足迁移标准。如果满足迁移标准,则协议的执行继续到步骤425。
迁移标准
图5是描述根据一个实施例使用三种迁移标准的框图。参看图5,在框510,确定源会话sess30是否在事务边界处;在框520,确定源会话sess30是否在呼叫边界处;在框530,确定源会话sess30是否在构件边界处。
如果当前对于该会话没有活动的事务正在执行,则会话在事务边界处。事务是作为原子单位执行的逻辑工作单位。在数据库系统的上下文中,数据库必须反映事务做出的所有改变或事务没有做出改变,以确保数据库的完整性。因此,由事务作出的改变没有被永久应用于数据库,直到事务已经被完全执行。当使得事务作出的改变为永久性时,称事务“提交”。如果该事务没有被提交、中止、或以其它方式终止,则事务是活动的。
如果数据库实例已经完成了客户机呼叫的执行,而不是位于处理该呼叫的中间阶段,则会话处于呼叫边界处。
例如,为了处理执行数据库语句的呼叫,数据库实例经过多个阶段,每个阶段都对应于特定类型的操作。这些阶段是(1)创建指针;(2)分析该数据库语句和对其变量赋值;(3)执行该数据库语句;(4)抽取(fetch)各行,以返回询问;以及(5)关闭指针。这些阶段在Oracle8 Server Concepts,Release 8.0,Volume 3的第23章(其内容结合于此作为参考)作了详细描述。中间阶段是在对该呼叫的处理完成之前执行的操作。在当前的实例中,中间阶段是阶段(1)-(5)。在源实例inst22响应于一个呼叫执行步骤(5)后,源会话sess30处于呼叫边界处。
如果会话的每个数据库构件都处于其响应的构件边界处,则该会话处于构件边界处。如前所述,数据库构件使用这里称之为构件会话状态的会话状态的一部分。如果特定数据库构件的构件会话状态可被迁移到另一会话,则例如源会话sess30等会话处于该数据库构件的构件边界处。
例示的数据库构件
图6描述了一组例示性数据库构件dc60及其在会话状态state60内的相应构件会话状态。会话状态state60是源会话sess30的会话状态。图6示出以下数据库构件:指针构件cc61;PL/SQL构件cc62;会话参数构件cc63;以及Java构件cc64。
指针构件cc61用于管理例如源实例inst22和目标实例inst24等数据库实例内的指针。指针是用于储存有关分析的数据库语句的信息和其它涉及数据库语句的处理的信息的存储区。指针构件cc61使用和储存指针状态cs61(在会话状态state60内的构件会话状态)中的信息。
PL/SQL构件cc62负责执行写在PL/SQL中的代码(例如,步骤),该PL/SQL是由Oracle公司公布的程序化数据库语言。所述构件使用构件会话状态PL/SQL状态cs62储存与PL/SQL代码的执行有关的信息,例如变量值和分析的PL/SQL语句。
会话参数构件cc63负责管理通常控制如何处理与会话有关的呼叫和请求的属性。该属性储存在构件会话参数状态cs63中。例如,会话参数可包括对于执行询问返回的结果控制特定人类语言的属性。
Java构件cc64负责执行写入Java中的代码(例如,类和对象方法)。该构件使用构件会话状态Java状态cs64储存与Java代码的执行相关的信息。
指针构件cc61、PL/SQL构件cc62、会话参数构件cc63、和Java构件cc64的每个都包括遵从接口定义的数据库构件接口。接口定义定义了一组例程(通常为函数)和由这些例程返回的值。接口定义的实例包括以计算机语言定义的对象类,一种由接口定义语言(例如,OMG接口定义语言)描述的接口,或以人类语言写的描述该接口的规约。数据库构件接口函数支持会话之间的构件会话状态的转移。根据一个实施例,该接口包括三个函数:IsReadyToMigrate()、GetState()、和SetState()。
调用IsReadyToMigrate(),使数据库构件确定用于会话的数据库构件的构件会话状态是否可迁移到另一会话的会话空间。该函数返回表示该构件会话状态是否可被迁移的结果。例如,当调用PL/SQL构件cc62的IsReadyToMigrate()时,PL/SQL构件cc62确定其正在将开放文件的文件描述符储存到PL/SQL状态cs62内。该文件描述符包含仅对源实例inst22上的会话有效而对目标实例inst24无效的信息,因此,PL/SQL构件cc62返回表示PL/SQL状态cs62不能被迁移的值。
调用函数GetState(),使数据库构件产生用于会话的构件会话状态的副本。调用函数SetState(),使数据库构件加载(即,添加)构件会话状态的副本到目标会话的会话状态。
GetState()返回的构件会话状态是不透明的,因为参与转移返回的构件会话状态的副本的一个或多个实体不必知道该构件会话状态的具体结构。实体仅调用GetState()捕捉数据库构件的构件会话状态,并且通过调用和传送该副本给SetState()加载返回的该构件会话状态的副本。
通过对每个可使用构件会话状态的数据库构件调用IsReadyToMigrate()函数,确定源会话sess30是否在每个数据库构件的构件边界处。如果这些调用全都返回表示相应构件会话状态可被迁移的值,则在框530的确定是,源会话sess30在每个数据库构件的构件边界处。
准备迁移
一旦源实例inst22已经在步骤420确定满足迁移标准,则在步骤425,源实例inst22传送准备迁移消息4给客户机。通过截取呼叫执行步骤425。准备迁移消息4经由对于截取的呼叫返回的输出数据结构被传送。准备迁移消息4和所选择的消息2可在相同的客户机呼叫中返回。
准备迁移消息包含用于建立至目标实例inst24的连接的连接信息。该连接的目的是在目标实例inst24上建立目的地会话和启动参与迁移源会话sess30的目标实例。
在来自应用程序appl30的应用程序呼叫内启动截取的呼叫。在该应用程序呼叫内执行该协议的剩余部分。这里将该截取的客户机称为“种子呼叫”,因为客户机cl30必须进行呼叫来启动该协议的剩余部分和完成会话迁移。
在步骤427,客户机cl30发送建立目的地会话的请求给目标实例inst24。在数据库实例上建立会话可要求验证客户机cl30。为了验证客户机cl30,验证信息(例如,用户名和密码)由客户侧接口构件intcomp30供给源实例inst22。客户侧接口构件intcomp30已经收到先前来自应用程序appl30的验证信息,以在数据库集群dbc20上建立会话。
客户机cl30将目的地会话的会话参数设定为与源会话sess30的会话参数相同的值。已经供应这些值给源会话sess30的源实例inst22的客户侧接口构件intcomp30已保留这些值,并且使用这些值来设定目标实例inst24的会话参数。
在步骤430,目标实例inst24建立目的地会话和“迁移信道”,其中该迁移信道是源实例和目标实例之间的通信信道,用于在它们之间转移会话状态。
在本发明的一个实施例中,建立迁移信道。在一些数据库服务器中,对于每个会话,该数据库服务器仅在一个端点接收进入的消息(例如,与端口相关的端口数)。单个端点通常用于与客户机通信的连接。该连接例如由客户机用来传送数据库语句,由数据库实例用来传送询问结果,或传送例如上述消息。这里将用于会话的单个端点称为会话的进入端点。
为了传送所选择的会话的会话状态,目标实例inst24上的一个新的不同的进入端点(这里称之为阴影端口)用于迁移信道。目标实例inst24在该阴影端口收听和接收来自源实例inst22的连接请求。例如,可为该阴影端口创建新插座(socket),并且用作会话的进入终点。目标实例inst24在新插座聆听和接收来自源实例inst22的连接请求。
接着,目标实例inst24发送目的地准备好消息6给客户机cl30。目的地准备好消息6包括迁移信道信息,该迁移信道信息包括足以使源实例inst22经由迁移信道连接至目标实例inst24的信息。该迁移信道举例来说包括阴影端口的端口数。
在步骤43 5,客户机cl30收到目的地准备好消息6,并且发送准备迁移消息7给源实例inst22。该迁移信道信息与该消息一起被发送。
源实例inst22收到准备迁移消息7。
在步骤440,源实例inst22经由迁移信道发送会话状态7给目标实例inst24。首先,源实例inst22根据收到的迁移信道信息经由该迁移信道建立与目标实例inst24的“迁移连接”。在一个实施例中,对于具体数据库构件,源实例inst22调用相应的GetState()函数,储存返回的构件会话状态的副本,并且经由该迁移连接传送该副本给目标实例inst24。
在步骤445,目标实例inst24收到沿该迁移连接传送的构件会话状态,并且对于发送的数据库构件的每个构件会话状态,调用相应的SetState()函数,将该构件会话状态加载到目的地会话的会话状态。
可以使得源实例inst22和目标实例inst24同时执行它们的工作的方式执行会话状态在源实例inst22和目标实例inst24之间的传送。例如,函数GetState()可仅返回会话构件的构件会话状态的部分,并且可被多次调用,以取回全部构件会话状态。当源实例inst22通过调用GetState()取回一部分时,源实例inst22传送该部分给目标实例inst24,接着再次调用GetState(),以取回另一部分。当目标实例inst24收到一部分时,目标实例inst24呼叫SetState(),以传送该部分给目的地会话状态。这样,源实例inst22可以正在取回会话状态的部分,同时目标实例inst24正在加载会话状态的部分。这样,源实例inst22和目标实例inst24同时执行其相应的工作来传送构件会话状态。
在完成会话状态从源会话到目标实例inst24的传送后,终止该迁移连接。目标实例inst24使目的地会话sess30的进入的终点改变回到客户终点。
在步骤450,源实例inst22发送切换消息8给客户机cl30,通知客户机cl30其可切换到目的地会话。通过作为其中准备迁移信息被发送的客户呼叫的输出参数值返回切换消息8,该消息可作为该呼叫的部分被发送给客户机cl30。该消息也可作为随后的客户机cl30呼叫的部分被返回。
在步骤455,响应于收到该切换消息8,客户机cl30切换到该目的地会话。例如映射源会话的外部标识符的内部数据等的客户侧接口构件的内部状态被修改,以表明(reflect)该目的地会话现在是客户会话。接着,客户机cl30发送迁移结束消息给源实例inst22。迁移结束消息9包含表示客户机cl30和/或目标实例inst24已经成功完成它们的会话迁移的相应部分的数据。如后面更详细地解释的,迁移结束消息9用于传送会话迁移是否已经被成功完成。最终,客户机cl30发送消息给源实例inst22,以终止该源会话。在客户机cl30的随后的客户机和应用程序呼叫中,该目的地会话用于代替该源会话。
在单个应用程序呼叫内执行步骤420至455。该应用程序不知道或不必知道在开始该应用程序呼叫时与外部会话标识符相关的具体数据库会话是否与该应用程序呼叫返回时的相同。不必为了迁移该会话执行定制为处理数据库会话的会话迁移的应用程序指令。这样,该数据库已被透明地迁移到该应用程序。
发起(kick start)同步执行的会话迁移
对于呼叫请求的会话迁移,可异步或同步执行会话迁移。在同步执行时,在已完成请求的会话的会话迁移后该呼叫返回。阻止呼叫,直到会话迁移完成。在异步执行时,在执行请求的会话迁移期间不阻止呼叫的执行。在会话迁移完成之前该呼叫可返回。
如上所述,图4中描述的会话迁移协议的完成取决于从客户机收到的种子呼叫。延迟会话迁移的启动,直到作出种子呼叫。该延迟可以是大量的(substantial),例如,响应于人类用户操纵浏览器的图形界面,客户机cl30执行浏览器,并且产生对源实例inst22的应用程序呼叫。暂停阅读浏览器输出或离开进行休息的人类用户可以在很长时间内不操纵图形界面,延迟应用程序呼叫和种子呼叫的发出。因此,可在相当长的时间内阻止同步作出的会话迁移请求。
为了避免这种长延迟,可驱动同步执行的会话迁移。如果在做出请求会话的同步会话迁移的呼叫后经过一段时间,但是没有收到种子呼叫,则这里称之为种子呼叫请求的消息被发送给会话的客户机,请求客户机做出种子呼叫。该种子呼叫请求举例来说可以是由源实例inst22启动的对客户机cl30的简单ping。
在一个实施例中,使用产生迁移进程数据的迁移追踪机制(例如后面更详细地描述的)追踪会话迁移进程。该迁移进程数据表示会话迁移已经到达什么阶段。该迁移启动程序指定其中必须执行或放弃会话迁移的“迁移超时时段”。如果经过迁移超时时段的一部分,迁移进程数据表示会话迁移没有到达已经作出种子呼叫的阶段,则产生种子呼叫请求。
种子呼叫请求不仅可由源实例inst22启动,而且举例来说可由迁移启动程序启动。在一个实施例中,迁移启动程序在作出迁移会话的请求后调用源实例inst22的API函数,以得到迁移进程数据。该迁移启动程序基于一定标准确定是否发种子呼叫请求给客户机。可选地,迁移启动程序可在作出迁移会话的迁移请求后自动发种子呼叫请求给所选择的会话的客户机。
可恢复性
随着透明会话迁移的进行,源实例inst22、目标实例inst24、和客户机cl30在迁移阶段之间过渡(transition)。这些迁移阶段表示会话迁移进程,并且可被追踪和报告,并且用于导出迁移进程数据。并且,在会话的会话迁移期间可遇到错误(failure),这就需要恢复操作的执行。所执行的具体操作取决于在遇到错误时到达的迁移阶段。
图7示出其中会话迁移的参与者在会话迁移期间转变的各个迁移阶段的阶段过渡图。各个事件的发生或某些操作的完成形成迁移阶段之间的转变。客户侧阶段72相应于客户机cl30的迁移阶段,而服务器侧阶段73相应于多结点数据库服务器mds20的迁移阶段。
参看图7,阶段SRC-NORMAL是对应于不在执行会话迁移进程中的多结点数据库服务器mds20的服务器侧阶段。多结点数据库服务器mds20保持在此迁移阶段,直到它收到迁移会话的请求。当受到这种请求时,多结点数据库服务器mds20过渡到阶段SRC-SELECTED,在这里,多结点数据库服务器mds20发送选择信息4,接着继续到阶段SRC-CONFIRMED-SELECTED。
多结点数据库服务器mds20接着迁移检查。一旦多结点数据库服务器mds20确定满足迁移标准,则多结点数据库服务器mds20过渡到阶段SRC-READY-FOR-PREPARE。在此阶段中,多结点数据库服务器mds20等待中断的客户机呼叫,并且使用该呼叫发送准备迁移信息4给客户机cl30。一旦多结点数据库服务器mds20收到准备迁移消息7,则多结点数据库服务器mds20过渡到阶段SRC-PREPARE。
在阶段SRC-PREPARE期间,源实例inst22捕捉源会话的会话状态,并且经由至目标实例inst24的迁移连接传送会话状态的副本,这将该副本添加到目的地会话的会话状态。在完成源会话状态的传送后,多结点数据库服务器mds20过渡到阶段SRC-READY-FOR-SWITCH,在这里源实例inst22发送切换消息给客户机cl30。当源实例inst22收到来自客户机cl30的表示成功切换到目的地会话的迁移结束消息9时,多结点数据库服务器mds20过渡到阶段SRC-SWITCHED,其中在这里执行例如开始终止源会话等操作。
在完成SRC-SWITCHED后,多结点数据库服务器mds20过渡到正常阶段acl80。
客户侧阶段
类似于服务器侧阶段,客户侧阶段包括阶段CLN-MORMAL,此阶段相应于不在参与会话迁移进程中的客户机cl30。客户机cl30一收到选择消息3,客户机cl30就过渡到阶段CLN-SELECTED。当客户机cl30收到准备迁移消息4时,客户机cl30接着过渡到阶段CLN-READY-FOR-PREPARE。在此阶段期间,客户机cl30执行例如建立目的地会话、建立该目的地会话的会话参数、和接收来自目标实例inst24的目的地准备好消息6等操作。一收到该消息,客户机cl30就发送准备迁移消息7给源实例inst22,并且过渡到阶段CLN-PREPARE。
当客户机cl30收到目的地准备好消息6时,客户机cl30过渡到阶段CLN-READY-FOR-SWITCH,在这里,客户机cl30发送迁移结束消息9给源实例inst22,表示切换成功完成。客户机cl30接着继续到CLN-SWITCHED阶段,在这里,客户机执行例如请求终止源会话等操作。最终,客户机cl30过渡到阶段CLN-NORMAL。
恢复
在源会话的会话迁移期间,可遇到阻止会话迁移完成或使得会话迁移的完成不受欢迎的事件。在这里将这种事件称之为“迁移失败事件”。在遇到迁移失败事件时,客户机cl30和多结点数据库服务器mds20分别过渡到阶段CLN-FAILURE和SRC-FAILURE,在这里,执行恢复操作,以使得尝试的会话迁移中的所有参与者继续,而不完成会话迁移。所执行的恢复操作的具体集合取决于遇到错误的具体迁移阶段。
例如,在客户机cl30收到准备迁移消息7后,客户机cl30试图在目标实例inst24上建立目的地会话,但是不能够做到。遇到失败事件,客户机cl30过渡到阶段CLN-FAILURE。作为阶段CLN-FAILURE的部分,客户机cl30发送迁移结束消息9,该迁移结束消息包括指定客户机cl30和目标实例不能执行它们的会话迁移部分(特别是,指定客户机cl30不能建立目的地会话)的数据。
当源实例inst22收到迁移结束信息9时,它确定已经遇到迁移失败。源实例inst22接着进入阶段CLN-FAILURE。在此阶段,源实例inst22可生成“不能迁移数据”,这是表示源会话已经为迁移选择但是不能被迁移的数据。该数据也可表示作为试图迁移失败(例如,不能建立目的地会话)的基础的原因或迁移失败事件。不能迁移数据可用于负责选择会话来迁移的软件和/或程序(例如,工作负荷管理程序wm20)和由该软件和/或程序访问。如果不能迁移数据表示近来迁移会话的尝试不成功,则工作负荷管理程序wm20可放弃选择会话来迁移。
最终,源实例inst22完成客户侧呼叫的执行,其中在该客户侧呼叫内,源实例inst22正在尝试失败的会话迁移。多结点数据库服务器mds20接着重新进入阶段SRC-NORMAL。
当客户侧呼叫返回时,客户侧呼叫正在其内执行的应用程序呼叫返回。客户机cl30接着离开阶段CLN-FAILURE,并且进入阶段CLN-NORMAL。
恢复操作可承担释放被使用、分配、和/或以其它方式被保存以执行会话迁移并且不再需要的资源。
例如,当多结点数据库服务器mds20和客户机cl30处于阶段SRC-PREPARE中期间,如果源实例inst22检测到数据库构件不能提供会话状态或迁移连接已经失败,则源实例inst22捕捉会话状态。遇到迁移失败事件,多结点数据库服务器mds20进入阶段SRC-FAILURE。源实例inst22关闭迁移连接,并且解除分配为了执行尝试的会话迁移而使用的内存(例如,用于在转移捕捉构件会话状态之前储存它的内存)。不是发送切换消息8,源实例inst22发送“放弃迁移”消息给客户机cl30,表示将放弃会话迁移。该消息经有客户机呼叫的输出参数传送,其中在该客户机呼叫内,正在执行尝试的会话迁移。当源实例inst22完成该客户机呼叫的执行时,多结点数据库服务器mds20接着进入阶段SRC-NORMAL。
当客户机cl30收到该消息时,客户机cl30终止该目的地会话。该操作释放已经为该目的地会话分配的内存。客户机cl30继续使用源会话sess30,而不是使用终止的目的地会话。
可扩展的会话构件框架
使用数据库构件使得可扩展框架能用于会话迁移。该框架是可扩展的,因为它便于对数据库构件开发和分级(staging)。
图7示出根据一个实施例的可扩展数据库构件框架的特性的框图。图7描述了数据库构件60、注册(registration)函数rf80、和活动构件列表acl80。
注册函数rf80是由数据库构件调用以动态注册句柄的数据库服务器的函数。该句柄允许数据库服务器调用数据库构件接口的函数。句柄举例来说可以是指针和/或对象参考。
对于给定会话,并不需要或使用全部数据库构件。例如,会话的客户机从不作出举例来说要求执行PL/SQL或Java的请求。当数据库实例确定它需要一数据库构件用于会话时,数据库实例调用该数据库构件。该调用使得该数据库构件执行用于该会话的启动操作,包括调用注册函数rf80,和在该句柄中作为输入参数传递。该数据库服务器接着添加入口(entry)给活动构件列表acl80;该入口将该数据库构件识别为该会话的活动数据库构件。
对于数据库服务器上的给定会话,数据库服务器维护活动构件列表acl80,该活动构件列表识别用于该会话的活动数据库构件,并且包括相应句柄。为了迁移具体会话,数据库服务器仅处理活动数据库构件,即,检查迁移边界和迁移仅对该会话来说是活动的数据库构件的数据库构件会话状态。
图7中示出可包含在数据库构件接口内的另外的函数。除了函数IsReadyToMigrate()、GetState()、和SetState()外,该数据库构件接口包括函数Migration-Enabled()和MigrationCost()。
函数Migration-Enabled()返回表示对于具体数据库构件该构件会话状态是否能迁移到另一服务器的数据。在一个实施例中,一些数据库构件可能不进行支持构件会话状态迁移所需要的开发。
MigrationCost()函数返回表示迁移构件成本的数据。在一个实施例中,可执行迁移检查,以确保迁移会话的成本满足与成本相关的迁移标准。如果迁移具体数据库构件的构件会话状态的单独(individual)成本违反这样的迁移标准,或迁移构件会话状态的共同(collective)成本违反这样的迁移标准,则不迁移所选择的会话。另外,该函数可提供可用于待迁移的会话的基于成本选择的成本数据。
数据库构件开发委托给专家
数据库构件可以是非常复杂的。开发和维护数据库构件的任务通常被给与具有执行该任务所需要的训练和经验的专业研发队伍。捕捉和加载构件会话状态的软件也是非常复杂的。它的开发由其职权范围数据库构件不能达到的研发队伍最有效地执行。
该数据库构件接口允许该研发努力(effort)被分成子任务,该子任务能被分配给有效执行子任务的研发队伍。分配专门研究具体数据库构件的研发队伍来开发该构件,使该构件能支持该接口,以确定会话是否在关于该数据库构件的迁移边界处,和捕捉和加载构件会话状态。并且,可分派研发队伍来开发执行会话迁移协议但不必处理数据库构件的复杂性的软件模块。这样,可更有效和有效率地执行会话迁移软件的开发。
对迁移使能数据库构件开发的分级
可将迁移使能数据库构件的开发分级。并不是所有数据库构件都需要在多结点数据库服务器或某一级服务器上开始会话迁移之前被迁移使能。在数据库服务器产品的早期发行(release)中,仅有数据库构件的子集需要被迁移使能。尽管那些具有不能被迁移使能的活动数据库构件的会话不能被迁移,但是其它会话可以被迁移。在后来的发行中,更多的数据库构件将被迁移使能,允许会话在较大比例的环境下被迁移。
在执行迁移检查时,可执行所选择的会话是否具有不被迁移使能的活动数据库构件的检查。检测所选择的会话具有不被迁移使能的活动数据库构件可被认为是迁移失败事件。
其它实施例
已经通过在多层系统的单个层中动态分配多结点数据库服务器资源示出本发明的一个实施例。然而,本发明的实施例不限于在数据库服务器内或多层系统的单个层内迁移会话。
例如,本发明的实施例可用于在多层系统的多个层中迁移会话,其中该多层系统包括在第一层中的多结点数据库服务器和在第二层中的多结点应用程序服务器,其中该应用程序服务器是关于该数据库服务器的客户机,通过网络连接至应用程序服务器的浏览器是关于该应用程序服务器的客户机。该应用程序服务器主要用于储存应用程序代码、提供对应用程序代码的访问、和执行应用程序代码,而数据库服务器主要用于储存用于该应用程序服务器的数据库和提供对该数据库的访问。透明会话迁移可以类似于在数据库服务器上的实例之间迁移会话的方式用于在该应用程序服务器的实例之间迁移会话。应用程序服务器的实例是Oracle 9i应用程序服务器或Oracle 10g应用程序服务器。
透明会话迁移不限于迁移会话,以动态平衡服务器之间的会话和工作负荷。例如,会话可从服务器迁移,以允许在计划的停机时间取下服务器,或在服务器被供应后变得可用时移动会话到另一服务器。
硬件概述
图9是示出可实施本发明的实施例的计算机系统900的框图。计算机系统900包括总线902或其它用于传递信息的通信机构、和与总线902连接以处理信息的处理器904。计算机系统900还包括例如随机存取存储器(RAM)或者其它动态存储装置等主存储器906,该主存储器与总线902连接,用于储存信息及处理器904要执行的指令。主存储器906还可用于在执行待被处理器904执行的指令期间储存临时变量或其他中间信息。计算机系统900还包括只读存储器(ROM)908或者其他静态存储装置,该存储装置与总线902连接,用于储存静态信息和处理器904的要执行的指令。例如磁盘或光盘等存储装置910与总线902连接,以储存信息和指令。
计算机系统900可以经由总线902连接到例如阴极射线管(CRT)等显示器912,该显示器用于向计算机用户显示信息。包括字母数字键和其他键的输入装置914与总线902相连,用于传递信息和命令选择到处理器904。另一种用户输入装置是光标控制器916,如鼠标、跟踪球、或光标方向键等,用于传递方向信息和命令选择到处理器904及用于控制显示器912上的光标移动。这个输入装置通常在两个轴上(第一轴(例如x轴)和第二轴(例如y轴))具有两个自由度,使装置能指定平面上的位置。
本发明涉及用于实现在此描述的技术的计算机系统900的使用。根据本发明的实施例,响应于处理器904执行包含在主存储器906中的一个或多个指令的一个或多个序列,通过计算机系统900执行这些技术。这样的指令可从诸如存储设备910等另一计算机可读介质读入主存储器906。通过执行包含在主存储器906中的指令序列,使处理器904执行此处所述的处理步骤。在可选实施例中,硬连线电路可用于取代软件指令或者与软件指令结合来实施该发明。因此,本发明中的实施例不限于硬件电路和软件的任何特定组合。
这里使用的术语“计算机可读介质”是指参与提供指令处理器904来执行的任何介质。这种介质可以采取很多形式,包括但不限于非易失性介质、易失性介质、和传输介质。非易失性介质举例来说包括例如存储装置910等光盘或磁盘,。易失性介质包括例如主存储器906等动态存储器。传输介质包括同轴电缆、铜线、和光纤,包括包含总线902的导线。传输介质还可采取声波或光波的形式,例如那些在无线电波和红外线数据通信过程中产生的声波和光波。
通常的计算机可读介质举例来说包括:软盘、柔性盘、硬盘、磁带、或者任何其它磁性介质;CD-ROM、任何其它光介质;打孔纸、纸带、或者任何带有孔图案的物理介质;RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存储芯片或者磁带;下面描述的载波、或者计算机可读的任何其他介质。
各种形式的计算机可读介质可参与传送一个或者多个指令的一个或多个序列给处理器904来执行。例如,该指令开始可承载在远程计算机的磁盘中。该远程计算机能将该指令加载到其动态存储器中,然后使用调制解调器通过电话线发送指令。计算机系统900本地的调制解调器可接收电话线上的数据,且使用红外转换器将数据转换成红外信号。红外探测器可以接收红外信号携带的数据,且合适的电路可以把信息放到总线902上。总线902把数据传递到主存储器906中,处理器904从主存储器906取回并执行这些指令。在处理器904执行这些指令之前或之后,由主存储器906接收的指令可随意地储存于存储装置910中。
计算机系统900还包括连接到总线902的通信接口918。通信接口918提供连接到网络链路920的双向数据通信,其中网络链路920与局域网922相连。例如,通信接口918可以是综合业务数字网(Integrated Services Digital Network,ISDN)卡或者调制解调器,用于提供到相应类型电话线的数据通信连接。又如,通信接口918可以是局域网(Local Area Network,LAN)卡,用于提供至兼容LAN的数据通信连接。也可以使用无线链路。在任何这样的实施方式中,通信接口918均发送和接收承载表示各种信息的数字数据流的电信号、电磁信号和光学信号。
网络链路920通常可通过一个或者多个网络提供数据通信给其它数据装置。例如,网络链路920可通过局域网922与主机924连接,或者与互联网服务提供商(Internet Service Provider,ISP)926操作的数据设备连接。ISP 926又通过目前通称为“互联网”928的全球分组数据通信网络提供数据通信服务。局域网922和互联网928都使用承载数字数据流的电信号、电磁信号或光学信号。通过各种网络的信号、网络链路920上的信号、和通过通信接口918的信号是传输信息的载波的示范形式,这些信号都传送数字数据给计算机系统900或者传送来自计算机系统900的数字数据。
计算机系统900能通过网络、网络链路920、和通信接口918发送消息和接收数据(包括程序代码)。在互联网实例中,服务器930可通过互联网928、ISP 926、局域网922、和通信接口918传送所请求的应用程序代码。
当代码被接收和/或储存在存储装置910上或者其它非易失性存储器上用于随后执行时,处理器904可执行所接收到的代码。按照这种方式,计算机系统900可以获得载波形式的应用程序代码。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种方法,所述方法包括以下计算机执行步骤:
接收建立用于多节点系统的客户机的特定会话的请求;
在所述多节点系统的第一节点上将第一会话建立为所述特定会话;
确定传送所述特定会话给所述多节点系统的第二节点;
将来自所述第一节点的所述第一会话的第一会话状态传送给所述第二节点上的第二会话;以及
将所述第二会话建立为用于所述多节点系统上的所述客户机的所述特定会话。
2.根据权利要求1所述的方法,其中所述传送第一会话状态的步骤包括:
所述第一节点生成和储存所述第一会话状态的部分的副本;以及
经由在所述第一节点和所述第二节点之间建立的连接发送所述第一会话状态的部分的副本给所述第二节点。
3.根据权利要求1所述的方法,其中:
所述确定传送的步骤包括确定是否满足一个或多个迁移标准;以及
其中仅在满足所述一个或多个迁移标准时开始传送第一会话状态的步骤。
4.根据权利要求3所述的方法,其中所述一个或多个迁移标准基于与所述第一会话关联的事务是否已经终止。
5.根据权利要求3所述的方法,其中:
在所述第一节点上执行的多个软件构件的每个构件都访问所述第一会话状态的相应部分;
所述确定是否满足一个或多个迁移标准的步骤包括对于所述多个构件的每个构件,调用所述每个构件的函数,所述函数返回一个值,所述值表示所述第一会话状态的相应部分是否可被传送到另一节点;以及
其中所述一个或多个迁移标准基于由所述多个构件的每个构件的所述函数返回的所述值。
6.根据权利要求4所述的方法,所述步骤进一步包括:
发送第一消息给所述客户机,以使所述客户机创建所述第二会话;
所述客户机发送第二消息给所述第一节点,表示所述第二会话已经被创建;以及
响应于接收所述第二消息,所述第一节点开始传送第一会话状态。
7.根据权利要求6所述的方法,其中:
所述第二消息包含用于建立至所述第二节点的连接的连接数据;以及
传送第一会话状态包括经由所述连接传送所述第一会话状态。
8.根据权利要求6所述的方法,其中所述步骤进一步包括:
响应于收到来自所述第一节点的所述第一消息,所述客户机发送创建所述第二会话的特定请求给所述第二节点;以及
在创建所述第二会话后:
所述第二节点建立用于至所述第一节点的连接的端口,以及
所述第二节点发送消息给所述客户机,所述消息包含用于建立至所述端口的连接的连接数据。
9.根据权利要求8所述的方法,其中所述步骤进一步包括:
所述客户机发送消息给所述第二节点,所述消息包含用于建立至所述端口的连接的所述连接数据的副本;以及
响应于收到包含所述连接数据的副本的消息,所述第一节点基于所述连接数据建立连接,并且开始传送第一会话状态的步骤。
10.根据权利要求6所述的方法,其中所述步骤进一步包括,在传送所述第一会话状态后,发送第三消息给所述客户机,使所述客户机将所述第二会话用作所述特定会话。
11.根据权利要求1所述的方法,所述步骤进一步包括接收将所述第一会话迁移到所述第二节点的请求。
12.根据权利要求11所述的方法,所述步骤进一步包括:
跟踪迁移所述第一会话的进程;
根据迁移所述第一会话的进程和时间段,
停止迁移所述第一会话,
生成表示尝试所述第一会话的迁移不成功的数据。
13.根据权利要求1所述的方法,其中:
所述客户机驻留在计算机上,并且执行应用程序;
所述应用程序调用接口构件以与驻留在所述多节点系统上的服务器交互;
所述应用程序调用所述服务器;以及
在所述调用内执行所述传送第一会话状态和建立所述第二会话作为所述特定会话的步骤。
14.根据权利要求1所述的方法,所述步骤进一步包括:
所述第一节点接收迁移所述第一会话给所述第二节点的请求;
在确定已经经过了一段时间后,所述第一节点使所述客户机调用容放在所述第二节点的服务器;以及
在所述调用内执行所述传送第一会话状态和建立所述第二会话作为所述特定会话的步骤。
15.根据权利要求1所述的方法,其中:
所述传送第一会话状态和建立所述第二会话的步骤被作为迁移所述第一会话到所述第二节点的操作执行;
所述步骤进一步包括,作为对检测迁移失败事件的响应:
停止迁移所述第一会话,
释放被分配来迁移所述第一会话的资源,以及
生成表示尝试所述第一会话的迁移不成功的数据。
CNB200480023127XA 2003-08-14 2004-08-13 服务器间的透明会话迁移的方法 Active CN100437545C (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US49536803P 2003-08-14 2003-08-14
US60/495,368 2003-08-14
US60/500,050 2003-09-03
US60/500,096 2003-09-03
US10/917,873 2004-08-12
US10/917,953 2004-08-12
US60/601,346 2004-08-12
US60/601,250 2004-08-12
US60/601,259 2004-08-12
US10/918,055 2004-08-12

Publications (2)

Publication Number Publication Date
CN1836213A true CN1836213A (zh) 2006-09-20
CN100437545C CN100437545C (zh) 2008-11-26

Family

ID=37003322

Family Applications (6)

Application Number Title Priority Date Filing Date
CNB2004800230597A Active CN100547583C (zh) 2003-08-14 2004-08-09 数据库的自动和动态提供的方法
CNB2004800230563A Active CN100549960C (zh) 2003-08-14 2004-08-13 群集计算系统中改变的快速应用程序通知的方法和系统
CN2004800233523A Active CN100407153C (zh) 2003-08-14 2004-08-13 需要时节点和服务器实例分配和解除分配
CNB200480023127XA Active CN100437545C (zh) 2003-08-14 2004-08-13 服务器间的透明会话迁移的方法
CNB2004800230578A Active CN100527090C (zh) 2003-08-14 2004-08-13 用于动态分配计算机资源的方法
CNB2004800230629A Active CN100518181C (zh) 2003-08-14 2004-08-13 服务器之间无状态会话的透明迁移

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CNB2004800230597A Active CN100547583C (zh) 2003-08-14 2004-08-09 数据库的自动和动态提供的方法
CNB2004800230563A Active CN100549960C (zh) 2003-08-14 2004-08-13 群集计算系统中改变的快速应用程序通知的方法和系统
CN2004800233523A Active CN100407153C (zh) 2003-08-14 2004-08-13 需要时节点和服务器实例分配和解除分配

Family Applications After (2)

Application Number Title Priority Date Filing Date
CNB2004800230578A Active CN100527090C (zh) 2003-08-14 2004-08-13 用于动态分配计算机资源的方法
CNB2004800230629A Active CN100518181C (zh) 2003-08-14 2004-08-13 服务器之间无状态会话的透明迁移

Country Status (2)

Country Link
US (3) US7552218B2 (zh)
CN (6) CN100547583C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660550A (zh) * 2013-11-20 2015-05-27 北京邮电大学 一种在多服务器之间进行会话迁移的方法
CN103699394B (zh) * 2014-01-08 2017-04-12 夏夀民 一种基于多方交流协议自动生成软件系统交互框架的方法

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US20060123131A1 (en) * 2004-12-02 2006-06-08 Almaula Jay R Method and apparatus and system for performing seamless mobility
US20060200469A1 (en) * 2005-03-02 2006-09-07 Lakshminarayanan Chidambaran Global session identifiers in a multi-node system
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
KR100686382B1 (ko) * 2005-07-08 2007-02-22 엔에이치엔(주) 싱크 서버를 이용한 메신저 알림 시스템 및 방법
KR100640490B1 (ko) * 2005-08-05 2006-10-30 삼성전자주식회사 이동성을 보장하는 다중 사용자 지원 멀티미디어 컨텐츠제공 시스템과 그 제공 방법
US7904430B2 (en) * 2005-08-09 2011-03-08 At&T Intellectual Property I, L.P. End-user portal session logging by portlets
US20070083549A1 (en) * 2005-10-10 2007-04-12 Oracle International Corporation Method and mechanism for providing a caching mechanism for contexts
US20070104186A1 (en) * 2005-11-04 2007-05-10 Bea Systems, Inc. System and method for a gatekeeper in a communications network
CN101346634B (zh) * 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
KR100763526B1 (ko) * 2005-12-12 2007-10-04 한국전자통신연구원 애플리케이션 컨텍스트 관리 장치 및 방법
US8024439B2 (en) 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US8326996B2 (en) * 2006-06-02 2012-12-04 Oracle International Corporation Method and apparatus for establishing multiple sessions between a database and a middle-tier client
US7490111B2 (en) * 2006-06-07 2009-02-10 International Business Machines Corporation Efficient handling of mostly read data in a computer server
US7769843B2 (en) * 2006-09-22 2010-08-03 Hy Performix, Inc. Apparatus and method for capacity planning for data center server consolidation and workload reassignment
US8719143B2 (en) * 2006-09-28 2014-05-06 Microsoft Corporation Determination of optimized location for services and data
US20080080526A1 (en) * 2006-09-28 2008-04-03 Microsoft Corporation Migrating data to new cloud
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US7984015B2 (en) * 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
US7634512B2 (en) * 2006-10-20 2009-12-15 Oracle International Corporation Migrating temporary data of a session
US8024299B2 (en) * 2006-10-20 2011-09-20 Oracle International Corporation Client-driven functionally equivalent database replay
US7890458B2 (en) * 2006-10-20 2011-02-15 Oracle International Corporation Capturing database workload while preserving original transactional and concurrency characteristics for replay
US7890457B2 (en) * 2006-10-20 2011-02-15 Oracle International Corporation Transactionally consistent database workload replay
US20080098003A1 (en) * 2006-10-20 2008-04-24 Oracle International Corporation Database workload replay remapping infrastructure
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
JP5034495B2 (ja) * 2006-12-27 2012-09-26 日本電気株式会社 ストレージシステムとプログラム並びに方法
US7802258B2 (en) * 2007-02-13 2010-09-21 Amadeus S.A.S. Interface between computer software modules
US8997048B1 (en) 2007-02-14 2015-03-31 Oracle America, Inc. Method and apparatus for profiling a virtual machine
US7761401B2 (en) * 2007-06-07 2010-07-20 International Business Machines Corporation Stochastic control optimization for sender-based flow control in a distributed stateful messaging system
US8014994B2 (en) * 2007-08-31 2011-09-06 Sap Ag Simulation business object for service oriented architecture
US7752225B2 (en) * 2007-10-16 2010-07-06 Oracle International Corporation Replication and mapping mechanism for recreating memory durations
US7877490B1 (en) * 2007-12-28 2011-01-25 Violin Memory, Inc. Method and apparatus for efficient TCP connection handoff
US20090204966A1 (en) * 2008-02-12 2009-08-13 Johnson Conrad J Utility for tasks to follow a user from device to device
CN101236510B (zh) * 2008-02-22 2010-06-02 深圳市金蝶中间件有限公司 一种ejb集群的失败恢复处理方法及系统
CN101291346B (zh) * 2008-06-06 2012-02-15 中国科学院计算技术研究所 一种网格文件处理方法及其处理设备
US8433680B2 (en) * 2008-07-01 2013-04-30 Oracle International Corporation Capturing and restoring database session state
US20100107114A1 (en) * 2008-10-28 2010-04-29 Zachcial Slawomir In context web page localization
US9588806B2 (en) 2008-12-12 2017-03-07 Sap Se Cluster-based business process management through eager displacement and on-demand recovery
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8775544B2 (en) 2009-02-04 2014-07-08 Citrix Systems, Inc. Methods and systems for dynamically switching between communications protocols
US9325790B1 (en) * 2009-02-17 2016-04-26 Netapp, Inc. Servicing of network software components of nodes of a cluster storage system
US8418150B2 (en) * 2009-04-03 2013-04-09 Oracle International Corporation Estimating impact of configuration changes
US8356060B2 (en) 2009-04-30 2013-01-15 Oracle International Corporation Compression analyzer
US9667269B2 (en) 2009-04-30 2017-05-30 Oracle International Corporation Technique for compressing XML indexes
US8935223B2 (en) * 2009-04-30 2015-01-13 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data
US8645337B2 (en) * 2009-04-30 2014-02-04 Oracle International Corporation Storing compression units in relational tables
US9130903B2 (en) * 2009-07-01 2015-09-08 Citrix Systems, Inc. Unified out of band management system for desktop and server sessions
US8296517B2 (en) 2009-08-19 2012-10-23 Oracle International Corporation Database operation-aware striping technique
US9229227B2 (en) 2010-02-28 2016-01-05 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a light transmissive wedge shaped illumination system
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
US9128281B2 (en) 2010-09-14 2015-09-08 Microsoft Technology Licensing, Llc Eyepiece with uniformly illuminated reflective display
US9097890B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc Grating in a light transmissive illumination system for see-through near-eye display glasses
US9129295B2 (en) 2010-02-28 2015-09-08 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear
US9134534B2 (en) 2010-02-28 2015-09-15 Microsoft Technology Licensing, Llc See-through near-eye display glasses including a modular image source
US8488246B2 (en) 2010-02-28 2013-07-16 Osterhout Group, Inc. See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US9759917B2 (en) 2010-02-28 2017-09-12 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered AR eyepiece interface to external devices
US8477425B2 (en) 2010-02-28 2013-07-02 Osterhout Group, Inc. See-through near-eye display glasses including a partially reflective, partially transmitting optical element
US9366862B2 (en) 2010-02-28 2016-06-14 Microsoft Technology Licensing, Llc System and method for delivering content to a group of see-through near eye display eyepieces
US9182596B2 (en) 2010-02-28 2015-11-10 Microsoft Technology Licensing, Llc See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light
US9341843B2 (en) 2010-02-28 2016-05-17 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a small scale image source
US8467133B2 (en) 2010-02-28 2013-06-18 Osterhout Group, Inc. See-through display with an optical assembly including a wedge-shaped illumination system
US8472120B2 (en) 2010-02-28 2013-06-25 Osterhout Group, Inc. See-through near-eye display glasses with a small scale image source
US9285589B2 (en) 2010-02-28 2016-03-15 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered control of AR eyepiece applications
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US9091851B2 (en) 2010-02-28 2015-07-28 Microsoft Technology Licensing, Llc Light control in head mounted displays
US9223134B2 (en) 2010-02-28 2015-12-29 Microsoft Technology Licensing, Llc Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses
WO2011106798A1 (en) 2010-02-28 2011-09-01 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US8482859B2 (en) 2010-02-28 2013-07-09 Osterhout Group, Inc. See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film
US9097891B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment
US8478813B2 (en) * 2010-04-28 2013-07-02 Microsoft Corporation Transparent migration of endpoint
CN101859317A (zh) * 2010-05-10 2010-10-13 浪潮电子信息产业股份有限公司 一种利用虚拟化构建数据库集群的方法
US8490165B2 (en) 2010-06-23 2013-07-16 International Business Machines Corporation Restoring secure sessions
US8572268B2 (en) * 2010-06-23 2013-10-29 International Business Machines Corporation Managing secure sessions
US8112665B1 (en) * 2010-07-23 2012-02-07 Netapp, Inc. Methods and systems for rapid rollback and rapid retry of a data migration
US8903782B2 (en) * 2010-07-27 2014-12-02 Microsoft Corporation Application instance and query stores
US8595192B1 (en) * 2010-12-01 2013-11-26 Symantec Corporation Systems and methods for providing high availability to instance-bound databases
WO2012074737A1 (en) * 2010-12-03 2012-06-07 Siemens Enterprise Communications, Inc. Apparatus and method for subscription to a service and use of the service
CN102130938B (zh) * 2010-12-03 2012-02-15 中国科学院软件研究所 一种面向Web应用宿主平台的资源供给方法
US8170981B1 (en) * 2010-12-08 2012-05-01 Dassault Systemes Enovia Corporation Computer method and system for combining OLTP database and OLAP database environments
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US9697050B2 (en) * 2010-12-22 2017-07-04 Sap Se System and method for scaling for a large number of concurrent users
US8300790B2 (en) 2010-12-27 2012-10-30 Avaya Inc. Method and system for automatic conference call session migration
US9244741B2 (en) * 2011-04-02 2016-01-26 Open Invention Network, Llc System and method for service mobility
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) * 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8190749B1 (en) 2011-07-12 2012-05-29 Google Inc. Systems and methods for accessing an interaction state between multiple devices
EP2549711B1 (en) 2011-07-18 2018-04-25 Alcatel Lucent Method for transferring state information pertaining to a plurality of SIP conversations
US20130041790A1 (en) * 2011-08-12 2013-02-14 Sivakumar Murugesan Method and system for transferring an application state
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8984170B2 (en) * 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
US8924346B2 (en) 2011-09-09 2014-12-30 Oracle International Corporation Idempotence for database transactions
US8725882B2 (en) * 2011-09-09 2014-05-13 Oracle International Corporation Masking database outages from clients and applications
US9600371B2 (en) 2011-09-09 2017-03-21 Oracle International Corporation Preserving server-client session context
US8549154B2 (en) 2011-09-09 2013-10-01 Oracle International Corporation Recovering stateful read-only database sessions
US8965921B2 (en) 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US9608831B2 (en) * 2012-06-22 2017-03-28 Facebook, Inc. Migrating a chat message service provided by a chat server to a new chat server
US9749373B2 (en) * 2012-08-14 2017-08-29 Apple Inc. System and method for improved content streaming
US9167050B2 (en) * 2012-08-16 2015-10-20 Futurewei Technologies, Inc. Control pool based enterprise policy enabler for controlled cloud access
US20140089260A1 (en) * 2012-09-27 2014-03-27 International Business Machines Corporation Workload transitioning in an in-memory data grid
US9258666B2 (en) 2012-10-17 2016-02-09 International Business Machines Corporation State migration of edge-of-network applications
US9277017B2 (en) * 2012-10-30 2016-03-01 Netiq Corporation Techniques for device independent session migration
US9219762B2 (en) 2012-10-30 2015-12-22 Netiq Corporation Techniques for desktop migration
US9471545B2 (en) 2013-02-11 2016-10-18 Oracle International Corporation Approximating value densities
US9135280B2 (en) 2013-02-11 2015-09-15 Oracle International Corporation Grouping interdependent fields
US9367262B2 (en) * 2013-02-26 2016-06-14 Seagate Technology Llc Assigning a weighting to host quality of service indicators
JP6094272B2 (ja) * 2013-03-06 2017-03-15 富士通株式会社 管理システム、管理方法、管理プログラム及び管理装置
US9614918B2 (en) * 2013-03-14 2017-04-04 International Business Machines Corporation Migration of network connection under mobility
JP6248523B2 (ja) 2013-10-07 2017-12-20 富士通株式会社 データ処理管理方法、情報処理装置およびデータ処理管理プログラム
US9628550B1 (en) 2013-10-24 2017-04-18 Ca, Inc. Lightweight software management shell
CN104850569B (zh) * 2014-02-19 2019-12-06 腾讯科技(北京)有限公司 数据迁移方法和装置
US10049205B2 (en) * 2014-06-25 2018-08-14 Oracle International Corporation Asserting identities of application users in a database system based on delegated trust
US9800519B2 (en) 2014-08-21 2017-10-24 Microsoft Technology Licensing, Llc Equitable sharing of system resources in workflow execution
WO2016049584A1 (en) 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
CN104486401A (zh) * 2014-12-11 2015-04-01 中铁程科技有限责任公司 数据分区控制方法及系统
JP6439475B2 (ja) * 2015-02-09 2018-12-19 富士通株式会社 情報処理装置、情報処理システム及び制御プログラム
JP2018524693A (ja) * 2015-06-09 2018-08-30 マシーン ゾーン インコーポレイテッド 拡張可能な分散型作業負荷試験
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
CN105162866A (zh) * 2015-09-15 2015-12-16 浪潮软件股份有限公司 一种应用系统并发访问控制方法
US10298679B1 (en) * 2015-09-18 2019-05-21 Amazon Technologies, Inc. Object ownership migration
US11082499B2 (en) * 2015-10-19 2021-08-03 Citrix Systems, Inc. Browser server session transfer
US10339127B2 (en) 2016-01-28 2019-07-02 Oracle International Corporation Guaranteed commit outcome in a distributed transaction processing system
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US9838377B1 (en) * 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
CN106559485B (zh) * 2016-11-15 2019-08-06 杭州迪普科技股份有限公司 一种控制服务器关机的方法及装置
US10353640B2 (en) * 2016-12-06 2019-07-16 Dell Products L.P. Seamless data migration in a clustered environment
US10348836B2 (en) 2017-02-22 2019-07-09 Microsoft Technology Licensing, Llc Migrating clients between servers
CN109218356B (zh) * 2017-06-30 2021-10-08 伊姆西Ip控股有限责任公司 管理服务器上有状态应用的方法和设备
CN107402850B (zh) * 2017-07-31 2021-02-09 苏州浪潮智能科技有限公司 一种数据库数据文件的冗余方法与装置
US11556500B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation Session templates
CN107741852B (zh) * 2017-10-16 2020-09-29 中国电子科技集团公司第二十八研究所 一种基于集群软件的服务部署方法
CN107918668B (zh) * 2017-11-28 2020-01-31 苏州浪潮智能科技有限公司 一种k-db数据库表空间元数据本地存储方法
US10616321B2 (en) 2017-12-22 2020-04-07 At&T Intellectual Property I, L.P. Distributed stateful load balancer
CN108733484B (zh) * 2018-04-13 2021-12-03 华为技术有限公司 管理应用程序的方法与装置
CN110543512B (zh) * 2018-05-29 2022-10-04 优信拍(北京)信息科技有限公司 一种信息同步方法,装置及系统
CN111580951B (zh) * 2019-02-15 2023-10-10 杭州海康威视数字技术股份有限公司 一种任务分配方法及资源管理平台
CN110362410A (zh) * 2019-07-24 2019-10-22 江苏满运软件科技有限公司 基于离线应用的资源控制方法、系统、设备及存储介质
US11936739B2 (en) 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state
US11687507B2 (en) 2019-09-12 2023-06-27 Oracle International Corporation Termination of database sessions for planned failover
CN112540843A (zh) * 2019-09-20 2021-03-23 杭州海康威视数字技术股份有限公司 资源的分配方法、装置、存储设备及存储介质
US11544237B2 (en) 2021-01-12 2023-01-03 Oracle International Corporation Database connection refresh for server instances and live database updates
US11799971B2 (en) 2022-02-17 2023-10-24 Bank Of America Corporation Systems and methods for session migration between devices

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5028A (en) * 1847-03-20 monohot
US5013222A (en) * 1990-04-19 1991-05-07 General Motors Corporation Fuel pump for motor vehicle
US6567525B1 (en) * 1994-06-17 2003-05-20 Bose Corporation Supra aural active noise reduction headphones
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5758345A (en) * 1995-11-08 1998-05-26 International Business Machines Corporation Program and method for establishing a physical database layout on a distributed processor system
US7010137B1 (en) * 1997-03-12 2006-03-07 Sarnoff Corporation Hearing aid
US5881159A (en) * 1996-03-14 1999-03-09 Sarnoff Corporation Disposable hearing aid
US6473511B1 (en) * 1996-03-14 2002-10-29 Sarnoff Corporation Disposable hearing aid with integral power source
CA2254888A1 (en) * 1996-03-26 1997-10-02 John G. Aceti Battery and circuitry assembly
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US6006274A (en) 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US5890167A (en) 1997-05-08 1999-03-30 Oracle Corporation Pluggable tablespaces for database systems
US6272503B1 (en) * 1997-05-30 2001-08-07 Oracle Corporation Tablespace-relative database pointers
US7031987B2 (en) 1997-05-30 2006-04-18 Oracle International Corporation Integrating tablespaces with different block sizes
US6243751B1 (en) 1997-06-11 2001-06-05 Oracle Corporation Method and apparatus for coupling clients to servers
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US5918059A (en) * 1997-08-15 1999-06-29 Compaq Computer Corporation Method and apparatus for responding to actuation of a power supply switch for a computing system
US6178529B1 (en) * 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
US6230183B1 (en) 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
US6925477B1 (en) * 1998-03-31 2005-08-02 Intellisync Corporation Transferring records between two databases
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6263433B1 (en) 1998-09-30 2001-07-17 Ncr Corporation Provision of continuous database service and scalable query performance using active redundant copies
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6377996B1 (en) * 1999-02-18 2002-04-23 International Business Machines Corporation System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming
US6347313B1 (en) * 1999-03-01 2002-02-12 Hewlett-Packard Company Information embedding based on user relevance feedback for object retrieval
US7113611B2 (en) * 1999-05-05 2006-09-26 Sarnoff Corporation Disposable modular hearing aid
US6556659B1 (en) * 1999-06-02 2003-04-29 Accenture Llp Service level management in a hybrid network architecture
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
WO2001069971A2 (en) * 2000-03-13 2001-09-20 Sarnoff Corporation Hearing aid with a flexible shell
US6601101B1 (en) * 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
WO2001067843A2 (en) * 2000-03-15 2001-09-20 Knowles Electronics, Llc Port switch as for a hearing aid device
JP2002007749A (ja) * 2000-06-27 2002-01-11 Hitachi Ltd サーバ振り分け装置、サービス提供システム及びサービス提供方法
NZ505525A (en) 2000-06-30 2003-03-28 Horticulture & Food Res Inst Polymers imprinted with phenols for the binding of phenols, and a method and sensor for the detection and/or measurement of a phenol by measuring the binding of phenol to the polymer
AU2001271775A1 (en) 2000-07-06 2002-01-21 Telefonaktiebolaget Lm Ericsson (Publ) Automatic database replication server and methods
JP4292693B2 (ja) 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7024394B1 (en) * 2000-07-07 2006-04-04 International Business Machines Corporation System and method for protecting user logoff from web business transactions
US6667751B1 (en) * 2000-07-13 2003-12-23 International Business Machines Corporation Linear web browser history viewer
WO2002007037A1 (en) 2000-07-17 2002-01-24 Galactic Computing Corporation Method and system for providing dynamic hosted service management
US6816907B1 (en) * 2000-08-24 2004-11-09 International Business Machines Corporation System and method for providing differentiated services on the web
US7181492B2 (en) * 2000-10-17 2007-02-20 Concerto Software, Inc. Transfer of an internet chat session between servers
DE60113218T2 (de) * 2000-11-08 2006-07-06 Infonet Services Corp., A California Corp., El Segundo Verfahren und Vorrichtung für automatische Dienststufenübereinkommen
US7269157B2 (en) * 2001-04-10 2007-09-11 Internap Network Services Corporation System and method to assure network service levels with intelligent routing
US20020194015A1 (en) * 2001-05-29 2002-12-19 Incepto Ltd. Distributed database clustering using asynchronous transactional replication
US6987765B2 (en) * 2001-06-14 2006-01-17 Nortel Networks Limited Changing media sessions
US7734676B2 (en) 2001-06-27 2010-06-08 International Business Machines Corporation Method for controlling the number of servers in a hierarchical resource environment
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US20030069906A1 (en) * 2001-07-27 2003-04-10 Cichowlas Bruce William Method and system for multi-page web applications with central control
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
GB0119145D0 (en) 2001-08-06 2001-09-26 Nokia Corp Controlling processing networks
US7277945B1 (en) * 2001-09-12 2007-10-02 Cisco Technology, Inc. System and method for maintaining seamless session operation
US7222190B2 (en) * 2001-11-02 2007-05-22 Internap Network Services Corporation System and method to provide routing control of information over data networks
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
US7293105B2 (en) * 2001-12-21 2007-11-06 Cisco Technology, Inc. Methods and apparatus for implementing a high availability fibre channel switch
US20030135609A1 (en) 2002-01-16 2003-07-17 Sun Microsystems, Inc. Method, system, and program for determining a modification of a system resource configuration
US7392302B2 (en) * 2002-02-21 2008-06-24 Bea Systems, Inc. Systems and methods for automated service migration
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
JP2005521150A (ja) * 2002-03-18 2005-07-14 メルク・アンド・カンパニー・インコーポレーテッド ヘルスケア・プロバイダ用医療情報ポータルを管理し、および/または提供するためのコンピュータ支援および/または実行プロセスおよびシステム
AU2003226192A1 (en) * 2002-04-02 2003-10-20 Worldcom, Inc. Billing system for communications services involving telephony and instant communications
US7496655B2 (en) * 2002-05-01 2009-02-24 Satyam Computer Services Limited Of Mayfair Centre System and method for static and dynamic load analyses of communication network
AU2003237296A1 (en) * 2002-05-31 2003-12-19 Spatial Wireless, Inc. Method and system for providing location information of a mobile station
US7058957B1 (en) * 2002-07-12 2006-06-06 3Pardata, Inc. Cluster event notification system
AU2003282541A1 (en) * 2002-10-10 2004-05-04 Pb And J Software, Llc Method and system for sharing storage space on a computer
US20040111506A1 (en) * 2002-12-10 2004-06-10 International Business Machines Corporation System and method for managing web utility services
US7243351B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method for task scheduling based upon the classification value and probability
US7441046B2 (en) * 2003-03-03 2008-10-21 Siemens Medical Solutions Usa, Inc. System enabling server progressive workload reduction to support server maintenance
US20040176996A1 (en) * 2003-03-03 2004-09-09 Jason Powers Method for monitoring a managed system
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7263590B1 (en) * 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
JP2005038354A (ja) * 2003-07-18 2005-02-10 Sap Ag データ受け渡し制御装置、データ受け渡し制御方法、及びデータ受け渡し制御プログラム
US7552171B2 (en) * 2003-08-14 2009-06-23 Oracle International Corporation Incremental run-time session balancing in a multi-node system
US8578462B2 (en) * 2003-12-12 2013-11-05 Avaya Inc. Method and system for secure session management in a web farm
US8346909B2 (en) * 2004-01-22 2013-01-01 International Business Machines Corporation Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements
US20050267965A1 (en) * 2004-05-13 2005-12-01 Ixi Mobile (R&D) Ltd. Mobile router graceful shutdown system and method
US7415470B2 (en) 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7587400B2 (en) * 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660550A (zh) * 2013-11-20 2015-05-27 北京邮电大学 一种在多服务器之间进行会话迁移的方法
CN104660550B (zh) * 2013-11-20 2019-03-01 北京邮电大学 一种在多服务器之间进行会话迁移的方法
CN103699394B (zh) * 2014-01-08 2017-04-12 夏夀民 一种基于多方交流协议自动生成软件系统交互框架的方法

Also Published As

Publication number Publication date
US7747754B2 (en) 2010-06-29
US20050038828A1 (en) 2005-02-17
CN1836214A (zh) 2006-09-20
CN1836232A (zh) 2006-09-20
CN100549960C (zh) 2009-10-14
CN100547583C (zh) 2009-10-07
CN1836212A (zh) 2006-09-20
CN100407153C (zh) 2008-07-30
CN100437545C (zh) 2008-11-26
US20050038848A1 (en) 2005-02-17
US20050038849A1 (en) 2005-02-17
US7552218B2 (en) 2009-06-23
CN1836416A (zh) 2006-09-20
US7415522B2 (en) 2008-08-19
CN100518181C (zh) 2009-07-22
CN100527090C (zh) 2009-08-12
CN1836211A (zh) 2006-09-20

Similar Documents

Publication Publication Date Title
CN1836213A (zh) 服务器间的透明会话迁移
CN1171145C (zh) 用于自动软件配置的请求调度程序
US8621031B2 (en) Method and apparatus using connection pools in communication networks
CN1645330A (zh) 用于应用程序分布式管理的启用网格的虚拟机的方法和系统
Alpdemir et al. Service-based distributed querying on the grid
CN1906580A (zh) 对于具有可移动对象的启用网格的虚拟机的方法和系统
US20060184535A1 (en) Suspension and resuming of sessions
US20210389970A1 (en) Vnf lifecycle management method and apparatus
CN1516419A (zh) 在主机计算机网络上处理客户机请求的系统和方法
CN1754146A (zh) 用于服务器负载均衡和服务器亲缘关系的系统和方法
CN1595363A (zh) 在操作系统分区内的进程间通信
CN1902588A (zh) 在次最佳网格环境中维持应用工作
CN1604039A (zh) 用于管理计算环境中的请求的执行的方法和系统
CN1783123A (zh) 基于资源需求和业务影响的过程执行管理
CN1554056A (zh) 具有同步回退处理特征的事务处理的系统和方法
CN100341281C (zh) 一种在网络系统中实现任务管理的方法
CN1298503A (zh) 分布式系统中的动态查找服务
US7900212B2 (en) Pooling stateful session Enterprise Java Beans for reuse
CN1682186A (zh) 技术无关的信息管理
CN1798031A (zh) Web服务事务处理系统及处理方法
CN1659847A (zh) 用于支持并行应用互操作性的系统和方法
CN1201941A (zh) 报文处理方法和装置及用于存储控制程序的存储介质
CN108958933B (zh) 任务执行器的配置参数更新方法、装置及设备
WO2022257247A1 (zh) 数据处理方法、装置及计算机可读存储介质
CN1835450A (zh) 网格作业管理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant