通过执行DB2 GET DBM CFG可以看到以下几个和代理相关的实例参数:MAXAGENTS、NUM_POOLAGENTS、NUM_INITAGENTS、 MAX_COORDAGENTS、MAX_CONNECTIONS、MAXCAGENTS。下面对它们做一下简要介绍:

[b]MAXAGENTS[/b]:这个参数为当前实例中全部代理的最大数量,包括协调代理、空闲代理和子代理。不过这个参数在DB2 V9.5中已经不再使用了。

[b]NUM_POOLAGENTS[/b]:这个参数用来控制代理池中的空闲代理的数量。当活动的代理完成工作返回代理池变成空闲代理时,如果数量超过了这个参数,那么这个代理就会自动销毁。
注意:
在连接集中器激活的情况下,代理池中的空闲代理数目在某一时刻可能会超过NUM_POOLAGENTS的大小,以应对突发的高密度连接。

[b]NUM_INITAGENTS[/b]:这个参数就是前面提到的在实例刚刚启动时便生成的一些空闲代理的数目。这是为了提高性能,因为这些代理可以随时变成协调代理去应答外部应用请求,而不用临时再生成新的代理。

[b]MAX_COORDAGENTS[/b]:最大协调代理进程数配置参数,此参数用来限制协调代理进程数或控制数据库中的工作负载。(也就是内存分配之类的)这个参数决定了在实例中在同一时刻最大的协调代理的数目(在多分区环境指的是一个节点上的最大协调代理数)。

[b]MAX_CONNECTIONS[/b]:最大客户机连接数配置参数,
此参数控制可以与实例相连的最大应用程序数。这个参数决定了允许连接至一个实例的最大的连接数 (在多分区环境指的是一个节点上的最大连接数)。

[b]MAXCAGENT[/b]:最大代理程序数配置参数,此参数指示可在任何给定时间接受应用程序请求的数据库管理器代理程序(无论是协调代理进程还是子代理进程)的最大数目。这个参数决定了实例中的令牌(tokern)的数量,一个协调代理只有得到了令牌(tokern)才能去服务于应用程序。当没有得到令牌时,协调代理只能等候。不过这个参数在DB2 V9.5中也已经取消了。

还有一个和连接相关的DB2配置参数-- MAXAPPLS,可以通过'db2 get db cfg for database_name'得到,这个参数决定了同时连接至一个数据库的最大连接数。在一个实例下的所有数据库的MAXAPPLS值之和不能超过实例参数MAX_CONNECTIONS。

[b]MAXAPPLS[/b]: 最大活动应用程序数配置参数,此参数指定可与一个数据库连接(本地和远程)的并发应用程序的最大数目。因为每个与数据库连接的应用程序都导致分配一些专用内存,所以允许大量并发应用程序可能将使用更多内存。
默认情况下, max_connections = max_coordagents = maxagents. 而按照官方的要求,maxagents >= 所有库的maxappls之和。因此我们先看看maxappls应该怎么配置:

官方公式:

maxappls = (number of connections set for the data source + number of connections in the session manager) multiplied by the number of clones.




数据源最大连接数可以在WAS上查到, 而session manager最大连接数也可以在 WAS控制台——应用程序服务器——(server x)——已安装的应用程序——(应用程序名称)——会话管理里面看到;



因而我们可以得到每个库的合理的maxappls.进而 maxagents就必须配置得比这些数字的总和还稍大一些。默认max_coordagents和maxagents可以配置的一样。



而max_connections和max_coordagents之间的数值大小会影响到一种机制的启用——“集中器”。当 max_connections配置得比max_coordagents大的时候(默认相等),“集中器”被自动启用。个人理解,集中器的作用就是将每个应用程序所使用的服务器资源减少,直到DB2 Connect网关可以处理超过10000个客户机连接。这时候,就可能有比协调代理进程(coordagents)更多的客户机应用连接,DB2就会产生一个类似于队列的机制,超额的应用连接请求将被置为不活动状态,当有空闲的协调代理进程出现的时候,才转入活动状态。



Please update DB2 MAXAPPLS and MAXAGENTS parameters using the below two command. ([color=green][b]If your db2 is the above DB2 V9.5, you should not execute the second command as the database can adjust automatically[/b][/color])



1. db2 update db cfg for ${database_name} using MAXAPPLS 200
2. db2 -v update dbm cfg using MAXAGENTS 350
Please restart your DB2 in order to have the update take effect:
      db2 terminate
      db2 force applications all
      db2stop
      db2start



Please replace the ${database_name} to your db2 instance.