简介
连接集中器是 IBM DB2 Universal Database Version 8.0 (DB2 UDB) 中的一个新特性,用于处理大量的入站连接,这些连接具有非常短暂的事务,但是却有相对较大的延迟。该特性具有以下优点:
系统资源不被不执行任何工作的连接(空闲连接)所占有。
由于多路复用的体系架构,代理之间可以相互切换以服务许多客户机应用程序。
服务器资源限制是基于实际的事务负载,而不是基于连接的数量。
例如,假设您有这样一个 Web 应用程序,其中的用户连接到数据库,而不是针对表记录执行大量的事务。连接集中器允许用户看起来是连接到数据库的,而实际的数据库代理仍然可以服务入站请求。
下面是一些可伸缩性和性能增强:
相对于运行相同负载的其他系统来说,需要更少的系统资源。
控制结构被分为应用程序级和代理级数据。
每个连接需要的内存(平均来说)和进程更少。
启用连接集中器
在数据库管理器配置中设置以下参数以启用连接集中器:
max_connections 的值必须大于 max_coordagents 的值,以打开连接集中器。
默认情况下,max_connections 参数等于 max_coordagents,因而连接集中器是不启用的。该参数控制允许连接到实例的应用程序的最大数量。范围是 [-1; max_coordagents -- 64000]。
max_coordagents 参数是可以存在于实例中的协调代理的最大数量。每个本地或远程应用程序事务都由一个协调代理来服务。
当连接集中器是启用的时,max_connections 限制用户连接的数量,max_coordagents 限制服务于事务的代理的数量。
连接集中器的工作原理
DB2 UDB 使用一个数据库代理来服务连接请求。每个用户连接分配一个数据库代理。代理存在于连接的整个生命周期,与连接上运行的工作负载无关。一旦启用了连接集中器,数据库代理就只在 SQL 事务期间是 “热的”。在事务边界(提交或回滚)的末尾,数据库代理与应用程序分离。然后代理是自由的,可以服务于来自其他应用程序的其他事务请求。
图 1. 连接集中器体系架构