Oracle 11g连接重置错误

Joh*_*n C 10 java sockets networking jdbc oracle11g

在使用瘦jdbc驱动程序尝试连接到Red Hat Linux上的Oracle 11g时,我看到了以下错误.如果有人能够更多地了解如何解决这个问题,我们将非常感激.

 Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at oracle.net.ns.DataPacket.send(DataPacket.java:199)
    at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:227)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)
Run Code Online (Sandbox Code Playgroud)

小智 15

我们有一些非常类似的东西,将程序从32位移动到64位操作系统,并且许多并发进程会引发IO错误:连接重置.

偶然发现它修复了它:

https://community.oracle.com/message/3701989

基本上添加-Djava.security.egd = file:/ dev /./ urandom参数,这很好:)


aks*_*kar 7

我遇到了与Sqoop Oracle导入类似的问题,我已经实现了此链接建议的修复

此设置有助于解决问题:

-Dmapred.child.java.opts="-Djava.security.egd=file:///dev/urandom"

我已将mapred-site.xml配置属性名称值更改为:

mapreduce.admin.map.child.java.opts -Djava.security.egd=file:///dev/urandom

这有点特定于sqoop,但我认为设置JVM选项 -Djava.security.egd=file:///dev/urandom" 将帮助您解决问题.


Bra*_*don 6

您没有包括问题的任何细节,例如发生了什么变化?这是您的新配置,还是突然停止工作?您知道是否有足够的可用连接吗?这是发生在每个连接上还是断断续续的?

考虑到错误是在登录过程中发生的,有以下几种可能性:

  1. 网络故障
  2. 您已经用尽了最多的连接数,因此Oracle挂断了您的电话。
  3. 防火墙限制
  4. 数据库服务器或侦听器有问题。打开会话后,为您的会话提供服务的进程可能会崩溃。

检查以下stackoverflow线程,了解如何检查活动连接数和最大连接数。如果这是问题所在,我会期望出现“ ORA-00018:超出最大会话数”错误,因此可能不是这样。但这值得检查。

如何检查到Oracle数据库的最大允许连接数?

  • 通过将此参数添加到Hotspot JVM,可以解决该问题:-Djava.security.egd = file:/ dev /./ urandom (3认同)