我试图理解最大开放会话,以及sessiion开放和关闭行为.我遇到了这个,完全无法理解.我想在我的代码中模拟“PSQLException:致命:抱歉,已经有太多客户”了.我已将max_connections设置为10.并尝试此代码:Session ses...
我试图理解最大开放会话,以及sessiion开放和关闭行为.我遇到了这个,完全无法理解.
我想在我的代码中模拟“PSQLException:致命:抱歉,已经有太多客户”了.
我已将max_connections设置为10.
并尝试此代码:
Session session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
session = HibernateUtil.getSessionFactory().openSession();
我在第11次电话中期待这个错误,我不明白.当我运行sql命令SELECT datname时,numbackends FROM pg_stat_database where datname =’XXX’;我相信会显示公开会话数,我认为它上限为10.
请解释一下这种行为.
解决方法:
有很多事情可能会发生(赞成#2):
1)更改最大连接数时未正确重新启动postgresql服务器.因此,重新启动服务器或查看here
2)Hibernate可能正在使用JDBC的池化系统进行会话,并且您正在重复设置相同的会话变量.也许以前的开放会话是垃圾收集,并且池总是可以为最新的会话腾出空间.我会尝试创建一个连接对象数组,并且还会看到当您尝试使用打开的会话时会发生什么.
本文标题为:java – 模拟“PSQLException:致命:抱歉,已经有太多客户”
基础教程推荐
- mybatis log4j2打印sql+日志实例代码 2023-05-08
- 利用Java连接Hadoop进行编程 2023-02-05
- java使用stream判断两个list元素的属性并输出方式 2022-12-08
- Java子线程调用RequestContextHolder.getRequestAttributes()方法问题详解 2023-06-01
- Springboot整合minio实现文件服务的教程详解 2022-12-03
- 深度解析Java中ArrayList的使用 2023-05-19
- Java项目实现定时任务的三种方法 2023-01-02
- 浅谈Mybatis二级缓存的缺陷 2023-04-18
- springboot中shiro使用自定义注解屏蔽接口鉴权实现 2023-02-19
- springboot如何通过不同的策略动态调用不同的实现类 2022-11-05