2013-05-31 5 views
2

Я не могу подключить свое приложение db2 к моей базе данных localhost.db2 не прослушивает соединение TCPIP на localhost

API-интерфейс db2, используемый приложением, требует TCPIP и пытается подключиться к хосту «localhost» и порту «50001».

Ошибка у меня есть.

SQL30081N A communication error has been detected. 
Communication protocol being used: 
"TCP/IP". Communication API being used: "SOCKETS". Location where 
the error was detected: "127.0.0.1". Communication function detecting 
the error: "connect". Protocol speci fic error code(s): "111", "*" 
, "*". SQLSTATE=08001 

мне пришлось настроить все ниже вручную, так как у меня не было его на моей машине

Я имел взгляд с wireshark, чтобы посмотреть, что происходит, но я могу видеть, что сообщение сбрасывается .. плюс использование telnet the communication is not established and netstat не прослушивает этот порт.

Должен ли я выполнять дополнительную команду, чтобы начать прослушивание?

Ниже всех моих настроек.

db2 "get database manager configuration" | grep SVC 
TCP/IP Service name      (SVCENAME)  = db2c_db2inst1 
SSL service name       (SSL_SVCENAME) = 

Тогда услуги

cat /etc/services | grep db2c_ 
db2c_db2inst1 50001/tcp  # DB2 connection service port 

Я также разрешить брандмауэр на этом порту.

 iptables -I INPUT -p tcp --dport 50001 -j ACCEPT 
/sbin/service iptables save 

iptables -list 

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   
ACCEPT  tcp -- anywhere    anywhere   tcp dpt:db2c_db2inst1 
+0

выпуск 'db2set -all', чтобы убедиться, что это имеет значение:' DB2COMM = TCPIP'. И убедитесь, что вы выполнили 'db2stop' и' db2start' после изменения каких-либо параметров связи. – mustaccio

+0

HI. Я попробовал db2set -all, и я не вижу эту строку. Я вижу следующее i] DB2AUTOSTART = NO [g] DB2SYSTEM = имя моего хоста [g] DB2INSTDEF = db2inst1 [g] DB2ADMINSERVER = dasusr1 Что это значит? –

+0

Это означает, что DB2 не знает, что он должен запустить процесс диспетчера связи TCP. Используйте 'db2set DB2COMM = TCPIP', чтобы установить переменную, а затем отскочить экземпляр. – mustaccio

ответ

3

шаги должны быть:

  1. установить DB2COMM=tcpip и подпрыгивать экземпляру

  2. чек, если это tcpip4 или tcpip6 с помощью
    netstat -an | grep -i port number (here 50001)

  3. получить IP удаленного сервера, используя
    pctt -r

  4. узел каталога с:
    db2 catalog tcpip4/tcpip6 node <nodename> remote <ip address> server <port number>

  5. базы данных каталога
    db2 catalog DB <dbname> at node <nodename>

+1

IBM должна изменить свою страницу официальных документов на stackoverflow. Путь легче найти полезный материал здесь! Благодаря! +1 –

Смежные вопросы