Db2 cannot open more files due to the operating system limit
You may receive error SQL5005C when attempting to connect to your database or while performing certain operations.
In the db2diag.log, you can find the detailed messages for the error. The key is to identify whether the internal return code is 850F0006 or 860F0023 in hexadecimal. On a platform which has Little-endian as its byte order, the return code is shown as 06000F85 and 23000F86.
As an example, see the following db2diag.log snippet:
FUNCTION: DB2 UDB, config/install, sqlf_read_db_and_verify, probe:30
MESSAGE : SQL5005: sqlf_openfile rc =
DATA #1 : Hexdump, 4 bytes
0x0000007FBFFEFDA8 : 0600 0F85 ....
When DB2 tries to open internal configuration files or tablespace containers, the operating system may return an error if there are too many files opened.
Resolving the problem
Check the following possible causes to resolve the problem.
(1) Check your ulimit settings
Use ulimit to check the number files can be opened for your instance user. If the number is small, you can increase the number using the command:
ulimit -n <new_number>
(2) Check related OS kernel parameters
You should also check how many files can be opened for the whole system.
For example, on Linux you can use the following to check the maximum number of file-handles:
$sysctl -a |grep file-max
(3) Check your DB2 database configuration parameter MAXFILOP
MAXFILOP specifies the maximum number of database file handles to open per database.
You should reduce the value so that the number of files to open does not exceed the operating system limit.
More support for:
DB2 for Linux, UNIX and Windows
Operating System / Hardware - Memory Management
Software version: 9.1, 9.5, 9.7, 10.1, 10.5, 11.1
Operating system(s): AIX, HP-UX, Linux, Solaris, Windows
Reference #: 1403936
Modified date: 12 November 2009