gpt4 book ai didi

java - Oracle 12c - 获取 SQL 错误 : 17410, SQLState: 08000

转载 作者:行者123 更新时间:2023-12-03 15:52:10 26 4
gpt4 key购买 nike

我正在研究使用 ORACLE 12c db 作为后端的项目。我的应用程序是在 java 8 中构建的。自上个月以来它运行良好。但是突然客户端出错了

SQL Error: 17410, SQLState: 08000
No more data to read from socket.

我搜索了这个问题,所以我找到了与 11g not for 12c 相关的以下解决方案......

案例1: 当使用两个 JDBC 连接访问同一个 Oracle 数据库时,抛出“SqlException : No more data to read from socket”。

这是因为你的数据库不支持连接共享,或者它是一个不会响应不同客户端的专用服务器。

解决方案: (与 1 相同,但手动工作):
open $ORACLE_HOME/network/admin/tnsnames.ora
change “(SERVER = DEDICATED)” to “(SERVER = SHARED)”
restart database and listener

但是我没有运行两个 jdbc 连接。

案例2: 如果您使用的是 Java,这可能会帮助您:
java/jdk1.6.0_31/jre/lib/security/java.security
改变
securerandom.source=file:/dev/urandom

securerandom.source=file:///dev/urandom

任何人都可以给出此问题的正确原因,以及哪种解决方案最适合解决此问题,以便将来我们不会再次遇到此问题。

更新 :我有两个单独的应用程序处理相同的数据库。一个是创建待处理的待处理项目并将其保存在数据库中的服务,客户端从数据库中选择待处理项目并对其进行处理。并且两者都在单独的 JVM 中运行。

最佳答案

通常,标准 Oracle 配置中的以下错误是由于外部原因造成的:
SQL 错误:17410,SQLState:08000 无法从套接字读取更多数据。
问题:

  • Oracle DB 和应用程序是否在同一个网段?

  • 1.1.解决方法#1:如果不是,则将它们移至同一网段以消除路由器相关问题
    1.2.解决方法#2:如果已经是同一个网络,或者没有路由器问题,那么将数据库和应用程序安装到同一台机器上以消除网络相关问题
    1.3.信息#3:注意从上次使用开始的数据库连接空闲时间。这种行为的模式可能是由于它跨越 2 个不同的网段时的空闲时间
  • 应用程序是否正在运行需要很长时间在 Oracle DB 中处理的长时间运行的 SQL,例如长时间运行的 SELECT、INSERT...SELECT、UPDATE?

  • 2.1.信息 #1:启用 SQL 跟踪以可视化失败的 SQL,因为这可能是相关的并且仅影响长时间运行的 SQL
    2.2.信息 #2:从应用服务器机器运行 sqlplus 到远程 Oracle DB。登录后保持连接打开和空闲1-3小时。让它闲置后只需运行任何命令,例如desc table1,选择sysdate,查看连接是否断开。如果是,则与 DBA 和网络管理员讨论他们是否在 Oracle 或网络设备中设置了“策略”以强制关闭空闲连接
    2.3.信息 #3:应用程序是否有连接池管理器?如果是,则调整其参数,使其保持接近 0 空闲连接。逐步增加它以查看问题在什么阈值下可见
  • 是否涉及防火墙?
  • 是否涉及负载平衡器?
  • 当应用程序主动与先前的服务器通信时,是否有指向不同服务器的虚拟主机名?

  • 在 tnsnames.ora 中,在 TNS 中设置“(SERVER = SHARED)”通常是错误的做法。很多人不完全理解这个设置的目的是什么,也没有解决问题的根本原因。换句话说,如果是由于网络硬件问题、路由器问题、虚拟主机名故障转移等。

    关于java - Oracle 12c - 获取 SQL 错误 : 17410, SQLState: 08000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40220611/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com