728x90

2011-10-11-15.17.17.759485+540 E8925734A426       LEVEL: Error

PID     : 18152                TID  : 1           PROC : db2agent (******) 0

INSTANCE: ***                  NODE : 000         DB   : ******

APPHDL  : 0-2162               APPID: *LOCAL.***.111107141109

AUTHID  : ***

FUNCTION: DB2 UDB, net8 wrapper, Net8_Connection::xa_open, probe:450

MESSAGE : ZRC=0xFFFFFFFD=-3

DATA #1 : String, 16 bytes

xa_open() Failed




http://www-01.ibm.com/support/docview.wss?uid=swg1IZ19101

http://www-01.ibm.com/support/docview.wss?uid=swg1IZ20573

https://www-304.ibm.com/support/docview.wss?uid=swg1IZ19743

728x90
728x90


Question

This document lists some SQL30081N TCP/IP communication protocol errors and recommended action plans associated with them.

Cause

The protocol error is dependent on the platform. Each protocol error has its own definition and corresponding action plan.

Answer

Problem Details
The SQL30081N error has the following format:

SQL30081N A communication error has been detected. Communication protocol being used:protocol . Communication API being used: interface . Location where the error was detected:location . Communication function detecting the error: function . Protocol specific error code(s): rc1, rc2 , rc3 . 

For example:
SQL30081N A communication error has been detected. Communication protocol
being used: "TCP/IP". Communication API being used: "SOCKETS". Location
where the error was detected: "". Communication function detecting the error: "connect".
Protocol specific error code(s): "111", "*", "*".

The following table lists protocol specific errors that can occur on different platform and their action plan to resolve the problem.

cf) db2diag.log (HP)

2011-10-11-15.17.32.470470+540 E8945037A747       LEVEL: Error

PID     : 17111                TID  : 1           PROC : db2sysc

INSTANCE: ***                  NODE : 000         DB   : ******

FUNCTION: DB2 UDB, XA DTP Support, sqlxaConnect, probe:4666

MESSAGE : XA Interface SQLCA

DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes

 sqlcaid : SQLCA     sqlcabc: 136   sqlcode: -30081   sqlerrml: 45

 sqlerrmc: 239 * * TCP/IP SOCKETS 172.16.250.42 connect

 sqlerrp : SQLJCMN

 sqlerrd : (1) 0x81360012      (2) 0x00000012      (3) 0x00000000

           (4) 0x00000000      (5) 0x00000000      (6) 0x00000000

 sqlwarn : (1)      (2)      (3)      (4)        (5)       (6)

           (7)      (8)      (9)      (10)        (11)

 sqlstate:


Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10061​​79​​146​​239​​111​​ECONNREFUSED ​​

Connection Refused​​

Client attempts to make connection to server using an invalid IP/port ​​

Check server side: ​​

DB2 environment variable DB2COMM is set: DB2COMM=TCPIP ​​

DBM CFG's SVCENAME is set to the instance's port number or service name. The command to update this parameter is: "db2 update dbm cfg using svcename <port/service name>" ​​

If service name is set, please check 'services' file see if the name corresponds to an unused port number ​​

Make sure db2 server instance is started properly ​​

Check client's side: ​​

Node directory's entry: ​​

Service name should show the right port number/service name corresponds to db2 server's instance port (svcename setting) ​​

To check if server's port is opened: ​​

telnet <hostname> <port> ​​

If fails then the port on server is not opened and the problem is outside of DB2 area. ​​

Additional technote on ECONNREFUSED:​​
​​http:​​/​​​​/​​www.ibm.com​​/​​support​​/​​docview.wss?rs​​=​​71​​&​​uid​​=​​swg21328644​​​​ ​​

​​

Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10053​​ ​​ ​​ ​​ ​​SOCECONNABORTED ​​

Software caused a connection abort. ​​

​​

Software closed connection ​​

If error is reported on client application which uses ODBC/CLI to connect to DB2 UDB server. ​​

Please disable DB2's CLI timeout: ​​

Add 'QUERYTIMEOUTINTERVAL=0' on client's side's db2cli.ini file ​​

Check application if they have any timeout. ​​

e.g. ADO timeout, VB timeout ​​

If application connects to OS390 server, please check idlethreadtimeout parameter (IDTHTOIN) on OS390. ​​

This parameter sets the active thread timeout limit on OS390. ​​

​​

Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10054​​73​​131​​232​​104​​ECONNRESET ​​

Connection has been reset by partner​​

Connected partner has closed the connection. ​​

Check any timeout limit on partner side. ​​

E.g. Firewall, Application, DB2 CLI layer and etc ​​

If error is reported on client application which uses ODBC/CLI to connect to DB2 UDB server. ​​

Please disable DB2's CLI timeout: ​​

Add 'QUERYTIMEOUTINTERVAL=0' on client's side's db2cli.ini file ​​

Check if there's any firewall between client and server. ​​

If it has any time limit on open connection ​​

Check application if they have any timeout. ​​

e.g. ADO timeout, VB timeout. ​​

​​


This error can also be caused by the issue described in ​​technote_1395285​​
​​
When a local database connection is catalogued using a different alias name than the database name, you might get error SQL30081 when you try to connect to that database using a TCPIP connection.​​
​​
If you get that error when when you try to connect to a database, make sure that on the machine where that database resides the database is not catalogued using a different alias name than the database name.​​
​​

​​

Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10060​​78​​145​​238​​110​​ETIMEDOUT ​​

Connection timeout​​

Connection has reached the network timeout limit and is terminated by network ​​

Timeout by tcpip layer ​​

TCPIP has their own timeout value, if the open connection stayed too long, tcpip will force the connection off. ​​

Usually this is network issue ​​

Check TCPIP's KEEPALIVE setting ​​

see note1 ​​

​​

Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10048​​67​​125​​226​​98​​EADDRINUSE ​​

The specified address already in use​​

A: 2 instances are starting on the same machine listening on the same port (usually would trap on db2start) ​​

B: A client application or agent is making an outgoing connection attempt and is using a socket that is already being used by another connection to the database or is in the wait state (2MSL state). ​​

Usually only happen to Windows client: ​​

This is a Microsoft error. Winsock has given a port that is already in use (winsock defect) or is closed but still waiting in the wait state. ​​

Workaround for Windows: ​​

1. Adjust the time that a socket sits in wait state after being closed (default is 2 minutes) ​​

TcpTimedWaitDelay​​ ​​

see Note 3 ​​

2. Adjust the number of ports available (default is 5000) ​​

MaxUserPort​​ ​​

see Note 4 ​​

3. ​​Adjust the use of connect / disconnect so that it doesn't cycle so rapidly in the program (best solution).​​ 10048 is most often caused by rapid connection / disconnection logic in the application, which puts too many ports in the time_wait state (2MSL). Re-using the connection handle when an application is issuing multiple statements is the best way of handling this (don't disconnect then reconnect every time a statement completes) ​​

4. ​​Implement client side connection pooling so that the application logic internally doesn't have to change. ​​Make sure the pool is large enough to handle 80% of the connections. Make sure the pool has some form of re-connect logic in the case of a disconnect while idle. ​​

​​

Windows​​AIX​​SUN​​HP​​Linux​​Short Name​​Action Plan​​
10055​​74​​132​​233​​105​​ENOBUFS ​​

No buffer space available​​

System running out of resource to complete the TCPIP call ​​

For Windows: ​​

The problem is caused by running out of Windows desktop heap or system page table entries. It is not DB2 related ​​

Increase the Windows SystemPages registry entry. ​​

​​

Windows​​Short Name​​Action Plan​​
10065​​WSAEHOSTUNREACH​​No route to host​​
​​
For Windows client, Linux server:​​
​​
Unset firewall on Linux server to allow connections to go through from clients.​​
​​
Note 1: From DB2 manual explained more what KEEPALIVE does and how we use it.

DB2 uses TCP/IP's connection KEEPALIVE option to detect if there is a connection failure. This option transmits a message periodically to determine if the partner is still alive. If the partner fails to respond to this message, the connection is considered to be broken, and an error is returned.

Note 2:

KEEPALIVE settings affect all TCP/IP applications running on the machine.

For Windows 95, Windows 98, and Windows NT:

Use the KeepAliveTime TCP/IP configuration parameter in the registry. The KEEPALIVE parameter may be created if it does not exist under the Parameters registry subkey. Add this parameter to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

The default value is two hours.

For OS/2:

Use the inetcfg command. (For OS/2 TCP/IP Version 2.0, you must apply the fix CSD UN64092 to use this command.)

For AIX:

Change the values of the network options tcp_keepidle and tcp_keepintvl with the no command (for details, type man no). The default value is two hours.

For HP-UX systems:

Change the values of the network options tcp_keepstart and tcp_keepfreq with the nettunecommand (for details, type man nettune).

For Solaris systems:

Change the value of the network option tcp_keepalive_interval with the following command:

ndd -set /dev/tcp tcp_keepalive_interval value

(For details, type man ndd.)

For other platforms:

See your TCP/IP documentation for details on configuring the KEEPALIVE setting. If it is not supported by the TCP/IP stack, then it is not used by DB2.

Note 3:

This parameter determines the length of time that a connection stays in the TIME_WAIT state when being closed. While a connection is in the TIME_WAIT state, the socket pair cannot be reused. This is also known as the 2MSL state because the value should be twice the maximum segment lifetime on the network. See RFC 793 for further details.

Note 4:

This parameter controls the maximum port number used when an application requests any available user port from the system. Normally, short-lived ports are allocated in the range from 1024 through 5000. Setting this parameter to a value outside of the valid range causes the nearest valid value to be used (5000 or 65534).

Note 5:

For other TCPIP messages.
V8.2:http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/core/rcommsec.htm
V9.1:http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.msg.doc/doc/rcommsec.htm
V9.5:http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.doc/doc/r0052008.html
V9.7:
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.messages.doc/doc/r0052008.html



http://www-01.ibm.com/support/docview.wss?uid=swg21164785

728x90
728x90

DB2 버전 : 9.1.0.6 (Fix Pack 6a)

OS : HP-UX B.11.23 U


- 기존 테이블 스페이스

1. 테이블 스페이스 총 용량 110GB (2GB 55개)

2. 추가할 컨테이너 (2GB 95개)

3. 95개 추가작업 수행 시 오류 메시지 발생


DB21034E  The command was processed as an SQL statement because it was not a

valid Command Line Processor command.  During SQL processing it returned:

SQL0259N  Container map for table space is too complicated.  SQLSTATE=54037


각각 50개,45개 나누어서 수행시 오류 발생하지 않음.
작업 한번에 추가할 수 있는 컨테이너 수의 제한은 정확하지 않다.


DB2 버전 8.1.1.72 (Fix Pack 7)

OS : AIX 5.3


컨테이너 추가 작업시 한번에 최대 66개까지 추가가 되었음


https://www-304.ibm.com/support/docview.wss?uid=swg1IY63140

728x90
728x90

오류 내역


2011-10-05-13.11.10.363323+540 I2629862A444       LEVEL: Error

PID     : 28348                TID  : 1           PROC : db2agent (******) 0

INSTANCE: ***                  NODE : 000         DB   : ******

APPHDL  : 0-1803               APPID: *LOCAL.cop.111005041027

AUTHID  : COP

FUNCTION: DB2 UDB, buffer pool services, sqlbAlterPool, probe:30

MESSAGE : ZRC=0x8002003F=-2147352513=SQLB_ADD_CONT_PENDING

          "Add containers pending"



2011-10-05-13.48.37.989959+540 I2637771A501       LEVEL: Error
PID     : 28146                TID  : 1           PROC : db2agent (******) 0
INSTANCE: ***                  NODE : 000         DB   : ******
APPHDL  : 0-1280               APPID: *LOCAL.cop.111005040428
AUTHID  : COP
FUNCTION: DB2 UDB, database utilities, DIAG_ERROR, probe:0
DATA #1 : String, 128 bytes
LOADID: 28146.2011-10-05-13.04.28.710265.0 (65530;32770)
 , -2146107283, 0000000000000000, Detected in file:sqluvld.C, Line:3427

테이블 스페이스는 DMS, FILE 형태였으며 CURSOR LOAD 수행중 테이블 스페이스 컨테이너 추가작업이 동시에 수행중에 오류가 발생하였다. 컨테이너 추가 작업을 수행한다고 해서 항상 오류가 나는 것은 아니지만 운영 DB등에서 수행한다면 동시 작업은 피한다.
다음은 관련 오류에 대한 설명이다.

Load utility may stuck in deadloop and couldn't be forced.

This happened because of the return code from sqluCrossFetchInto
Buffer is overwritten by other functions, so that the loop in
Load is not able to detect the error.

오류가 발생했을 때는 load terminate를 수행하여 load 작업을 정리하면 해결할 수 있다. terminate가 수행되면 LOAD한 데이터는 제거된다.
e.g. load from /dev/null of del terminate into table1



728x90
728x90

SQL10007N 메시지 msgno을(를) 검색할 수 없습니다. 이유 코드 : code.


설명:

메시지 파일에서 요청된 메시지 <msgno>를 검색할 수 없습니다. 이유 코드 <code>는 다음 중 하나입니다.

  1. 환경 변수 『DB2INSTANCE』가 설정되지 않았거나, 유효하지 않은 인스턴스로 설정되어 있습니다. 이 변수를 수정한 후 다시 시도하십시오.
  2. 메시지 파일이 발견되었으나, 사용 권한 때문에 파일을 열 수 없습니다. 메시지 디렉토리에 있는 파일의 파일 사용 권한을 확인하십시오.
  3. 메시지 파일을 찾을 수 없습니다. 파일이 존재하지 않거나, 메시지 파일이 있어야 할 디렉토리가 존재하지 않습니다. 'prime' 디렉토리(디폴트값) 또는 'LANG' 환경 변수와 동일한 이름의 디렉토리가 메시지 디렉토리에 존재하는지 확인하십시오.
  4. 요청된 메시지가 메시지 파일에 존재하지 않습니다. 메시지 파일이 잘못되었거나 기한이 지났습니다.
  5. DB2CODEPAGE가 데이터베이스에서 지원하지 않는 코드 페이지로 설정되었거나 클라이언트의 로케일이 데이터베이스에서 지원되지 않습니다.
  6. 예기치 않은 시스템 오류가 발생했습니다. 다시 실행하십시오. 문제가 계속되면 IBM 담당자에게 문의하십시오.
  7. 메모리가 부족합니다. 개인용 메모리를 가져오기 위한 시도가 실패했습니다. 다시 시도하십시오.
사용자 응답:

다음을 확인한 후 명령을 다시 발행하십시오.

  • DB2INSTANCE 환경 변수가 이 명령을 시도하는 사용자 이름에 대해 올바른 리터럴 문자열로 설정되어 있는지 확인하십시오.
  • 이 명령을 시도하는 사용자 이름에 대해 올바른 홈 디렉토리가 지정되었는지 확인하십시오(/etc/passwd 파일에서).
  • LANG 환경 변수가 설치된 언어에 대해 올바른 값으로 설정되어 있거나, 이 명령을 시도하는 사용자 이름에 대해 'C'('prime' 디렉토리에 있는 모든 것에 대한 디폴트값)로 설정되어 있는지 확인하십시오.

위의 사항이 모두 올바르게 지정되어 있는데 오류가 계속 발생하면, DB2를 다시 설치하십시오.


http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/rql10000.htm


728x90

+ Recent posts