【问题标题】:tomcat connection pool issuetomcat连接池问题
【发布时间】:2016-08-04 05:33:38
【问题描述】:

我们正在为我们的应用程序使用 tomcat 连接池。有时会从日志中观察到连接在池中不可用。虽然它不会停止应用程序服务器本身,但用户操作会因此而中断。我们正在向数据源添加以下参数。:

<Resource
   name=XXXXX
   type=xxxxx
   username=xxxxx
   password=xxxxxx
   driverClassName=xxxxx
   maxIdle=2
   url=xxxxx
   maxActive=10
/>

问题:是否有可能连接池在一定时间内变空,然后连接又可用?

【问题讨论】:

  • 我以为你会想要 minIdle
  • 您提出的问题的答案是“是”,但这个答案可能毫无价值,因为您已经从程序的行为中知道了这一点。
  • @Scary minIdle 默认为 initialSize 即 10
  • @ravthiru 我假设如果 maxIdle 大小小于 initialSize,它会更改默认值。

标签: java tomcat7 database-connection connection-pooling


【解决方案1】:

除非所有空闲连接都未通过验证查询,否则连接池不会降至 0。这里发生的情况是您的连接空闲超时到 maxIdle 大小为 2。空闲连接通常是一件好事,因为它们避免了您遇到的确切问题;打开新连接的成本很高。

【讨论】:

  • 约翰您好,感谢您的回复。如果我添加 initialSize 和 minIdle 参数会有帮助吗?
  • 连接池启动时会创建 initialSize 连接。随着同时请求更多连接,它将增长到 maxActive。一旦这些连接变得空闲,它将下降到 maxIdle。一旦这些空闲连接超时,它将下降到 minIdle。同时提高 maxIdle 和 minIdle 将导致更多空闲连接保持更长时间。提高 initialSize 将推动空闲连接创建启动,而不是根据用户需求。将 minIdle 设置为 initialSize 也是一个很好的起点。
猜你喜欢
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多