在与多个用户登录时,我的应用程序抛出此异常:
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的配置并使其同步。
看起来第二个线程试图利用第一个线程创建的连接,而使用第二个线程的第二个线程则将其关闭。
答案 0 :(得分:2)
您是否尝试过使用“实体交易” 开始交易? 您可以按照以下方式进行操作,
Class Test{
@Autowired
EntityManagerFactory entityManagerFactory;
method(){
EntityManager manager = entityManagerFactory.createEntityManager();
EntityTransaction transaction = manager.getTransaction();
transaction.begin(); //This will start the transaction
}
}
答案 1 :(得分:0)
Spring要创建事务,但是您已经打开并已经关闭连接。这就是Spring引发异常org.springframework.transaction.CannotCreateTransactionException
的原因。您必须将连接管理委派给Spring(使用JdbcTemplate
),或者手动管理事务。