How to solve: Db2 is not listening port problem

db2 9.5 shrink tablespace

Sometimes a mistake made by db administrator causes that kind of problem.


To solve this problem we need to take a few simple steps and check system services.

First of all, you need to get database service configuration with this command:

db2 get dbm cfg | grep SVCE

Does that value empty? You need to set a port number to test (we will change it with service name)

Now you should find an empty port, for example 55000. Let’s find if it is in use:

netstat -an | grep LISTEN | grep 55000

That command must return an empty result set. If it returns a row, you need to choose a different port.

Stop db2 and update your configuration for port 55000

db2 update dbm cfg using SVCENAME 55000

Now start db2 and check does db2 listening port 55000.

netstat -an | grep 55000

You MUST see port 55000 is actively listening. If you can confirm that, db2 is listening 55000, jump to Modifying /etc/services section.

If port 55000 still is not in the list you need to update db2 system variables via that simple commands.

db2set -all

Last command lists db2 system variables. DB2COMM must be set to TCPIP to listen TCP ports.

Modifying /etc/services 

Most of *nix system users are familiar with /etc/services file. In *nix systems, service names and their port and protocol are stored in this file.

We have a simple template to add db2 service to end of this file.

db2c_<instance_name>      <port_number>/tcp  #db2 service port

Open that file via vi (or your favorite text editor) and add your db2c_…. row to end of /etc/services.

And now, you must update db2 configuration with your new service name:

db2 update dbm cfg using SVCENAME db2c_<instance_name>

Do not forget to change <instance_name> with your db2 instance name.

Confirm that db2 is listening port in /etc/services.

Leave a Reply

Your email address will not be published. Required fields are marked *