db2日志报错 Bad Queue Handle

近日巡检发现db2diag.log经常有类似如下报错,

2015-07-01-10.27.35.993282+480 E4715A711          LEVEL: Error (OS)
PID     : 3489924              TID  : 1           PROC : db2bp
INSTANCE: db2inst1             NODE : 000
APPID   : *LOCAL.db2inst1.150701022435
EDUID   : 1
FUNCTION: DB2 UDB, oper system services, sqlowqueInternal, probe:40
MESSAGE : ZRC=0x870F003E=-2029060034=SQLO_QUE_BAD_HANDLE "Bad Queue Handle"
          DIA8555C An invalid message queue handle was encountered.
CALLED  : OS, -, write
OSERR   : EINVAL (22) "A system call received a parameter that is not valid."
DATA #1 : system V message queue identifier., PD_TYPE_SYSV_QUEUE_ID, 4 bytes
0x0EA000E8
DATA #2 : Pointer, 8 bytes
0x000000011004dda8
DATA #3 : unsigned integer, 8 bytes
288

以前只知道是操作系统层面报错,但是具体是什么原因导致的,一直未确定。后经在网上论坛查找发现原因,竟然是在db2命令行后面加了管道符“|”,而管道符后面的命令打错了就会出现这种错误;
错误命令类似如下:

db2 "select * from table"|mor
  • 本来是打算使用操作系统命令more来显示查询结果,但是将more少打一个字符,照成了如上的报错。纠结到此终于是有了个结果,颇感欣慰。

本来要解决的问题就是,不想让这种数据库管理人员操作造成的操作信息记录在数据库服务器的日志里。那么通过一个客户端服务器,将数据库编目过去进行操作,即使是出现类似的操作错误信息,也会记录在客户端client服务器的实例日志中。

你可能感兴趣的:(DB2)