Oracle 12C数据库报ORA-7445 [qcdlgcd] ,前台报No more data to read from socket错误解决方法
问题描述:
在EAS Cloud8.6+Oracle 12.1.0.2环境中, 执行EAS Cloud凭证新增,在物料选择时,弹出F7功能报错,报No more data to read from socket错误。
通过几家客户验证,只要用了Oracle 12.1.0.2数据库,做了大数据量的查询,都触发了No more data to read from socket报错。
解决方案:
1.查看客户端的client\logs\log4j.log、服务端\eas\server\profiles\server*\logs\apusic.log日志可见如下详细报错:
java.sql.SQLException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1157)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:350)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:879)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(Unknown Source)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Unknown Source)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3608)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3652)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1207
2.查看数据库的警告日志alert*.log,发现以下报错:ORA-07445: 出现异常错误: 核心转储 [qcdlgcd()+70] [SIGSEGV] [ADDR:0x4] [PC:0xCDFB0D6] [Address not mapped to object]
经查询是触发了Oracle 12.1.0.2版本上的BUG,其BUG号是20830993 (匹配Bug 20830993 - ORA-7445 [qcdlgcd] reported while running select statement - superseded (文档 ID 20830993.8))
修改以下隐含参数:
alter session set "_index_join_enabled"=false;
改参数后问题得到解决。Oracle 12.1.0.2版本较低,BUG较多,建议数据库升到ORACLE 19C(即12.2.0.3)。
参考链接:https://www.modb.pro/issue/416
Oracle 12C数据库报ORA-7445 [qcdlgcd] ,前台报No more data to read from socket错误解决方法
本文2024-09-22 20:22:40发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-113239.html