你与其让它去等待
不若主动释放连接

解决方案 »

  1.   

    不是的,可能别人正在用全部连接,
    在五分钟之后别人不用连接了,这个时间等待的就可以得到连接
      

  2.   

    首先,你需要屏蔽客户端直接申请数据库连接,对于这样的情况,你可以抽象出一个数据库连接管理层,假设是一个数据库连接池,你设定最大的连接数为10(这点完全可以由你来控制).
    其次当新的连接请求到达的时候,就完全是你可以控制的,你完全可以做到连续三次申请等待获得数据库连接.
    不过建立你把失败重试的逻辑放在客户端.这样可能会更为合理一点.对于连接管理层的逻辑就相对简单了,有连接就给,没有就返回失败.在这样的设计下,你可以采用现成的第三方的连接池产品,只需要控制连接数就可以了.
    不需要Timer,sleep5分再次尝试即可.