标签:连续 exec sql cannot grep 强制 总结 pre csdn
Cannot get a connection, pool error Timeout waiting for idle object
解决:
排查思路:
1.检查是否应用压力过大,无法获取空闲连接
查看cpu、内存
查看tomcat的连接数(netstat -natp | grep ESTAB | grep PORT | wc -l)
2.检查应用是否很好的释放了连接(查看数据库的连接数)
数据库(可通过配置参数完成自动回收)
解决:
1.应用:
acceptCount队列长度,默认100
maxConnections最大连接数;对于Java的阻塞式BIO,默认值是maxthreads的值,在BIO使用定制的Executor执行器:默认值是执行器中的maxthreads值;java新的NIO模式:默认值10000;如果设置为-1,则禁用maxconnections功能,表示不限制tomcat容器的连接数.
maxThreads最大线程数,默认200;线程数的经验值为:1核2g内存为200,线程数经验值200;4核8g内存,线程数经验值800
maxConnections和acceptcount的关系为:当连接数达到最大值maxConnections后,系统会继续接收连接,但不会超过acceptCount的值.
2.数据库(oracle):
修改sqlnet.ora文件,新增expire_time=x(单位是分钟)
create profile profileName limit connect_time 60 idle_time 30;创建profile文件,profileName任意起,connect_time设置连接超过多少分钟后强制释放,idle_time设置连续不活动的会话超过多少分钟后强制释放
参考链接:https://blog.csdn.net/weixin_39517560/article/details/111484161?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2&spm=1001.2101.3001.4242
标签:连续 exec sql cannot grep 强制 总结 pre csdn
原文地址:https://www.cnblogs.com/fangweiming/p/14754993.html