DB2的Agent(代理)

来源:互联网 发布:天津淘宝模特好少啊 编辑:程序博客网 时间:2024/06/15 04:29

当应用程序连接DB2数据库时,DB2会对所有连接(本地的和远程的)请求分配代理程序。代理程序代表应用程序执行所有数据库请求。

 

在V9.5之前的UNIX或Linux平台上用ps -ef命令,可以看到下面的进程名:

     db2agent                       协调代理程序

     db2agentg                     DRDA应用程序请求器的网关代理程序

     db2agnsc                       并行恢复代理程序

     db2agnta                       空闲的子代理程序,与某个协调代理程序关联,但无任何任务

     db2agntp                       子代理程序,当前为与之关联的协调代理执行工作

这些进程都是DB2的代理程序,它们为应用程序服务。

 

从工作状态上来分,运行中的DB2代理程序,大概分三种:

      空闲代理:没有任何任务,不服务任何的应用程序

      协调代理:直接面对一个应用程序提供服务

      子代理:   面对协调代理,执行来自于协调代理分派的任务(只在V9.5之前的多分区或节点内并行的环境下存在)

 

与代理程序相关的配置参数

      MAXAGENTS                   实例级               实例中全部代理的最大数量

      NUM_POOLAGENTS       实例级               代理池中空闲代理的最大数量,超过该数值时,空闲代理会被销毁,回收系统资源

      NUM_INITAGENTS         实例级               实例启动时创建的空闲代理数

      MAX_COORDAGENTS     实例级               实例中一个节点内最大协调代理数

      MAX_CONNECTIONS      实例级               实例中一个节点内并存的最大连接数

      MAX_APPLS                    数据库级            一个数据库中并存的最大连接数

      MAXCAGENT                    实例级              实例中的token数,也就是可同时工作的协调代理数

 

DB2代理的概念和预创建进程的TCP服务器原理类似。在DB2实例启动时会预先启动一定数量(NUM_INITAGENTS)的代理程序。当这些预启动的代理程序都分配给不同的应用程序连接时,新的应用程序连接进来或需要新的代理程序时,DB2就要创建新的代理程序,其中协调代理程序的数量由MAX_COORDAGENTS限制。全部的代理程序(空闲+协调+子代理)数量不能超过MAXAGENTS,否则DB2会报错(db2diag.log)。可以同时连接到一个实例或节点的应用程序连接由MAX_CONNECTIONS限制;可以同时连接到一个实例中某个数据库的应用程序连接由MAX_APPLS限制。一个实例下的所有数据库的MAX_APPLS之和不能超过该实例的MAX_CONNECTIONS。在所有的协调代理程序中,最多只有MAXCAGENT个可以执行任务,其他的需要等待。

 

这些与代理程序相关的配置参数,可以用于控制应用程序对数据库产生的负载。

 

0 0
原创粉丝点击