如何在Windows中查找DB2端口号(注意:它不使用服务文件中列出的端口,netstat命令输出中缺lessdb2列表)?

我想在Windows中findDB2端口,请帮忙。 一些信息:

  1. DB2 v 9.7个人版 – 新/全新安装
  2. netstat命令不会列出db2端口。
  3. 缺lessdb2条目在system32 \ drivers \ etc \ services文件中丢失,所以做了一个条目 – “db2c_DB2 50000 / tcp”
  4. 能够使用控制中心启动db2并创build表并插入行
  5. 能够使用CLP启动db2并执行操作

其实,我试图连接到DB2使用“jdbc:db2://127.0.0.1:50000 / TEST”作为来自Java的连接URL,但是,我得到一个错误:“exceptionjava.net.ConnectException:打开套接字服务器/127.0.0.1端口50,000与消息:连接参考使用:连接。ERRORCODE = -4499,SQLSTATE = 08001“

我发现数据库启动并运行,但没有监听端口50000,虽然在服务文件中提到。 所以,db2正在监听其他一些端口,但是,

  1. 它使用的是什么端口?
  2. 为什么它不使用服务文件中提到的端口#50000?
  3. 为什么netstat命令没有列出db2服务和端口信息?

非常感谢。

首先确定TCP通讯设置为开启,

db2cmd -i -w db2set DB2COMM=npipe,tcpip db2stop db2start 

您可以检查它是否不使用默认端口,

 db2cmd -i -w db2 get dbm cfg | find "SVCENAME" 

应该得到这样的一条线,

 TCP/IP Service name (SVCENAME) = db2c_DB2 

如果没有设置为默认端口,上面应该是一个端口号,你可以看到我的configuration是默认的(= 50000)

你不能从Java做到这一点。 您需要从dbadmin或DB / 2configuration本身中find。 您的项目(3)没有做任何事情:“服务”文件仅供参考,或供某些客户使用; 它不会告诉DB / 2要做什么。 只有DB / 2自己的configuration做到这一点。

首先,安装在最后显示错误。 我不记得错误,但是,我无法启动db2。 所以,谷歌search,并find了一个简单的解决scheme,它的工作。 我可以从OP中看到的启动和执行数据库操作。 但是,寻找端口号仍然是。 在进一步的search之后,我发现“SVCENAME”的值是空的,然后我更新了参数,并在服务文件中input了端口号。 即使这样,它也没有帮助。 作为最后的手段,只需重新安装DB2,一切正常。 只需要注意:成功的安装将在configuration中具有“SVCENAME”的值,而db2将在服务文件中为服务名称和端口创build一个条目。

看来,当服务名称DBM参数为空时,这意味着TCP连接是不可能的。 如果您打算在本地使用DB2,则通过从同一台计算机访问数据库不是问题。

为了configurationTCP连接,您必须遵循其他答案中描述的步骤。 但是,没有服务名称的实例并不表示问题。

有关于此页面中的问题的讨论: http : //groups.google.com/group/comp.databases.ibm-db2/browse_thread/thread/a515365a5d04af81

由于JDBC使用TCP连接,所以您确实需要更改实例的configuration以连接到数据库。

由于您可以从控制中心启动DB2并连接到本地数据库(通过使用共享内存的CLI驱动程序),以下一个或多个问题可能会阻止通过TCP / IP进行通信的JDBC连接。

  1. DB2SET必须为DB2COMM设置显示TCPIP。
  2. DBMconfiguration中的SVCENAME必须反映有效的TCP服务名称,或最好是反映未使用的TCP端口号(例如50000)。
  3. Windows防火墙必须允许为您的DB2实例select的TCP端口上的入站连接。

对DB2registry(通过DB2SET)或DBMconfiguration的更改要求DB2在停止和启动之前生效。