连接池耗尽了,导致请求连接的程序等了很久都没等到连接而超时,相关配置是这两项:<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="60" />
<!--当连接池连接耗尽时,客户端获取连接等待所需时间-->
<property name="checkoutTimeout" value="20000"/>
原因基本上是有连接泄漏,检查代码是怎么关闭连接的?是不是都在finally里面close了?

解决方案 »

  1.   

    我程序里面没有手动关闭,hibernateTemplate不会自动关闭吗
      

  2.   

    如果是完全凭借于Spring的HibernateTemplate来做操作,它自己会自动关闭。如果你用了getSession()之类的做些复杂SQL或HQL操作,那么要自己关闭。
      

  3.   

    如果熟悉数据库的话,可以去查看下数据库中保持的连接session,最后究竟都执行了啥语句,这样便于反向追查问题源。一般来说,问题出处都会比较集中。
      

  4.   


    只有两个地方用了getSession()  我自己也关闭了  其他都用Spring的HibernateTemplate来做操作现在就不知道是哪的问题  郁闷
      

  5.   


    你这个不是办法,连接再多,也经不起泄漏。我4楼说的:
    如果熟悉数据库的话,可以去查看下数据库中保持的连接session,最后究竟都执行了啥语句,这样便于反向追查问题源。
      

  6.   

    ql> show processlist;
    +-----+------+---------------------+---------+---------+------+-------+------------------+
    | Id  | User | Host                | db      | Command | Time | State | Info             |
    +-----+------+---------------------+---------+---------+------+-------+------------------+
    |  59 | root | localhost           | NULL    | Query   |    0 | NULL  | show processlist |
    |  80 | root | 192.168.1.102:56229 | ezzcard | Sleep   | 4511 |       | NULL             |
    |  93 | root | 192.168.1.102:56232 | ezzcard | Sleep   | 4507 |       | NULL             |
    | 349 | root | 192.168.1.15:37854  | ezzcard | Sleep   |  808 |       | NULL             |
    | 348 | root | 192.168.1.15:37855  | ezzcard | Sleep   |  808 |       | NULL             |
    | 350 | root | 192.168.1.15:37856  | ezzcard | Sleep   |  808 |       | NULL             |
    | 352 | root | 192.168.1.15:37858  | ezzcard | Sleep   |  808 |       | NULL             |
    | 351 | root | 192.168.1.15:37857  | ezzcard | Sleep   |  808 |       | NULL             |
    | 355 | root | 192.168.1.15:37861  | ezzcard | Sleep   |  808 |       | NULL             |
    | 363 | root | 192.168.1.15:37874  | ezzcard | Sleep   |  704 |       | NULL             |
    | 364 | root | 192.168.1.15:37875  | ezzcard | Sleep   |  704 |       | NULL             |
    | 365 | root | 192.168.1.15:37876  | ezzcard | Sleep   |  704 |       | NULL             |
    | 366 | root | 192.168.1.15:37877  | ezzcard | Sleep   |  704 |       | NULL             |
    | 367 | root | 192.168.1.15:37878  | ezzcard | Sleep   |  704 |       | NULL             |
    | 368 | root | 192.168.1.15:37879  | ezzcard | Sleep   |  704 |       | NULL             |
    | 369 | root | 192.168.1.15:37880  | ezzcard | Sleep   |  701 |       | NULL             |
    | 370 | root | 192.168.1.15:37881  | ezzcard | Sleep   |  701 |       | NULL             |
    | 371 | root | 192.168.1.15:37882  | ezzcard | Sleep   |  701 |       | NULL             |
    | 372 | root | 192.168.1.15:37883  | ezzcard | Sleep   |  701 |       | NULL             |
    | 373 | root | 192.168.1.15:37884  | ezzcard | Sleep   |  701 |       | NULL             |
    | 374 | root | 192.168.1.15:37885  | ezzcard | Sleep   |  701 |       | NULL             |
    | 375 | root | 192.168.1.15:37886  | ezzcard | Sleep   |  693 |       | NULL             |
    | 378 | root | 192.168.1.15:37890  | ezzcard | Sleep   |  696 |       | NULL             |
    | 379 | root | 192.168.1.15:37892  | ezzcard | Sleep   |  646 |       | NULL             |
    | 381 | root | 192.168.1.15:37894  | ezzcard | Sleep   |  646 |       | NULL             |
    | 380 | root | 192.168.1.15:37893  | ezzcard | Sleep   |  646 |       | NULL             |
    | 382 | root | 192.168.1.15:37898  | ezzcard | Sleep   |  646 |       | NULL             |
    | 383 | root | 192.168.1.15:37899  | ezzcard | Sleep   |  646 |       | NULL             |
    | 384 | root | 192.168.1.15:37901  | ezzcard | Sleep   |  646 |       | NULL             |
    | 390 | root | 192.168.1.15:37909  | ezzcard | Sleep   |  520 |       | NULL             |
    | 393 | root | 192.168.1.15:37913  | ezzcard | Sleep   |  521 |       | NULL             |
    | 397 | root | 192.168.1.15:37920  | ezzcard | Sleep   |  367 |       | NULL             |
    | 398 | root | 192.168.1.15:37921  | ezzcard | Sleep   |  369 |       | NULL             |
    | 402 | root | 192.168.1.15:37928  | ezzcard | Sleep   |  287 |       | NULL             |
    | 403 | root | 192.168.1.15:37929  | ezzcard | Sleep   |  291 |       | NULL             |
    | 412 | root | 192.168.1.15:37941  | ezzcard | Sleep   |  146 |       | NULL             |
    | 413 | root | 192.168.1.15:37942  | ezzcard | Sleep   |  147 |       | NULL             |
    +-----+------+---------------------+---------+---------+------+-------+------------------+
    37 rows in set (0.00 sec)
      

  7.   

    这个没用啊,要找的是某个会话所执行的最后一句SQL是啥,不行的话装个工具试试看,Spotlight
      

  8.   

    好像有些语句可以查出哪个语句执行的时间,使用cpu的时间什么的。忘了