java - 如何修复此连接已关闭异常?
问题描述
在使用多个用户登录时,我的应用程序抛出了这个异常:
Connection org.postgresql.jdbc.PgConnection@6421dd29 marked as broken because of SQLSTATE(08003), ErrorCode(0)
org.postgresql.util.PSQLException: This connection has been closed.\
还得到:
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin transaction failed:
我尝试更改 hikari 配置并使块同步。
看起来第二个线程试图利用第一个线程创建的连接,而第二个线程使用它的第一个线程关闭它。
解决方案
您是否尝试过使用“实体交易”开始交易?你可以这样做,
Class Test{
@Autowired
EntityManagerFactory entityManagerFactory;
method(){
EntityManager manager = entityManagerFactory.createEntityManager();
EntityTransaction transaction = manager.getTransaction();
transaction.begin(); //This will start the transaction
}
}
推荐阅读
- angular - 找不到带有名称的控件,第一次打开垫子对话框
- django - 如何使用相关名称和通用详细视图检索 Django 模型中的数据
- amazon-web-services - Lambda 调用错误的 lambda 函数
- java - 如何在两个字符串之间更改字符?
- sql - 将 Sql 之类的自定义 dsl 查询转换为 ElasticSearch?
- python-3.x - WAMP MySQL 和 Python 3 之间的数据共享
- angular - 为什么角度日期管道不支持 Intl.DateTimeFormat 等语言环境语言默认格式?
- unity3d - 在协程内循环
- javascript - 如何根据前一个 for 循环在 for 循环中添加一个空行?
- datetime - 将当前时间与 Windows 批处理文件中上次修改的文件日期时间进行比较