CN1758606A - 用于自主管理连接池的方法和设备 - Google Patents
用于自主管理连接池的方法和设备 Download PDFInfo
- Publication number
- CN1758606A CN1758606A CNA2005100833092A CN200510083309A CN1758606A CN 1758606 A CN1758606 A CN 1758606A CN A2005100833092 A CNA2005100833092 A CN A2005100833092A CN 200510083309 A CN200510083309 A CN 200510083309A CN 1758606 A CN1758606 A CN 1758606A
- Authority
- CN
- China
- Prior art keywords
- connection pool
- connection
- autonomous configuration
- collection
- autonomous
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种用于自主管理连接池的方法和设备。根据本发明的一个实施例的方法包括:用一组初始设置初始化连接池,其中该组初始设置包括收集间隔和收集持续时间;收集用于收集持续时间的自主配置数据,该自主配置数据包括在收集间隔期间所观察到的最大连接数;使用自主配置数据来确定一组最优设置;以及根据该组最优设置修改连接池。
Description
技术领域
本发明一般涉及用于管理对计算资源的访问的方法和系统。更具体地说,本发明涉及一种用于自主管理连接池的方法和系统。
相关申请
本申请与2004年1月29号提交且发明名称为“Method andApparatus for Managing a Connection Pool using HeuristicInformation”的美国专利申请No.10/767,043相关,在此将其全文引作参考。
背景技术
1948的EDVAC计算机系统的开发通常被认为是计算机时代的开端。从那时起,计算机系统已经演变成非常复杂的装置。虽然现今的计算机比EDVAC更复杂,但是仰赖计算机系统的最基本需求还没有改变。现在,与过去一样,计算机系统的工作是访问、操纵并且存储信息。不管计算机系统的类型或年代,都是如此。
计算机系统用来访问、存储和操纵信息的某些最基本技术是在数据源如数据库中读取和写入信息。现今,大部分数据库存储在被称作“服务器”的功能强大的计算机上。被称作“客户端”的其它计算机在计算机网络上通过向服务器发送搜索请求来访问数据库。服务器计算机接收该请求,执行所请求的操作,然后将结果返回给客户端。
虽然客户端/服务器模型具有很多优点,但是一个缺点是在客户端能够访问数据库之前,它必须首先连接到该数据库的服务器。遗憾的是,管理这些连接需要相当大的开销。也就是,服务器必须使用一定量的其计算资源以创建连接,维护连接,然后当该连接不再被需要时释放它们。本领域的技术人员应当理解,因为每个客户端应用通常将使用一个或更多独立的连接以请求所需要的操作,并且因为大部分万维网客户端频繁地连接并且断开,所以对于基于万维网(“Web”)的应用而言总的数据库开销可能特别大。结果,在连接和断开客户端上所花费的工夫比在处理它们的请求上所花费的工夫还要多。创建开销可能特别显著,因为其降低了所感觉的基于万维网的应用的速度。
对此问题的一个部分解决方案是使用一种被称作连接池的技术。在该技术中,被称作应用服务器的专用程序预先创建大量连接,从而将来的客户端请求不需要引起创建开销。当满足了请求并且将响应返回给用户时,应用服务器将资源返回给连接池以便复用。本质上,该技术将连接开销分摊到若干用户请求上,以便每个用户请求引起总的创建和断开连接成本的一部分。
虽然连接池减少了创建和销毁连接所需的开销,但是一个问题是池自身需要一些用于维护的开销。因此,如果负载随着时间的过去而减少,则维护连接池中的大量的连接使用了不必要的资源。传统的解决方案是允许空闲连接“超时(timeout)”。遗憾的是,该技术对于无静态负载的应用而言工作得不好,因为,当负载再次增加时,连接池中当前的连接数量将不够。因而,必须根据需要来创建连接,并且客户端应用引起该创建成本。
在2004年1月29号提交且名称为“Method and Apparatus forManaging a Connection Pool using Heuristic Information”的美国专利申请No.10/767,043介绍了一种对连接池架构的扩展,其使用启发式数据来确保连接池在给定时间段内包含所需数量的连接。通过尝试预测何时将需要新增连接,该扩展提高了使用连接池架构例如Java数据库连接性(“JDBC”)和Java 2连接器(J2C)连接的应用的性能。该扩展还允许连接池在较低工作量期间用新连接来填充(populate)自己,而不是在工作量已经开始增加之后消耗系统资源。然而,该扩展的一个限制是,它仍然需要系统管理员的人工干预来收集启发式数据并且在启发式配置文件中配置启发式覆盖部分(override section)。这些任务可能耗费相当多的时间并且需要相当多的专业技能。
在无法让计算机系统配置它们自己的连接管理器的情况下,就决不可能完全实现网络计算的希望。
发明内容
本发明提供了一种用于自主管理数据源连接池的方法、系统、计算机程序产品。本发明的一方面是一种用于自主管理连接池的方法和设备。根据本发明的一个实施例的方法包括:用一组初始设置初始化连接池,其中该组初始设置包括收集间隔和收集持续时间;收集用于收集持续时间的自主配置数据,该自主配置数据包括在收集间隔期间所观察到的最大连接数;使用自主配置数据来确定一组最优设置;以及根据该组最优设置修改连接池。
附图说明
图1示出包含本发明的信息技术系统的一个实施例。
图2示出一个万维网应用实施例的操作。
图3A-3B示出一个应用服务器实施例的操作。
图4示出池配置文件的一个实施例。
图5示出一种初始化连接池的方法。
图6A和6B示出一种收集自主配置数据的方法。
具体实施方式
图1示出了信息技术系统100的一个实施例,其包括通过通信介质106互连的万维网服务器计算机102a和多个客户端计算机102b(为清楚起见,只详细示出了一个客户端计算机102b)。每个计算机系统102具有一个或多个中央处理器110(″CPU″),其通过系统总线122连接到主存储器单元112、大容量存储装置接口114、显示器接口116、网络接口118和输入/输出(″I/O″)接口120。大容量存储装置接口114将系统总线122连接到一个或多个大容量存储装置,例如直接访问存储装置140和可读且可写的光盘驱动器142。网络接口118允许计算机系统102在通信介质106上相互通信或者与多个其它计算机(未示出)通信。万维网服务器计算机102a中的主存储器112a包含:操作系统124a;数据库126,能够接收并且服务数据库请求如JDBC请求;应用服务器128,能够维护和管理连接池129;万维网应用132,能够形成和接收数据库请求并且能够从应用服务器128接收答复;连接池配置文件130;以及连接池管理器180。客户端计算机102b中的主存储器112b包含操作系统124b、以及能够与万维网应用132进行通信的万维网浏览器150。
工作时,本发明提供了对一个或多个连接池129的自主管理。自主计算通常是指具有管理自身并且根据商业策略和目标动态适应变化的能力的计算系统。自管理环境可以基于它们在信息技术环境中观察或者感知的状况而执行这些活动一而不要求信息技术专业人员来发起这些任务。这样,自主计算系统可以通过降低所有权(ownership)总成本、提高服务质量,加速时间价值,并且管理复杂性来提高信息技术投资的回报。
在一个实施例中,连接池配置文件130包含用于应用服务器128的配置信息。应用服务器128使用该配置信息来调整池中的连接数,以处理在特定时间和/或特定日增加的负载。在一个例子中,用于典型电子商务网站的配置文件130指定池中将可用的最小连接数(″MinConnections″)、可包含在池中的最大连接池大小(″MaxConnections″)、以及超时周期,该超时周期表示未被使用的连接在被关闭以收回资源之前可以在池中保留多久。本例中的配置文件130包含以下配置信息:
00:00:00-08:00:00:MaxConnections=0;
08:00:00-09:00:00:MaxConnections=10;
09:00:00-11:00:00:MaxConnections=100;
11:00:00-14:00:00:MaxConnections=150;
14:00:00-18:00:00:MaxConnections=200;
18:00:00-19:00:00:MaxConnections=100;
19:00:00-20:00:00:MaxConnections=10;
20:00:00-00:00:00:MaxConnections=0;
上述示例配置数据表示从00:00:00到08:00:00预期在连接池129上没有负载。在08:00:00到14:00:00之间,预期负载逐渐增加。在18:00:00到20:00:00之间,预期负载逐渐减少。如将要参照图2-4更详细地讨论的那样,当应用服务器128在07:55:00、08:55:00、10:55:00和13:55:00查询池大小时,它将很有可能确定连接池129需要附加的连接,然后将创建这些连接。当应用服务器128在17:55:00、18:55:00和19:55:00查询池大小时,它将确定连接池129需要更少的连接,并且让过剩的连接终止。应用服务器128为给定时间段所创建的新连接的确定数目是基于以下计算:
(要被创建的新连接数)=(配置文件130中指定的连接数)-(当前连接数)
本实施例中的连接管理器180为指定的时间间隔动态收集池连接使用数据。连接管理器180使用该使用数据来自动且动态地更新配置文件130。也就是,本实施例中的连接管理器180监测并记录在指定的时间间隔上所需的连接负载,并且将该信息持久化(persist)到配置文件130中的覆盖部分。在足够的工作周期(例如,天、星期、月和/或年,其取决于配置)之后,连接管理器180将改变配置文件130以反映实际的使用模式。这样,连接管理器180能够收集新配置数据并且在运行时动态应用该新数据,而不需要管理员人工监测所需的连接数并且人工修改配置文件以反映这些启发式信息。
在一些实施例中,系统管理员可以修改配置文件130,以指令连接池管理器180停止搜集连接使用数据并且以静态方式使用配置文件130。另外,在一些实施例中,系统管理员仍然能够人工编辑配置文件130以便对预期连接使用与所收集的数据不同的特殊时间段进行调整,并且/或者指令连接管理器180以静态方式使用配置文件130。因此,例如,如果整年使用的按天或按星期的连接使用模式可能不能充分满足在感恩节和圣诞节之间的圣诞节购物季节或在大销售开始后的日子的需要,系统管理员能够为这些特定时间段提供特殊配置设置。
图2更详细地示出了一个万维网应用132实施例的操作,具体地说,客户端/服务器数据库应用的Java数据库连接性(″JDBC″)实现。在块202,客户端计算机102b的用户向万维网应用132请求某信息。该请求要求浏览器150在块204将消息发送给服务器计算机102a,从而请求它对数据库126执行某操作(例如,创建新记录,读取现有记录、更新现有记录、删除现有记录等等)。本例中的万维网应用132使用网络命名服务来查询并获得连接池129的引用,然后使用被称作JDBC应用编程接口(″API″)的专用通信协议传送该信息,以打开与数据库的连接。在块206,万维网应用132等待服务器计算机102a执行所请求的操作并且返回期望信息。在块208,万维网应用132使用JDBC API关闭与数据库126的JDBC连接。当万维网应用132关闭从连接池获得的连接时,不关闭与数据库126的连接,而是将其返回到空闲连接的池。然后,这些空闲连接对于向连接池129请求连接的任何万维网应用132是可用的。最后,在块210,万维网应用132向其用户显示所请求的信息。
图3A-3B更详细地示出了一个应用服务器128实施例的操作,具体地说,采用连接池的客户端/服务器数据库应用的JDBC实现。在块302,服务器计算机的系统管理员创建连接池配置文件130,其指定包含在池中的初始连接数、无论什么时候都将可用的最小连接数、能够包含在池中的最大连接数、以及超时长度(也就是,连接在被连接管理器自主关闭之前可以在池中保持不被使用多长时间)。在块304,服务器管理员指令应用服务器128使用如由JDBC规范提供的ConnectionPoolDataSource API、以及一组缺省设置,建立数据库连接池。然后,服务器管理员在块306指令应用服务器128创建多个定时器事件,其表示在配置文件130中定义的每个时间间隔的结束,并且在块308开始正常操作。一旦应用服务器128被指令开始正常操作,则它将在块309监听事件的指示,其通常被称作中断。在接收到中断之后,应用服务器128将执行特定动作,然后返回到块309以等待下一中断。块310-352代表应用服务器的连接池管理器将响应的某些中断、以及与该中断相关联的动作。
在块310-312,如果应用服务器128确定在块309所接收的中断与定时器事件相关联,则应用服务器128首先比较连接池129中当前的连接数和与当前日期时间(time-of-day)相关联的配置文件130中的MaxConnections值。如果当前连接数小于与当前日期时间相关联的MaxConnections,则在块314,应用服务器128将新连接加到池中。然后,在块316,应用服务器128为连接池中的所有可用连接初始化超时值。该块确保在块310检测到定时器事件之后没有连接将终止直至完全超时值为止。然后,应用服务器128返回块309并且等待下一中断。
在块320-322,如果在块309所接收的中断与连接定时器相关联,则应用服务器128首先确定连接数是否等于或低于最小连接池大小。如果连接数高于最小池大小,则在块324应用服务器128销毁超时空闲连接。也就是,连接定时器中断是用于销毁当前在连接池中并且不再需要的连接。这关闭与数据库的物理连接,其释放系统资源并将连接池大小缩小一个连接。如果连接数等于或低于最小连接数,则在块326应用服务器128重新设置该连接的定时器。
在块330-332,如果在块309所接收的中断是应用连接请求,则应用服务器128首先确定连接池是否有′可用′的连接。如果没有可用的连接(也就是,池中当前的所有连接正在用于服务其它请求),则在块333应用服务器128确定池129中当前的连接数是否小于在配置文件130中指定的最大连接数。如果所使用的连接数小于所允许的最大数,则应用服务器128在块335创建连接并且在块336递增连接池中的连接的计数。否则,应用服务器128在块334等待将连接返回到连接池中。在块338,应用服务器128使用现有连接或新创建的连接来服务(honor)连接请求,将所使用的连接标记为″不可用″,以表示它不能用来服务将来的连接请求,并且重新设置该连接的″超时″值。
在块340-342,如果在块309所接收的中断与关闭连接请求相关联,则应用服务器128通过将连接标记为″可用″,将它返回到连接池中。
在块350-352,如果在块309所接收的中断与停止(shutdown)请求相关联,则应用服务器128关闭与数据库的所有连接并且销毁连接池。
图4更详细地示出了配置文件130的一个实施例。图4中的配置文件实施例130包括具有缺省设置部分402和覆盖部分404的可扩展置标语言(″XML″)文档。缺省设置部分402包括相关数据库(″数据源″)的名称406;池中要创建的初始连接数(″initConnections″)408;无论什么时候都将可用的最小连接数(″MinConnections″)410;池中可包含的最大连接数(″MaxConnections″)412;以及表示未被使用的连接在被关闭以收回资源之前可以在池中保留多久的超时值(″time-out″)414。缺省设置部分402还可包括池分析间隔(″poolAnalysisInterval″)416,其指定应用服务器128何时将分析池大小以确定是否需要创建新连接(例如,如果该属性416被设置为′300′,则连接池将在配置文件130中所定义的每个间隔之前分析池大小五分钟),以及″refreshInterval″值418,其表示应用服务器128在配置文件130中读取以刷新使用数据的频度。刷新间隔418设置是所希望的,因为它允许系统管理员修改配置文件130以反映新使用模式。
在一些实施例中,缺省设置部分402还包含连接管理模式(″connectionManagementMode″)430、连接数据收集间隔字段(″collectionInterval″)432、收集持续时间字段(″collectionDuration″)434、和收集运行特征(″collectionRunCharacteristic″)436。本实施例中的连接管理模式字段430能够包括下面三个连接管理选项中的一个:
″off(关)″,表示连接管理器180将使用传统池管理技术(也就是,没有启发式或自主技术);
″static(静态)″,表示连接管理器180将使用2004年1月29号提交且发明名称为″Method and Apparatus for Managing a Connection Poolusing Heuristic Information″的美国专利申请No.10/767,043中所描述的启发式配置技术。
″dyRamic(动态)″,表示连接管理器180将使用本发明的自主管理技术。
收集间隔字段432表示用于分析在应用服务器128上运行的应用实际上已经使用的存在于连接池中的连接数的时间间隔。例如,如果该属性432被设置为′3600′,则连接池管理器180将每六分钟分析连接池中当前存在的已使用连接数。因此,当连接管理器处于″dynamic″模式时,收集间隔字段432确定配置文件130中的BeginTime(开始时间)/EndTime(结束时间)元素的持续时间和数量。
本实施例中的collectionDuration(收集持续时间)字段434包含可以从枚举型列表:″Day(天)″、″Week(星期)″、″Month(月)″或″Year(年)″选择的单个值。该值表示多长时间要搜集自主连接使用信息并且要将其记录在配置文件130中的方式。本实施例中的收集运行特征字段436(″collectionRunCharacteristic″)包含可以从枚举型列表:″runOnce(运行一次)″或″runContinuously(连续运行)″选择的单个值。该值告诉连接管理器180它是应当通过收集持续时间字段434所定义的一个循环来收集自主连接数据然后停止,还是只要应用服务器128保持运行它就应当继续收集自主连接使用数据并且连续地更新配置文件130。该″runOnce″特性可能是特别所希望的,因为它允许连接池管理器180搜集连接使用数据并且在通过所定义的时间段434完成一个循环之后构造配置文件130,然后以静态方式工作。通过消除了与数据收集相关联的开销,这又可以提高应用服务器128的性能,特别是当从时间段434到下一时间段使用没有大幅度波动时,更是如此。
覆盖部分404包括多个覆盖(override)420a-420n。每个覆盖420包括″BeginTime″部分422a-422n、″EndTime″部分424a-424n和覆盖值426a-426n。BeginTime和EndTime部分422、424指定在其期间应用服务器应当使用相关联的覆盖值426的时间。系统管理员可以使用这些覆盖来反映预期使用数据。一些实施例还可以指定″WeekDay(一星期的日子)″部分(为清楚起见而未示出),其将允许系统管理员根据一星期的日子来调整(例如,预期负载在工作日将高,但是在晚上和周末将低),以及指定″holidays″部分(为简化起见而未示出),其将允许系统管理员调整特定日子(例如,预期负载在感恩节之后的日子将高)。应用服务器128可以使用参照图3描述的过程在这些高峰之前通过动态创建附加连接来应用这些设置。图4的实施例的一个优点是,连接池与数据库126和配置文件130一对一相关联,这允许服务器管理员能够为在服务器上运行的每个数据库126单独配置本发明的连接池。
在工作时,连接池管理器180根据collectionInterval属性432分析当前连接负载,并且为相关时间段更新配置文件130的覆盖部分404。refreshInterval属性允许连接管理器180以指定的间隔刷新其运行时连接数据130,这又导致连接池动态反映新收集的连接负载数据。本发明的自主配置特性是所希望的,因为它允许连接管理器180随着时间的过去而调整连接池,而不要求系统管理员人工监测连接使用并且人工更新数据文件130。
图5示出了一种初始化连接池的方法500。在块502,配置管理器180装载当前配置文件130,然后解析该配置文件130,以查找与第一数据源406相关联的缺省设置部分402。然后,在块504,配置管理器180检查管理模式字段是否为″off″。如果是,则配置管理器在块505使用传统池管理技术初始化连接池;如果否,则配置管理器180在块506检查管理模式字段430是否为″static″。如果是,则配置管理器(在块507)使用参照图3更详细描述的连接管理技术;如果否,则配置管理器使用(在块508-509)参照图6描述的自主连接管理技术。
图6示出了一种收集自主配置数据的方法。在块601,连接管理器180设置collectionStart变量等于当前系统时间(也就是,当前时间戳)。在块602-604,连接管理器180解析配置文件130,以确定用于该数据源的收集间隔属性432,并且设置收集定时器等于0。在块606,连接管理器180确定收集定时器是否小于收集间隔。如果否,则连接管理器180返回到块605以收集附加自主配置数据将605;否则,连接管理器继续到块608。
在块608,连接管理器180获得当前系统时间和日期(也就是,时间戳)。在块610,连接管理器180使用当前时间戳来确定最近结束的时间间隔的BeingTime 422和EndTime 424(见图4)。在块612,连接管理器180分析自主配置数据,以确定最近结束的时间间隔的最大连接数(例如,使用对自主配置数据执行统计分析的应用编程接口,如prevMax=maxConnectionsInPool(startTime,endTime))。在块614,连接管理器180确定在块612计算的最大连接数是大于还是小于配置文件130中所存储的对应值420n。如果不需要改变,则连接管理器180继续到块618,否则连接管理器180为最近结束的时间间隔更新(在块616)配置文件130中的记录420n(例如,MaxConnections=prevMax)。
在块618,连接管理器180解析配置文件130,以确定该数据源的收集运行特征436(见图4)。如果收集运行特征436被设置为′runOnce′,则连接管理器180停止收集自主配置数据,并且在′static′模式中运行;然而,如果收集运行特征436被设置为′runContinuously′,则连接管理器180返回到块604。
再次参照图1,本实施例中的计算机系统102是通用可编程计算装置。因此,中央处理器110可以是能够执行存储在主存储器112中的程序指令的任何装置,并且可以由一个或多个微处理器和/或集成电路构成。在本实施例中,当计算机系统102中的一个启动时,相关CPU 110初始地执行构成操作系统发124的程序指令,其管理计算机系统102的物理和逻辑资源。这些资源包括中央处理器110、主存储器112、大容量存储装置接口114、显示器接口116、网络接口118和系统总线122。另外,虽然图1的每个计算机系统102被示出为只有单个中央处理器110和单个系统总线122,但是本领域的技术人员应当理解,本发明可以使用具有多个中央处理器110和/或多个系统总线122的计算机系统102来实施。而且,接口114、116、118和120可以各自包括它们自己的独立、完全编程的微处理器,并且可以用于从处理器核心110卸载(offload)计算密集型处理。
主存储器112和存储装置140、142可以是能够为中央处理器110存储和检索数据的任何系统。这些系统可以利用虚拟寻址机制,该机制允许计算机系统102表现得就像是它们只访问单个大型存储实体而不是访问多个较小存储实体如主存储器112和DASD装置140。因此,虽然操作系统124、应用服务器128和数据库126被示出为驻留在主存储器112中,但是本领域的技术人员应当认识到,这些项目不一定同时全都完全包含在主存储器112中,并且甚至可以驻留在耦接到计算机系统102的其它计算机系统的虚拟存储器中。
显示器接口116用于将一个或多个显示单元180直接连接到计算机系统102。这些显示单元180可以是非智能(也就是,哑)终端,例如阴极射线管,或者可以自身是用于允许IT管理员和用户与一个或多个计算机系统102进行通信的完全可编程的工作站。然而,注意,虽然显示器接口116被提供用来支持与一个或多个显示器180的通信时,但是计算机系统102不一定需要显示器180,因为与用户或其它过程的所有所需交互都可以通过网络接口118发生。
通信介质106可以是允许计算机系统102彼此通信的任何装置或系统。因此,网络接口118可以是帮助这种通信的任何装置,而不管网络连接是使用现在的模拟和/或数字技术还是通过将来的某种连网机制来进行。适当的通信介质106包括但不限于因特网、内联网、蜂窝传输网络、使用IEEE 802.1X规范之一的无线网络等等。本领域的技术人员应当理解,很多不同网络协议可以用于实现通信介质106。传输控制协议/因特网协议(″TCP/IP″)是适合于基于因特网的通信的网络协议的例子。
参照图1-4所描述的实施例一般使用客户端-服务器网络架构。这些实施例是所希望的,因为客户端102b可以利用万维网服务器计算机102a的服务而任一计算机系统102都不需要关于其它计算机系统的工作细节知识。然而,本领域的技术人员应当理解,其它网络架构也在本发明的范围之内。其它适合网络架构的例子包括对等架构、网格架构和多层架构。因此,术语万维网服务器和客户端计算机不应当被解释为将本发明局限于客户端-服务器网络架构。
一个适合的万维网服务器计算机102a是运行i5/OS多任务操作系统的eServer iSeries计算机,这两者都是由纽约、阿芒可的国际商业机器公司生产的。一个客户端计算机102b是运行Linux或Windows操作系统的IBM ThinkPad,其也可从国际商业机器公司得到。然而,本领域的技术人员应当理解,本发明的机制和设备同样适用于任何计算机系统102和操作系统124,而不管计算机102的一个或两者是复杂的多用户计算设备、单个工作站、膝上型计算机、移动电话还是个人数字助手("PDA″)、视频游戏系统等等。
虽然已经参考本发明的特定例子描述了本发明,但是在不脱离本发明的基本精神或性质的情况下,也可以以其它特定形式来实施它。例如,本领域的技术人员应当理解,本发明能够以各种形式作为程序产品进行分发,并且不管用于实际执行该分发的信号承载介质的特殊类型都同样适用。适合的信号承载介质的例子包括但不限于:(i)永久性地存储在不可写存储介质(例如,计算机内的只读存储器装置,如可由CD-ROM驱动器读取的CD-ROM磁盘)上的信息;(ii)存储在可写存储介质(例如,磁盘驱动器内的软盘、CD-R盘、CD-RW盘、或硬盘驱动器)上的可更改信息;或者(iii)通过通信介质传达到计算机的信息,如通过计算机或电话网络,包括无线通信,并且具体地说,包括从因特网和其它网络下载的信息。当承载引导本发明功能的计算机可读指令时,这种信号承载介质代表本发明的实施例。
本发明的实施例还可以作为与客户公司、非盈利组织、政府实体、内部组织机构等的服务约定(engagement)的一部分来提供。这些实施例的各方面可以包括配置计算机系统以执行在此描述的一些或全部方法,以及部署实现这些方法的软件系统和万维网服务。这些实施例的各方面还可以包括分析客户端操作,创建响应于该分析的建议,生成实现这些建议的部分的软件,将该软件集成到现有的过程和基础结构中,测定系统的使用,将开支分配给系统用户;并且为系统的使用开帐单。
本领域的技术人员应当理解,本发明及其自主配置管理器对于Java连接可能是特别所希望的,因为JDBC规范的3.0版本没有考虑时间上的连接负载变化。然而,本发明可以应用于以类似于JDBC连接池的方式使用连接池的其它架构。例如,J2EE连接器架构(“J2C”)架构提供使用这样的连接池机制,其使用用于连接到各种资源的公共连接器架构,例如,Java消息服务(“JMS”)连接、与传统应用如CICS、PeopleSoft等的连接。
附图和本文示出和描述了本发明的实施例及其特征和组成部分。本领域的技术人员应当理解,在本文中使用的任何具体程序术语仅仅是为了方便起见,因此,本发明不应当局限于仅仅在该术语所标识和/或暗示的任何特定应用中使用。因此,例如,被执行以便实现本发明实施例的例程,无论是作为操作系统或特定应用的一部分、组件、程序、模块、对象还是作为指令序列来实现,其都可以被称作“程序”、“应用”、“服务器”、或其它有意义的术语。因此,期望将在此描述的实施例视为在所有方面都是说明性的而非限制性的,并且参考所附权利要求来确定本发明的范围。
Claims (17)
1.一种自主连接池管理方法,包括:
初始化连接池;
收集自主配置信息;以及
使用自主配置信息修改连接池。
2.如权利要求1所述的方法,其中使用多个初始设置初始化连接池。
3.如权利要求2所述的方法,其中该多个初始设置包括收集管理模式。
4.如权利要求2所述的方法,其中该多个初始设置包括收集间隔。
5.如权利要求2所述的方法,其中该多个初始设置包括收集持续时间。
6.如权利要求2所述的方法,其中该多个初始设置包括收集运行特征。
7.如权利要求1所述的方法,其中自主配置信息包括收集间隔期间的最大连接数。
8.如权利要求1所述的方法,还包括:
收集附加自主配置信息;
使用附加自主配置信息进一步修改连接池。
9.一种操作服务器的方法,包括:
用一组初始设置初始化连接池,其中该组初始设置包括收集间隔和收集持续时间;
收集用于收集持续时间的自主配置数据,自主配置数据包括在收集间隔期间所观察到的最大连接数;
使用自主配置数据来确定一组最优设置;以及
根据该组最优设置修改连接池。
10.如权利要求9所述的方法,还包括:
收集用于第二收集持续时间的附加自主配置数据,附加自主配置数据包括在第二收集间隔期间所观察到的最大连接数;
使用附加自主配置数据来调整该组最优设置;以及
根据调整后的该组最优设置来修改连接池。
11.如权利要求10所述的方法,其中连接池包括Java数据库连接性连接。
12.如权利要求10所述的方法,其中连接池包括Java2连接器连接。
13.一种计算机程序产品,包括:
(a)被配置成执行自主连接池管理方法,包括:
初始化连接池;
收集自主配置信息;以及
使用自主配置信息来修改连接池;以及
(b)承载该程序的信号承载介质。
14.如权利要求13所述的计算机程序产品,其中该程序包括应用服务器。
15.如权利要求13所述的计算机程序产品,其中信号承载介质从包括以下项目的组中选择:永久性地存储在不可写存储介质中的信息;存储在可写存储介质上的可更改信息;以及通过通信介质传达到计算机的信息。
16.一种部署计算基础结构的方法,包括:
将计算机可读代码集成到计算系统中,其中与计算系统组合的该代码能够执行管理连接池的方法,其包括:
初始化连接池;
收集自主配置信息;以及
使用自主配置信息来修改连接池。
17.如权利要求16所述的方法,还包括:
分析计算系统;
创建响应于该分析的建议;以及
生成实现这些建议的部分的计算机可读代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/961,740 | 2004-10-08 | ||
US10/961,740 US8244865B2 (en) | 2004-10-08 | 2004-10-08 | Method and apparatus for autonomic management of connection pools |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1758606A true CN1758606A (zh) | 2006-04-12 |
CN1758606B CN1758606B (zh) | 2010-06-16 |
Family
ID=36263397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100833092A Active CN1758606B (zh) | 2004-10-08 | 2005-07-12 | 用于自主管理连接池的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8244865B2 (zh) |
CN (1) | CN1758606B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010015162A1 (zh) * | 2008-08-04 | 2010-02-11 | 华为技术有限公司 | 池信息管理方法及其设备 |
CN102033784A (zh) * | 2010-11-18 | 2011-04-27 | 山东中创软件工程股份有限公司 | 一种应用服务器的优化方法及装置 |
CN101482883B (zh) * | 2009-02-12 | 2012-01-11 | 中兴通讯股份有限公司 | 一种特征字库在线更新的实现方法及系统 |
CN101447993B (zh) * | 2008-12-23 | 2012-01-25 | 深圳市金蝶中间件有限公司 | 查找连接池中未释放的连接的方法和装置 |
CN102594728A (zh) * | 2012-02-09 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯方法及系统 |
CN102594727A (zh) * | 2012-02-07 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯系统及其通讯方法 |
CN103559204A (zh) * | 2013-10-08 | 2014-02-05 | 北京奇虎科技有限公司 | 处理数据库操作请求的方法、设备和系统 |
CN104239365A (zh) * | 2013-06-24 | 2014-12-24 | 北京新媒传信科技有限公司 | 一种获取数据库连接池中连接的方法和数据库连接池 |
CN110971703A (zh) * | 2019-12-11 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 基于连接池的服务请求方法、装置、服务器和存储介质 |
CN111767187A (zh) * | 2020-05-19 | 2020-10-13 | 中国建设银行股份有限公司 | 监控jdbc连接池状态的方法及相关设备 |
CN113779119A (zh) * | 2021-01-27 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据库连接池配置方法、装置、系统 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050267875A1 (en) * | 2004-05-28 | 2005-12-01 | Bentley Alfred Y Iii | Autonomic management system |
WO2006107747A1 (en) * | 2005-04-02 | 2006-10-12 | Socket Communications, Inc | Dynamic management of communication ports, devices, and logical connections |
US8943181B2 (en) | 2005-11-29 | 2015-01-27 | Ebay Inc. | Method and system for reducing connections to a database |
US8539504B2 (en) * | 2007-08-30 | 2013-09-17 | International Business Machines Corporation | Heterogeneous architecture in pooling management |
US8881172B2 (en) * | 2008-02-04 | 2014-11-04 | Red Hat, Inc. | Configuration interface manager |
US9282151B2 (en) * | 2008-09-11 | 2016-03-08 | International Business Machines Corporation | Flow control in a distributed environment |
US8886787B2 (en) * | 2009-02-26 | 2014-11-11 | Microsoft Corporation | Notification for a set of sessions using a single call issued from a connection pool |
US8817608B2 (en) | 2010-05-31 | 2014-08-26 | Blackberry Limited | Method and apparatus for customizing a focus inactivity timer based on network watermark conditions |
EP2391174B1 (en) * | 2010-05-31 | 2012-10-24 | Research In Motion Limited | Method and apparatus for maximum tunnel count reset |
US8959235B1 (en) * | 2011-07-05 | 2015-02-17 | Symantec Corporation | Techniques for determining an optimal connection duration for a connection between a client and a server across a network |
JP2014081709A (ja) * | 2012-10-15 | 2014-05-08 | Fujitsu Ltd | リソース管理プログラム、リソース管理方法、及び情報処理装置 |
US10191887B2 (en) * | 2013-07-18 | 2019-01-29 | Microsoft Technology Licensing, Llc | Context affinity in a remote scripting environment |
CN103605727B (zh) * | 2013-11-19 | 2017-07-28 | 浪潮电子信息产业股份有限公司 | 基于连接池的多用户数据库访问高效率优化方法及系统 |
CN104734864B (zh) * | 2013-12-18 | 2018-02-23 | 华为技术有限公司 | 网络中生成宽带网络网关池的方法和装置 |
CN104750546B (zh) * | 2013-12-30 | 2018-01-30 | 中国移动通信集团公司 | 一种调整连接池的方法及系统 |
US9565590B2 (en) * | 2014-01-10 | 2017-02-07 | Qualcomm Incorporated | Systems and methods for modem control based on feedback |
KR101552170B1 (ko) * | 2014-02-27 | 2015-09-11 | 주식회사 티맥스 소프트 | 더미 http를 이용한 연결 관리 방법 및 그 장치 |
US10389652B2 (en) * | 2014-12-19 | 2019-08-20 | International Business Machines Corporation | Connection pool management |
CN106302571B (zh) * | 2015-05-14 | 2020-07-28 | 微软技术许可有限责任公司 | 用于对服务器连接进行维护和高速缓存的系统和方法 |
US10432351B2 (en) * | 2017-10-17 | 2019-10-01 | Aagey Holding, LLC | Computer network system and method to reduce network latency with a pool of ready connections |
US11151150B2 (en) * | 2019-09-13 | 2021-10-19 | Salesforce.Com, Inc. | Adjustable connection pool mechanism |
US11636067B2 (en) | 2019-10-04 | 2023-04-25 | Salesforce.Com, Inc. | Performance measurement mechanism |
US11165857B2 (en) | 2019-10-23 | 2021-11-02 | Salesforce.Com, Inc. | Connection pool anomaly detection mechanism |
US11176155B2 (en) * | 2019-12-13 | 2021-11-16 | Paypal, Inc | Self-adjusting connection pool in a distributed system |
CN112069237B (zh) * | 2020-07-22 | 2023-12-05 | 北京思特奇信息技术股份有限公司 | 一种集群数据库连接池的管理系统 |
US12093156B2 (en) | 2021-10-14 | 2024-09-17 | International Business Machines Corporation | Connection pool management using predicted authentication data |
US11995481B2 (en) * | 2022-08-22 | 2024-05-28 | Sap Se | Efficient connection pooling |
CN116346598B (zh) * | 2023-05-31 | 2023-09-01 | 四川中普盈通科技有限公司 | 一种数据传输控制的现场配置方法及网路接入系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182109B1 (en) * | 1996-03-08 | 2001-01-30 | International Business Machines Corporation | Dynamic execution unit management for high performance user level network server system |
US7337226B2 (en) * | 2002-05-10 | 2008-02-26 | Oracle International Corporation | Method and mechanism for implementing dynamic sizing of session pools |
US8145759B2 (en) * | 2002-11-04 | 2012-03-27 | Oracle America, Inc. | Dynamically configurable resource pool |
CN1317653C (zh) * | 2002-12-25 | 2007-05-23 | 中兴通讯股份有限公司 | 一种数据库连接的高效管理方法 |
US7080126B2 (en) * | 2003-02-28 | 2006-07-18 | Bea Systems, Inc. | Computer program product for performing resource pool maintenance by maintaining resources in several deques |
-
2004
- 2004-10-08 US US10/961,740 patent/US8244865B2/en active Active
-
2005
- 2005-07-12 CN CN2005100833092A patent/CN1758606B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010015162A1 (zh) * | 2008-08-04 | 2010-02-11 | 华为技术有限公司 | 池信息管理方法及其设备 |
CN101447993B (zh) * | 2008-12-23 | 2012-01-25 | 深圳市金蝶中间件有限公司 | 查找连接池中未释放的连接的方法和装置 |
CN101482883B (zh) * | 2009-02-12 | 2012-01-11 | 中兴通讯股份有限公司 | 一种特征字库在线更新的实现方法及系统 |
CN102033784A (zh) * | 2010-11-18 | 2011-04-27 | 山东中创软件工程股份有限公司 | 一种应用服务器的优化方法及装置 |
CN102594727A (zh) * | 2012-02-07 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯系统及其通讯方法 |
CN102594728A (zh) * | 2012-02-09 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯方法及系统 |
CN104239365B (zh) * | 2013-06-24 | 2018-09-04 | 北京新媒传信科技有限公司 | 一种获取数据库连接池中连接的方法和数据库连接池 |
CN104239365A (zh) * | 2013-06-24 | 2014-12-24 | 北京新媒传信科技有限公司 | 一种获取数据库连接池中连接的方法和数据库连接池 |
CN103559204A (zh) * | 2013-10-08 | 2014-02-05 | 北京奇虎科技有限公司 | 处理数据库操作请求的方法、设备和系统 |
CN110971703A (zh) * | 2019-12-11 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 基于连接池的服务请求方法、装置、服务器和存储介质 |
CN111767187A (zh) * | 2020-05-19 | 2020-10-13 | 中国建设银行股份有限公司 | 监控jdbc连接池状态的方法及相关设备 |
CN111767187B (zh) * | 2020-05-19 | 2023-11-14 | 中国建设银行股份有限公司 | 监控jdbc连接池状态的方法及相关设备 |
CN113779119A (zh) * | 2021-01-27 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据库连接池配置方法、装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1758606B (zh) | 2010-06-16 |
US8244865B2 (en) | 2012-08-14 |
US20060095572A1 (en) | 2006-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1758606B (zh) | 用于自主管理连接池的方法和设备 | |
US8984524B2 (en) | System and method of using transaction IDS for managing reservations of compute resources within a compute environment | |
US8763000B2 (en) | System and method for providing intelligent pre-staging of data in a compute environment | |
US9619296B2 (en) | System and method for managing a hybrid compute environment | |
US8285966B2 (en) | Autonomic self-tuning of database management system in dynamic logical partitioning environment | |
CN1210656C (zh) | 用于客户和自适应同步和转换服务器的方法、装置 | |
US7287179B2 (en) | Autonomic failover of grid-based services | |
JP3457334B2 (ja) | スレッド管理方法及びシステム | |
CN100465879C (zh) | 在计算网格中动态建立应用环境的系统和方法 | |
EP2108228B1 (en) | Method, apparatus, and computer program for data upload in a computing system | |
US20070165525A1 (en) | Computer program, method, and apparatus for managing reservation of it resources | |
US20110258248A1 (en) | Elastic Management of Compute Resources Between a Web Server and an On-Demand Compute Environment | |
AU2004266017B2 (en) | Hierarchical management of the dynamic allocation of resources in a multi-node system | |
US7500080B2 (en) | Facilitating non-contiguous allocation of a large object within a java heap | |
CA2697540A1 (en) | Executing programs based on user-specified constraints | |
EP1649370A1 (en) | Install-run-remove mechanism | |
US20050172029A1 (en) | Method and apparatus for managing a connection pool using heuristic information | |
KR20090063122A (ko) | 다중 시스템 워크로드 관리 시스템 및 방법 | |
US20030005078A1 (en) | Apparatus and method for providing user-requested content through an alternate network service | |
CN1158617C (zh) | 一种本地无操作系统的网络计算机 | |
US11727003B2 (en) | Scaling query processing resources for efficient utilization and performance | |
CN112445590A (zh) | 一种计算资源接入及调度系统和方法 | |
CN1187695C (zh) | 服务器的数据快取系统及其数据更新方法 | |
CN118838681A (zh) | 一种容器化工作流任务资源调度系统及方法 | |
CN1172544C (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 |