我在尝试连接到外部数据库时遇到此错误...
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)
我不知道它是代码错误还是网络问题或数据库错误,请我知道为什么会触发这个异常......为防止遇到这个问题需要考虑哪些事项?感谢
答案 0 :(得分:3)
Ping用于检查服务器是否处于活动状态。 Telnet通常允许使用telnet服务,但它可用于检查端口是否打开(防火墙)以进行远程连接。
您应该检查来自客户端的连接
telnet db2serverName db2Port
例如
telnet 192.168.0.1 50000
一旦检查了DB2端口是否为您的客户端打开,您应该建立连接或收到不同的错误消息。