分析原因,可能是数据库连接数达到最大值了,修改数据库的默认150个的连接数。
登陆数据库服务器,执行了一下
select count(*) from v$process
查到当前连接数有147
然后执行
show parameter processes
数据库的最大连接数才150
问题在此了,那就好解释,由于后来请求数超过了oracle的最大连接数,所以对于超过数量的连接,oracle就自动断开了,才会有那么多的TIME_WAIT状态。
改大连接
alter system set processes =400 scope = spfile;
session不用改,processes 改了后session自动会根据一个比例增加,改完后我的是624
然后把数据库连接池最大值改成150
测试了一天,再没出现故障,通过netstat -ano| findstr “1521” 查询到的端口状态基本上都是established(已建立连接)和少量的LISTENING