数据库连接资源释放

项目运行过程中遇到了tomcat连接池资源不释放,导致系统崩溃的问题。

查找各种网站,在数据库中进行如下配置 (tomcat):

1、initialSize :连接池启动时创建的初始化连接数量

2、maxActive :连接池中可同时连接的最大的连接数

3、maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限制

4、minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接

5、maxWait  :最大等待时间,当没有可用连接时,连接池等待连接释放的最大时间,超过该时间限制会抛出异        常,如果设置-1表示无限等待

6、poolPreparedStatements:开启池的prepared

7、maxOpenPreparedStatements:开启池的prepared 后的同时最大连接数

8、minEvictableIdleTimeMillis  :连接池中连接,在时间段内一直空闲, 被逐出连接池的时间

(默认为30分钟,可以适当做调整,需要和后端服务端的策略配置相关)

9、removeAbandonedTimeout  :超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)

10、removeAbandoned  :超过removeAbandonedTimeout时间后,关闭不用的资源(默认为false,调整为true)

以上参数主要是为了解决事务控制没有加或者数据库存在死锁情况。

时间: 2024-10-14 13:33:14

数据库连接资源释放的相关文章

深刻理解C#中资源释放

今天我的一个朋友看到我写的那篇<C#中用AJAX验证用户登录>时,给我指出了点小毛 病.就是在用户登录时,如果用户登录失败,在下面这段代码中,都会new出来一个User对象,如果连续登录失败多次,就会生成多个User对象,而它们 在登录失败后已经无用了,依然占据着内存,就算是C#有垃圾回收机制,但不确定什么时候对这些对象进行回收.然后去网上找了一篇C#资源释放的文章,讲的很透彻,和大家分享一下. using System;using System.Collections.Generic;usi

资源释放的问题

转 个人体悟,析构貌似有点鸡肋了,不能显示调用,不也确定调用时机,应该只是做为一种释放资源机制的存在 然后,一个实例类的资源释放应在承载它的方法结束时发生,所以做为主程序结束标志的main函数里才不能写一些冗杂的方法在里面,应把方法写在主程序外面,要用的时候调用一下这样可以省资源.而且有复用性.不知道我这样理解是否有问题.若有不对之处,还请指点,入门新人! C#中Dispose.析构函数.close的区别 本文导读:C#中析构函数 和 Dispose 都是释放资源,析构函数用于 隐式释放资源,D

C#资源释放及Dispose、Close和析构方法

备注:此文的部分观点有误,之所以仍旧保留本文,是需要在后期给出一个勘误版.正确的版本在这里“C#中标准Dispose模式的实现” 一:什么是资源 在开始本文前,需要一些准备知识.首先要提出“什么是资源”.在CLR出来之后,Windows系统资源开始分为“非托管资源”和“托管资源”. 非托管资源是指:所有的Window内核对象(句柄)都是非托管资源,如对于Stream,数据库连接,GDI+的相关对象,还有Com对象等等,这些资源并不是受到CLR管理: 托管资源是指:由CLR管理分配和释放的资源,即

SSH 占用数据库连接不释放问题

SSH框架的项目在访问数据库的时候,访问完成后一直占用链接,不释放,导致过了一段时间后,服务器没挂,就是有访问数据库的连接是时候,一直卡住 解决办法: 1.配置spring对应的hibernate文件: <prop key="hibernate.connection.release_mode">after_statement</prop> 事务提交后自动释放连接 2配置事务 <!--spring 声明式事务管理器 --> <bean id=&q

opencv资源释放问题

初学opencv,资源释放问题困扰了好久.感觉小有体会,仅供菜鸟参考. 资源要不要释放主要看是否真正在内存开辟空间.简单点说就是有Creat开辟空间,才有Release的释放空间.当然实际情况要更复杂,比如clone()等深复制.总之还是要看是否真正在内存开辟空间. 具体的参考一下以下3篇文章吧 http://blog.csdn.net/scudz/article/details/8083866 http://blog.csdn.net/liulina603/article/details/84

泛型的资源释放

C#泛型是一种高复用性.安全和高效的技术,通过类型参数可以将参数的声明.实现推迟到客户代码中.但是这种延迟却降低了类型参数在泛型定义中的可操作性.例如资源释放. public interface IWorker { void Operate(); } public class GenericWorker<T> where T : IWorker , new() { public void GetResult() { T worker=new T(); worker.Operate(); } }

cocos2dx loading界面 预加载资源 与 资源释放

预加载图片: 1.CCTextureCache::sharedTextureCache()->addImage("icon.png"); 2.CCTextureCache::sharedTextureCache()->addImageAsync("icon.png",this,callfuncO_selector(MainLayerLoading::loadingCallBack)); 使用加载的缓存图片: CCSprite* sp =CCSprite:

.net 资源释放(托管资源和非托管资源)

1.托管资源 像int.float.DateTime等都是托管资源:net中80%的资源都是托管资源: 托管资源的回收通过GC(垃圾回收器)自动释放分配给该对象的内存,但无法预测进行垃圾回收的时间,我们无法控制系统在什么时间回收资源. 2.非托管资源 像ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor,FileStream,Font,Icon,Image,Matrix,Object,Odbc

oracle for update锁表资源释放之kill -9和alter system kill session &#39;sid,serial#&#39;;

通过for update锁表,通过操作系统方式和oracle方式终止进程方式 --查询需要终止进程的情况,包括操作系统进程 select proc.sPID, sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess,v$process proc where a