此文章主要向大家描述的是DB2数据库代理与连接常见问题分析和优化,假如你在实际操作中遇到DB2数据库代理与连接常见问题分析和优,但你却不知道对其如何正确的解决,那么以下的文章对你而言一定是良师益友。
连接超限问题
在 DB2 V8,V9.1 中所设置的 MAX_CONNECTIONS 或 MAXAGENTS 值比较小时,如果出现了外部连接数过多就会出现错误。错误如清单 1 所示。
清单 1. db2diag.log 诊断日志
- 2008-01-15-14.30.13.090289-360 I12983210A1195 LEVEL: Info
- PID : 762076 TID : 772 PROC : db2acd
- INSTANCE: db2inst1 NODE : 000
- APPID : *LOCAL.db2inst1.080115203015
- EDUID : 772 EDUNAME: db2acd
- FUNCTION: DB2 UDB, DRDA Communication Manager, sqljcReceive, probe:30
- MESSAGE : ZRC=0x8136001C=-2127167460=SQLZ_RC_NO_CONNECTION, SQLT_SQLJC
- "No connection"
- DATA #1 : String, 11 bytes
- CCI Error:
- DATA #2 : unsigned integer, 8 bytes
- ...
这时可以通过下面命令来查看当前的连接数:
清单 2. 查看当前的连接数
- $ db2 list applications
- Auth Id Application Appl. Application Id
- DB # of
- Name Handle
- Name Agents
- DB2INST1 db2taskd 583 *LOCAL.db2inst1.080112150958
- SVT_DB 1
- DB2INST1 db2stmm 582 *LOCAL.db2inst1.080112150957
- SVT_DB 1
- DB2INST1 Java 592 *LOCAL.db2inst1.080115201505
- SVT_DB 1
- DB2INST1 java 572 *LOCAL.db2inst1.080115201445
- SVT_DB 1
- DB2INST1 java 585 *LOCAL.db2inst1.080115201458
- SVT_DB 1
- DB2INST1 java 565 *LOCAL.db2inst1.080115201437
- SVT_DB 1
- DB2INST1 java 584 *LOCAL.db2inst1.080115201457
- SVT_DB 1
- DB2INST1 java 590 *LOCAL.db2inst1.080115201503
- SVT_DB 1
- DB2INST1 db2bp 591 *LOCAL.db2inst1.080115201502
- ...
可以查看这时的连接数与 MAX_CONNECTIONS 的值的比较,从而做出调整。这时应当注意,在 v9.1 或 v9.5 环境下,有两个服务器内部的特殊应用 db2stmm 和 db2taskd 不应算作外部连接。db2stmm 是用来管理内存自动调节特性的DB2数据库代理,db2taskd 是用来分配数据库后台任务的代理。
示例中的 java 代表外部连接来自 JAVA 应用程序。db2bp 代表来自 CLP(DB2 命令窗口 ) 的一个连接。可以看到这些连接都连到了数据库 SVT_DB 上。
【编辑推荐】