1.问题
glashfile部署的程序时好时坏, 有时部署后访问直接就报404错误
查看log, log如下
[2017/09/26 18:22:54.820][ ] ERROR [ ] (http-thread-pool-8088(1):TotoTrace) - 2017/09/26 18:22:54, http-thread-pool-8088(1):
+-------
| java.lang.IllegalStateException: Pool closed
2.解决方法
看到关键字 Pool closed.通过google 发现是DB的连接池相关,于是查看当前postgresql库的 当前连接数和最大连接数
通过下面的SQL
当前连接数: select count(1) from pg_stat_activity
最大连接数: show max_connections;
当前库的最大连接数是200, 当前连接数是196,这是马上就连接耗尽的节奏,于是修改最大连接数是400(需要重起DB), 问题解决.
3.原因
开发的同事在使用一款DB管理软件,软件连接到DB后, 连接一直存在,直到达到最大连接数,没有DB连接可用
glassfish上部署的应用在domain启动时就会申请连接, initialSize为5, 再加上当前连接数,超过最大连接了,所以DB的连接没有申请成功,应用启动失败, 表现出来的现象就是 404
由于现在处于开发阶段,部署频繁,能申请到DB连接,访问就正常,否则就是404, 这就是时好时坏的原因