- 浏览: 387351 次
文章分类
最新评论
-
小尜:
写的很详细,也很简单,一看就懂。多谢啦。
关于工厂模式和spring的IOC -
fjjiaboming:
代码排版!!!!!
JDBC事务和JTA (XA)事务 -
fjjiaboming:
排版有问题吗? 望交流.
做人有三个层次 -
fjjiaboming:
看来数据库连接池 必须用JNDI 注册在容器 , 对吗?
JDBC事务和JTA (XA)事务 -
fd1803:
SSL工作原理:http://www.wosign.com/B ...
SSL(Server Socket Layer)简介
补充说明:对于第一个错误,如果你确信你的系统没有使用存储过程,那就不需要修改DB2_FPM_COMM_HEAPSZ这个变量。这个好像是和存储过程有关的。你只需要下面修改的2个变量就可以了,以前 我遇到这个错误时没有搞明白了,也修改了上面那个db2注册变量(其实是不用修改的,我那时也没有用到存储过程,过阵子再来看时才明白)。报这个错误主要是你的sql语句太长了,在应用程序和数据库代理程序传递的时候,ASLHEAPSZ这个缓冲区不够大,增加点就可以了。
关于第二个处理方法:可以按照作者给的值512,那个是2兆,初始值最大为256k,我们可以把他设置为1兆,不知道作者为什么要搞个2兆,当时出问题时我没搞懂就改这个参数了,现在在看看发现好像可以先改为1兆的(这2个参数主要都是sql语句太大的原因。)
错误信息:
ADM11003E DB2 failed to create the memory segment used for communication with fenced routines. If restarting DB2, ensure that no db2fmp processes are active on the instance prior to start. Otherwise,you can adjust the value through the FMP_COMM_HEAPSZ registry variable, or you can decrease the value of ASLHEAPSZ in the database manager configuration.
ADM11003E DB2 未能创建用于与受防护的例程通信的内存段。如果正在重新启动 DB2,则确保在启动之前没有 db2fmp 进程在实例上活动。否则,可通过 DB2_FMP_COMM_HEAPSZ 注册表变量调整值,也可以减小数据库管理器配置中的 ASLHEAPSZ 值。
ADM0501C A stack overflow exception has occurred. The DB2 instance has terminated abnormally. To remedy this problem, you may increase the default stack size for db2syscs.exe using the db2hdr utility as follows: db2hdr \sqllib\bin\db2syscs.exe /s:<stackreserve></stackreserve>[,<stackcommit></stackcommit>] Note that increasing the default stack size will consume virtual memory space and may reduce the maximum number of concurrent connections. Contact IBM Support for further assistance.
ADM0501C 发生了堆栈溢出异常。DB2 实例已异常终止。要解决此问题,可以按如下所示使用 db2hdr 实用程序增加 db2syscs.exe 的缺省堆栈大小:db2hdr \sqllib\bin\db2syscs.exe /s:<stackreserve></stackreserve>[,<stackcommit></stackcommit>] 注意,增加缺省堆栈大小将消耗虚拟内存空间并且可能减少并发连接的最大数目
在出现上述错误后,我们的连接程序在操作数据库是总是报:
SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:"SOCKETS"。检测到错误的位置:"127.0.0.1"。检测到错误的通信函数:"connect"。协议特定的错误代码:"10061"、"*"、"*"。 SQLSTATE=08001
通过在DB2的帮助中心查询后:都是由于配置引起的错误。
针对错误ADM11003E在网上可以找到相关的信息,但是没有明确的指出解决的办法,但是知道了可以在系统崩溃以后通过杀死db2fmp进程后,DB2数据库可以重新启动。
我解决问题的方法是进行了下面俩项设置:
db2 update dbm cfg USING ASLHEAPSZ 20 IMMEDIATE
db2 update dbm cfg USING query_heap_sz 4000 IMMEDIATE
后经过跟踪,基本上没有再发生这个问题。
针对错误ADM0501C我在网上找到了一个很重要的资料,详细请见附件一,这个错误是由在我们进行复杂的查询时,系统报错,说我们的每个查询引起了一长串的RDS UCINTFC: pStatementText =DATA #1 : Hexdump, 3534 bytes从而数据库自动关闭了,我解决这个问题时只修改了一个参数配置:
db2 update dbm cfg USING agent_stack_sz 512 IMMEDIATE
后经过跟踪,基本上没有再发生这个问题。
以上是我在使用DB2遇到的一点问题的处理心得,仅供大家参考。
至于怎么执行DB2的命令,就是在运行了执行 db2cmd 就可以在启动的命令窗体执行命令了,详细资料请参考IBM Support网站http://publib.boulder.ibm.com/infocenter/db2help/index.jsp
蚕豆:2006-6
附件1:
When dealing with stack overflow scenarios where the stack size needs to be increased, the executable of the header should only be modified if virtual address space is a concern, i.e. if there are many agents / databases living within an instance. Otherwise, it is sufficient to increase agent_stack_sz to something above 256K, eg. 512K. Note however, that increasing agent_stack_sz actually commits the space, i.e. uses real memory.
The PROBLEM::
-by default a stack space of 256K is reserved for each thread in db2syscs.exe regardless of agent_stack_sz. This information is stored in the header of executable. The Windows default is 1MB, and we override this to conserve virtual address space. AGENT_STACK_SZ is only the committed stack - it does not represent the limit.
-If we set agent_stack_sz to 512K, the reserved stack space is actually 1MB (the granularity for reserved stack space when specified on CreateThread is 256K -> 1MB -> 2MB -> 4MB)
-This means that if we only really need 512K, we are wasting 0.5MB of address space per agent, and this can add up - All resources for databases in an instance and ALL threads (agents,prefetchers, etc.) must live within the same 2GB address space on 32-bit Windows (3GB for NT / Win2K Advanced Server / Datacenter with /3GB switch in boot.ini).
There are two ways to increase the stack size. It is not necessary to do both.
Note the committed stack will be the value of agent_stack_sz regardless,
i.e. the committed memory will be max(agent_stack_sz, stack actually used).
1. modify the header of the executable (db2hdr will do this) - this is the default reserved stack space per thread. This affects ALL threads.
2. increase agent stack size. This only affects AGENT threads. This is the simplest and is the preferred method.
Disadvantages to (1):
- must be repeated after any upgrades
- increases stack space for *ALL* threads, not just agents, which may be significant if there are a large number of prefetchers & pagecleaners. This increases use of virtual address space.
Advantages to (1):
- more granularity - saves virtual address space by requiring less stack space for agents
Disadvantages to (2):
- wastes virtual address space by reserving excess stack space which may be unacceptable if there are a large number of agents and/or address space is otherwise constrained .
Advantages to (2):
- nothing to ship, supported and documented, change carries through upgrades
- affects only agents, which usually need the extra stack space during statement compilation
SUMMARY: Use agent_stack_sz to increase stack space unless there is a concern with virtual address space.
Examples. (assuming 2GB address space) Monitor Virtual bytes using perfmon.
1. 10 agents max - increase agent_stack_sz
2. 100 agents, 1 GB current private bytes max for db2syscs.exe - increase agent_stack_sz
3. 100 agents, 1.5GB current private bytes max for db2syscs.exe - modify the header
4. 500 agents, 1GB, current private bytes max for db2syscs.exe - modify the header
IMPORTANT:
when setting agent_stack_sz , set the value to be 1 4K page less than the desired maximum.
Windows adds an additional "guard page" to the specified size.
i.e. setting a value of 256K will mean 260K, and we jump up to the next level of granularity for reserved stack, eg. 1MB.
Examples:
agent_stack_sz <= 63 to stay within the range of reserving 256K of stack space.
agent_stack_sz <= 255 to stay withini the range of reserving 1MB of stack space
agent_stack_sz <= ( 1 4K page less than the default reserved stack space set with db2hdr )
SIMPLE FIX: set agent_stack_sz to 64, which is the minimum value which will increase the reserved stack to 1MB.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=868931
发表评论
-
考试成绩
2011-03-19 11:56 0uuuuuuuu -
db2cat 命令
2009-06-24 21:53 1972今天无意看到一个命令:db2cat(系统目录分析). 现把测 ... -
关于db2分区特性的一点心得
2008-10-29 00:31 2436最近了解了下db2的分区特性,发现不是想象中的那样强大,而且 ... -
痛饮咖啡,熟读手册,方可为DBA
2008-10-25 16:09 1239嫦娥上天了。为了庆祝 ... -
关于db2diag.log里面ZRC和ecf的说明
2008-09-28 16:41 4961今天同事给了个db2diag。log文件给分析下 ,对其中的e ... -
关于db2dart dbname /dhwm /tsi 的测试
2008-08-08 01:25 1910下面是db2dart database /dhwm /tsi ... -
db2 初级证书:730.731
2008-07-01 21:29 1345一个偶然的机会,获得了 这2个证书.要学的很还多 db os ... -
关于db2的OLAP的一些函数
2007-07-21 17:00 1414看到人家说OLAP函数的强大,到网上搜了一般。看了下面2个文章 ... -
db2学习笔记(二)
2007-07-15 21:22 2180表空间方面: 1.创建数据库的时候,默认会有3个页大小为4k的 ... -
创新性应用-王涛 (关于db2)转载
2007-07-14 15:09 1307原文: http://blog.csdn.net/best_d ... -
DB2资料(REDBOOK) 转载
2007-07-11 15:16 2459原文为:http://bbs.chinaunix.net/ar ... -
不管怎么强调sortheap的重要性都不为过
2007-07-10 00:14 2825今天看了一篇文章,觉得不管怎么强调sortheap的重要性都不 ... -
db2学习代码例子(代码为转载网上)
2007-07-05 14:31 2216搞db2也2年了,一直都没搞过存储过程,最近想学下,到网上 ... -
DB2SQL存储过程语法官方权威指南(翻译)(转载)
2007-07-04 21:07 2455这个还不错,网上这个文章太多了 : 背景:DB2的数据库性能很 ... -
DB2 存储过程开发最佳实践(转载)
2007-07-04 17:00 6257这个文章对初学者理解 ... -
java调用db2存储过程例子(新手用,熟悉的就不用看了)
2007-07-04 14:15 10989搜索java 调用db2(版本为8.2)存储过程 没几个文章能 ... -
最近db2学习笔记(06.29--07.03)
2007-07-03 20:03 4205有点乱 ,我认为重要的 ... -
JDBC的隔离级别研究
2007-04-03 18:37 2333在通过JDBC对数据库进行并发访问时,为了解决并发之间的锁的控 ... -
在JBoss中配置DB2的数据源
2007-03-30 17:34 2448在用myeclipse+db2学习hibernate时,老报 ... -
编写高性能的mysql语法
2007-03-27 15:18 1228...
相关推荐
### Db2数据库在Linux下的安装和配置 #### 一、Db2数据库的安装与配置步骤详解 ##### 1. 用户身份准备 - **步骤**: 以`root`用户登录Linux系统。 - **目的**: `root`用户具有最高权限,便于进行安装前的准备工作。...
"DB2数据库创建存储过程时遇到的错误" DB2数据库创建存储过程时遇到的错误是指在Unix操作系统下,使用db2命令创建存储过程失败的情况。这种情况下,查看db2diag.log文件会发现类似于errno: 0x0FFFFFFFFFFF7AF0 : 0x...
### DB2数据库在Linux系统下的安装教程 #### 一、环境准备与检查 在开始安装DB2数据库之前,首先需要确保Linux系统的环境符合DB2的安装要求。以下是一些基本的环境检查步骤: 1. **确认Linux版本**: - 通过`...
### DB2数据库安装知识点 #### 一、DB2 Express-C 的下载与安装 - **下载地址**:IBM 官方提供了DB2 Express-C版本供免费下载使用,具体地址为[http://www.ibm.com/developerworks/cn/downloads/im/udbexp/]...
【Db2数据库在Linux下的安装和配置】 Db2是由IBM开发的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。在Linux环境下安装和配置Db2数据库涉及一系列步骤,包括安装、用户和权限配置、创建数据库实例、...
### DB2数据库设计与管理核心知识点解析 #### 实验概览 本次实验旨在深入探索IBM DB2数据库管理系统的核心功能与操作流程,通过一系列实践任务,使学习者掌握数据库设计、管理与维护的关键技能。实验围绕数据库创建...
产品名: "DB2 企业服务器版" ...DB2 数据库分区: "未许可" DB2 性能优化 ESE: "已许可" DB2 存储器优化: "已许可" DB2 高级访问控制: "已许可" DB2 地理数据管理: "已许可" IBM 同构复制 ESE: "已许可
本实验主要围绕DB2数据库系统的用户化、实例创建、系统管理员用户组建立以及环境变量的配置展开,旨在让学生熟悉DB2数据库管理系统的基本操作和管理。 首先,实验的【第一部分】是创建新的用户ID。在Windows操作...
通过这次实验,不仅能够掌握DB2数据库的基本管理,还能够理解数据库环境配置的重要性,这对于理解和应用数据库管理系统至关重要。这些技能对于未来从事数据库管理、开发或运维工作的人来说是非常有价值的。
### SAP ADM535: 数据库管理 - DB2 UDB for Unix 和 Windows #### 一、课程概述 SAP ADM535 是一门专注于数据库管理的专业课程,特别针对 DB2 Universal Database (UDB) 在 Unix 和 Windows 操作系统上的应用进行...
DB2 是一种关系数据库管理系统,提供了强大的数据存储和管理功能。本篇文章将总结 DB2 的日常维护知识点,包括 DB2 产品的级别、连接到 DB2 数据库的产品、DB2 支持的通讯协议、DB2 客户端产品、数据库安装、DB2 ...
emal:/opt/ibm/db2/V9.7/adm # db2licm -a ../license/db2ese_c.lic LIC1402I License added successfully. LIC1426I This product is now licensed for use as outlined in your License Agreement. USE OF THE ...
在Linux环境下安装DB2数据库是一个涉及多个步骤的过程,需要对操作系统管理和数据库系统有一定的了解。以下是对整个安装过程的详细解释: 首先,为了安全性和权限管理,DB2的安装需要创建特定的用户组和用户。在...
在本教程中,我们将深入探讨如何在CentOS操作系统上安装IBM的DB2数据库。DB2是一款功能强大的关系型数据库管理系统,广泛应用于企业级应用。在Linux环境下,特别是CentOS这样的服务器操作系统,DB2提供了稳定且高效...
根据提供的文件信息,我们可以推断出“SAP Basis ADM 525”是一门关于SAP NetWeaver在DB2 UDB for iSeries环境下的数据库管理课程。下面将基于文件中的部分信息,提取并总结相关的知识点。 ### SAP Basis ADM 525 ...
- **IBM**: DB2数据库管理系统、AIX操作系统、zSeries服务器系列等。 - **Oracle**: Oracle数据库系统。 - **MySQL AB**: MaxDB数据库系统的版权所有者。 这些声明不仅体现了SAP对知识产权的尊重,同时也反映了其...