尝试连接到DB2 Server时出错

时间:2013-12-12 08:45:10

标签: java db2

我在尝试连接到外部数据库时遇到此错误...

om.ibm.db2.jcc.b.DisconnectException: A communication error has been detected. Communication protocol being used: Reply.fill(). Communication API being used: InputStream.read(). Location where the error was detected: Connection reset. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS   DB2ConnectionCorrelator: null
        at com.ibm.db2.jcc.c.a.a(a.java:373)
        at com.ibm.db2.jcc.c.gb.b(gb.java:191)
        at com.ibm.db2.jcc.c.gb.c(gb.java:238)
        at com.ibm.db2.jcc.c.gb.c(gb.java:353)
        at com.ibm.db2.jcc.c.gb.v(gb.java:1362)
        at com.ibm.db2.jcc.c.hb.a(hb.java:43)
        at com.ibm.db2.jcc.c.b.e(b.java:1389)
        at com.ibm.db2.jcc.c.b.b(b.java:1264)
        at com.ibm.db2.jcc.c.b.s(b.java:1036)
        at com.ibm.db2.jcc.c.b.b(b.java:744)
        at com.ibm.db2.jcc.c.b.a(b.java:730)
        at com.ibm.db2.jcc.c.b.<init>(b.java:331)
        at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:165)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at com.interblocks.common.db.ConnectionFactory.getCon(ConnectionFactory.java:282)
        at com.interblocks.common.db.ConnectionFactory.getConnection(ConnectionFactory.java:203)
        at com.interblocks.common.db.ConnectionFactory.getDataBasePlatform(ConnectionFactory.java:1073)
        at com.interblocks.common.sequence.c.<clinit>(Const.java:60)
        at com.interblocks.common.sequence.Sequence.<init>(Sequence.java:207)
        at irecon.Servlet_ReconTxnMgmt.<init>(Servlet_ReconTxnMgmt.java:121)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:134)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

我不知道它是代码错误还是网络问题或数据库错误,请我知道为什么会触发这个异常......为防止遇到这个问题需要考虑哪些事项?感谢

1 个答案:

答案 0 :(得分:3)

Ping用于检查服务器是否处于活动状态。 Telnet通常允许使用telnet服务,但它可用于检查端口是否打开(防火墙)以进行远程连接。

您应该检查来自客户端的连接

telnet db2serverName db2Port

例如

telnet 192.168.0.1 50000

一旦检查了DB2端口是否为您的客户端打开,您应该建立连接或收到不同的错误消息。