今天遇到一用户,他们想通过创建并设置"CONNECTPROC"去记录每个连接进来的应用程序名。dbcfg里面有个参数叫"CONNECTPROC",它可以设置成一个存储过程,设置后,每次数据库连接进来都会调用这个存储过程一次:
$db2gtdbcfgforsamplgrp-iproc
Connctprocdur(CONNECT_PROC)=
该用户定义了一个储存过程,改过程通过下面的语句获取application_nam并把相关记录插入某表:
SETAPPLNAME=(SELECTAPPLICATION_NAMEFROMTABLE(MON_GET_CONNECTION(CAST(NULLASBIGINT),-1))WHEREAPPLICATION_ID=APPLICATION_ID());
但是,部署好测试过程中遇到了问题。当并发连接数增大时,应用端遇到了错误:
[IBM][CLIDrivr]SQLC沒有足夠系統資源以處理要求。無法處理該要求。SQLSTATE=
db2diag.log显示DB2_FMP_COMM_HEAPSZ不足:
-12-19-14.03.06.+IALEVEL:ErrorPID:TID:PROC:db2sysc0INSTANCE:db2inst1NODE:DB:SAMPLEAPPHDL:0-APPID:10.37..39..AUTHID:DB2INST1EDUID:EDUNAME:db2agnt(SAMPLE)0FUNCTION:DB2UDB,routin_infrastructur,sqlrGtFMPIPC,prob:50MESSAGE:InsufficintmmoryavailablforIPC北京哪家医院治白癜风中科白癜风公益惠民活动