gpt4 book ai didi

java - UCP 和 Oracle 12 c 中的连接关闭问题

转载 作者:行者123 更新时间:2023-12-03 12:47:54 38 4
gpt4 key购买 nike

从 Oracle 11g 迁移到 Oracle 12 c 时,使用 UCP(12.1.0.2.0) 时出现以下错误

    java.sql.SQLException: The connection is closed: The connection is closed
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:464)
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:448)
at oracle.ucp.jdbc.proxy.JDBCConnectionProxyFactory.invoke(JDBCConnectionProxyFactory.java:307)
at oracle.ucp.jdbc.proxy.ConnectionProxyFactory.invoke(ConnectionProxyFactory.java:50)
at com.sun.proxy.$Proxy24.prepareStatement(Unknown Source)

这是多线程应用程序,我们从 UCP 池中获取连接,使用它然后关闭连接。
但是,对于某些操作,我们在线上收到了上述错误 - connection.prepareStatement(statement)
我们正在使用 PoolDataSource

尝试的东西很少
1) 使用连接池的默认值并且只设置最小、最大池大小。
2) 将 setValidateConnectionOnBorrow 设置为 true,
3) 将 setValidateConnectionOnBorrow 设置为 true 并将 setValidateConnectionOnBorrow 设置为“SELECT 1 FROM DUAL”
4) 使用标记连接
5)数据库在特定时间后不会断开连接,并且没有阻止连接的防火墙。
6) 使用 setMaxConnectionReuseTime

我已经提到了几个显示类似问题的链接。但是它没有显示任何分辨率
https://community.oracle.com/thread/2183613

https://community.oracle.com/thread/2298699

The connection is closed when using Oracle UCP

有没有人在使用 UCP 的 Oracle 12C 上遇到过类似的问题??最新的UCP有什么bug吗??

最佳答案

我在使用 Weblogic 的连接池时没有任何问题。

我认为问题正是所描述的here for question oracle-db-java-sql-sqlexception-closed-connection .

确定连接是 未关闭 调用前 prepareStatement() (注意多线程)。

也许添加一些日志记录以查看 close()之前真的没有关闭prepareStatement()并尝试记录 connection.isValid() 的值就在之前 prepareStatement()称呼。

你能提供一些示例代码吗?

关于java - UCP 和 Oracle 12 c 中的连接关闭问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002062/

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