我想在Windows中findDB2端口,请帮忙。 一些信息:
其实,我试图连接到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正在监听其他一些端口,但是,
非常感谢。
首先确定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连接。
对DB2registry(通过DB2SET)或DBMconfiguration的更改要求DB2在停止和启动之前生效。