广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    链接池溢出的问题分析与解决方案

    2018-04-05 08:32:45 次阅读 稿源:互联网
    零七广告
    今日又有项目报错:Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

    第一反应就是那个兄弟写了DataReader没有关闭,这不开始整项目查找DataReader的身影。哎,还别说,真他妈有2个reader在那里开着呢。过了半天,错误卷土重来。这可把我郁闷坏了,接下来想到的当然是查看数据链接数,和查找是那条sql对应的链接没关闭。

    网上说查看链接数的方式各不一致,没有个准的说法。

    首先:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]select * from dbo.sysprocesses where DB_NAME(dbid)='youDbName'

    查不出来啥,这也非所谓的连接数。

    当然它和连接数还是有一定的对应关系,只要一刷,总数就涨几个,重置后,半小时就到了600多。谁呢?谁干的呢?找不到是那条语句对应的链接。没法,只能顺藤摸瓜了,既然知道这个东东和连接有一定的关系,那就看看它的具体信息吧。

    查msdn,知道字段sql_handle是对应sql的句本。接下来的事情,当然是找句本对应的sql了。

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]use master SELECT db_name(s1.dbid), s2.text FROM sysprocesses AS s1 CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 WHERE s2.objectid is null ORDER BY s1.sql_handle

    这下就知道是什么东东了,就知道是哪个语句对应的连接数高了,知道语句了,就知道对应的操作是那个没有关闭连接了。。。

    这样找连接数过高的问题,是不是比较方便呢?

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告