mysql数据库连接池溢出的原因最近用了公司某框架,部署到现场后,现场运维开始维护现场数据,在不断 *** 作的过程中,系统崩溃,查看后台日志,druid连接池已经获取不到连接。于是开始了排查之旅。在此记录。
排查开始
首先后台的报错是这样的。
原系统在SQLSERVER数据库下无任何问题,转换成ACCESS数据库后, *** 作其中一个表Client,这个表有3W多条记录,语句如下:
public DataSet getClient(string SearchStr)
{
try
{
string SqlStr="Select from Client where ClientName like '%"+SearchStr+"%'";
OleDbDataAdapter OleDbCommand=new OleDbDataAdapter(SqlStr,Conn());
DataSet TempData=new DataSet();
OleDbCommandFill(TempData,"Client");
return TempData;
}
catch(Exception ex)
{
throw ex;
}
}
在Access中用菜单“工具-选项”,并在“高级”标签中设置:
默认打开方式:共享
默认记录锁定:不锁定
不仅你的机器要这么设置,还要求所有可以打开这个文件的人的机器都这么设置,当前被用户写入的记录肯定是在锁定状态,如果你这次写入不成功,等一会再写入,也许你刚才写时别人也正在写
数据库中记录的保存方式有一种是顺序文件组织。即数据库中的记录按顺序保存在文件中,就会方便查询和修改。但是进行插入和删除就比较麻烦,需要移动很多数据。 为了减少移动,就在每个记录的后面添加上一条指针,指向下一条记录的位置。 对于插入 *** 作,如果这条记录所在的块儿中有位置,就可以插进去。 否则,就需要将新记录插入到一个新的块儿中,这个新块儿,就叫做溢出块。
以上就是关于mysql数据库连接池溢出的原因全部的内容,包括:mysql数据库连接池溢出的原因、关于ACCESS数据库插入或更新数据的溢出问题、access在多人共享 *** 作时总是出现被锁现象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)