iteye_6244 2011-06-16 21:11
浏览 278
已采纳

阿里巴巴面试题 java连接池中连接如何收缩

阿里巴巴面试的时候问到的一个问题,不太清楚,网上好像也没搜到比较详细的答案。

java连接池中一般都有设置最大、最小连接数,当连接池中的连接达到最大连接数时,就不会再创建新的连接啦,但程序是怎么收缩连接池,到最小空闲连接数的呢?

个人猜测:web容器会定时检测连接池中空闲连接,当超过一定时间没有使用的话,先判断现有连接池中的连接是否大于最小连接数,如果大于的话,就好回收这个空闲连接,否则的话,就不会进行回收。

不知道是否正确?

  • 写回答

4条回答 默认 最新

  • iteye_6273 2011-06-17 21:10
    关注

    [quote]
    根据 connectionTimeout="20000" 这个时间,如果这个时间段一直没连接就关闭了
    [/quote]
    这个timeout的时间是对于获取数据库连接超时的时间,比如当数据库的连接达到最大值的时候,再来请求connection时就要等待,这个时候会有一个等待超时时间,您所说的是这个超时时间。

    楼主所讲的连接池收缩的问题,其实对于不同的连接池产品的话,应该处理的策略是会有所不同的,但是大体上应该跟楼主讲得差不多,可能是按创建时间对连接池中的连接排序,对于空闲连接的状态,可开辟专门的线程定时检测,以释放connection.

    还有一个问题,如下:
    如何确保连接池中的最小连接数呢?有动态和静态两种策略。动态即每隔一定时间就对连接池进行检测,如果发现连接数量小于最小连接数,则补充相应数量的新连接,以保证连接池的正常运转。静态是发现空闲连接不够时再去检查。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名