设为首页 收藏本站
查看: 1123|回复: 0

[经验分享] 访问db2数据库 ,并发,系统进程超出限制

[复制链接]

尚未签到

发表于 2016-11-16 09:55:54 | 显示全部楼层 |阅读模式
最近遇到一个问题,远程连接db2数据库,shell程序同时访问db2数据库的同一个表,但是返回的值是

DB21017E The Command Line Processor encountered a system error with the

front-end process output queue. Reason code = -2029060029.



系统报这个错。经过查资料得知,这是一个系统问题,系统进程超出的限制



Reason code = -2029060029.

SQLO_QUE_EXCEED = maximum system queue limit exceeded.

建议修改内核参数 msgmni 为一个合适的值

建议先修改为 16384 再进行测试
管理员登陆,编辑数据库端和shell程序端的参数
vi /etc/sysctl.conf
加入 kernel.msgmni = 16384
保存
执行 sysctl -p 使之生效

OK 以上配置完成后,错误解决了!

------------------------------------------------------------------------------------

下面介绍一下配置信息





修改内核参数(Linux)

在安装 DB2® 数据库系统之前,应更新 Linux® 内核参数。当运行 DB2 数据库系统时,Linux 上特殊内核参数的缺省值可能不能满足要求。

必须具有 root 用户权限才能修改内核参数。

要在 Red Hat 和 SUSE Linux 上更新内核参数:
运行 ipcs -l 命令
分析输出以确定是否需要对系统进行任何更改。 在 // 后面添加了注释以指出参数名。
3.  # ipcs -l  4.     5.        ------ Shared Memory Limits --------  6.        max number of segments = 4096               // SHMMNI   7.        max seg size (kbytes) = 32768               // SHMMAX  8.        max total shared memory (kbytes) = 8388608  // SHMALL  9.        min seg size (bytes) = 1  10.   11.      ------ Semaphore Limits --------  12.      max number of arrays = 1024                 // SEMMNI  13.      max semaphores per array = 250              // SEMMSL  14.      max semaphores system wide = 256000         // SEMMNS  15.      max ops per semop call = 32                 // SEMOPM  16.      semaphore max value = 32767  17.   18.      ------ Messages: Limits --------  19.      max queues system wide = 1024               // MSGMNI  20.      max size of message (bytes) = 65536         // MSGMAX        default max size of queue (bytes) = 65536    // MSGMNB  ·从 Shared Memory Limits 的第一部分开始,SHMMAX 和 SHMALL 就是需要考虑的参数。SHMMAX 是 Linux 系统上共享内存段的最大大小,而 SHMALL 是系统上可分配的共享内存页的最大大小。
·建议将 SHMMAX 值设置为与系统上物理内存量相等。然而,x86 系统上需要的最小值为 268435456(256 MB),而在 64 位系统上,该值将为 1073741824(1GB)。
·缺省情况下,SHMALL 设置为 8GB(8388608KB = 8GB)。如果您具有的物理内存超过此值,并且要将该物理内存用于 DB2,那么应将此参数增大到大约是计算机的物理内存的 90%。例如,假定计算机系统上有 16GB 内存,并将这些内存主要用于 DB2,那么 SHMALL 应该设置为 3774873(16GB 的 90% 为 14.4GB;将 14.4GB 除以 4KB(这是基页大小)得到的结果为 3774873)。IPCS 输出已将 SHMALL 转换为千字节(KB)。这是因为内核需要将此值作为页数。

·下一节说明可用于操作系统的信号量。内核参数 sem 由以下四个标记组成:SEMMSL、SEMMNS、SEMOPM 和 SEMMNI。SEMMNS 是 SEMMSL 乘以 SEMMNI 的结果。数据库管理器要求根据需要增大数组的数目(SEMMNI)。通常,SEMMNI 应两倍于系统上预期的最大代理程序数乘以数据库服务器计算机上的逻辑分区数再加上数据库服务器计算机上的本地应用程序连接数。
·第三部分说明了系统上的消息。
·MSGMNI 将影响可以启动的代理进程数,MSGMAX 将影响一个队列中可以发送的消息大小,而 MSGMNB 将影响队列大小。
·应将 MSGMAX 更改为 64KB(即,65535 个字节),MSGMNB 应增大为 65535。


要修改这些内核参数,请编辑 /etc/sysctl.conf 文件。如果此文件不存在,那么应创建它。 下列各行是该文件中应包含的内容的示例:
22.kernel.sem=250 256000 32 1024  23.#示例:用于 64 位系统的 shmmax  24.kernel.shmmax=1073741824   25.#示例:用于 16GB 内存的 90% 的 shmall  26.kernel.shmall=3774873    27.kernel.msgmax=65535  kernel.msgmnb=65535  运行 sysctl 时附带 -p 参数,以从缺省文件 /etc/sysctl.conf 中装入 sysctl 设置:
sysctl -p  要使更改在每次重新引导之后生效:
·(SUSE Linux)激活 boot.sysctl
·(Red Hat)rc.sysinit 初始化脚本将自动读取 /etc/sysctl.conf 文件

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301059-1-1.html 上篇帖子: DB2 XML 编程,第 1 部分: 理解 XML 数据模型 下篇帖子: DB2数据库常用命令集:部分数据库维护命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表