gpt4 book ai didi

java.sql.SQLException : Connection has already been closed 异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:47 26 4
gpt4 key购买 nike

我们收到 java.sql.SQLException:连接已关闭。执行事务时间歇性异常。我们使用的是 tomcat 7.X,下面是配置。

<Context docBase="ROOT" reloadable="true" antiJARLocking="true">
<Resource
name="jdbc/DS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://XXXXXXX"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
username="XXXXXX"
password="XXXXXX"
maxActive="20"
maxIdle="3"
minIdle="3"
maxWait="10000"
removeAbandoned="true"/>
</Context>

可能我们在这里缺少导致问题的某些配置或属性。

请提出解决此问题的方法或帮助找出根本原因。

最佳答案

以下配置对我有用

<Context context="ROOT" debug="0" reloadable="false" useHttpOnly="true" cacheMaxSize="40960" cacheTTL="60000" cachingAllowed="true" antiJARLocking="true">
<Resource name="XYZ" auth="Container"
description="Exchange DB Connection"
dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
dataSource.serverName="XXXXX"
dataSource.databaseName="XXXX"
dataSource.portNumber="XXXX"
dataSource.user="xyz"
dataSource.password="xyz"
maximumPoolSize="20"
minimumIdle="5"
connectionTimeout="300000"
factory="com.zaxxer.hikari.HikariJNDIFactory"
registerMbeans="true"
type="javax.sql.DataSource" />

这里的关键值是connectionTimeout。您当前使用的工厂有一个默认超时,超时后它会强制 session 关闭。

上面的连接超时值对我有用,对于您的应用场景,您必须进行一些试验才能获得正确的值。

关于java.sql.SQLException : Connection has already been closed 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941889/

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