【问题标题】:As projects increase, the number of connections increases随着项目的增加,连接的数量也在增加
【发布时间】:2019-06-13 07:52:23
【问题描述】:

我正在使用 EclipseTomcat8.5 和连接池。 运行 Tomcat Server 会导致问题。 这意味着更多的连接将会增加。

例如) 1.没有项目/tomcat服务器:运行 结果 -> 10 个连接创建。

  1. 一个项目/tomcat 服务器:运行 结果 -> 20 个连接创建。

... 项目数 * 10 + 10(tomcat 服务器) = 结果连接 (8 * 10 + 10 = 90)

但是,项目是一个空项目。 没有代码,只是挂载在服务器上。

连接代码如下:

<Resource 
name="jdbc/myoracle" 
auth="Container" 
type="javax.sql.DataSource" 
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="------" 
username="----" 
password="------" 
initialSize="10" 
maxTotal="10" 
maxIdle="10" 
minIdle="10" 
maxWaitMillis="5000" /> 

这是context.xml 代码。

没有从任何文件写入其他代码。

到底怎么了?

【问题讨论】:

  • initialSize="10"。如果项目为空,“运行结果”是什么?
  • initialSize 什么时候为空? initialSize="" 这个?如果你做对了,结果就是错误。我不明白这个问题。结果:java.lang.NumberFormatException:对于输入字符串:“”
  • 什么是数字空值?可能是 0
  • sorry,initialSize="0" 一个项目的结果如下: Connection not created。 (零)如果是 initialSize="2",则结果是四个连接。项目数 * initialSize + initialSize = 结果连接。

标签: java jsp tomcat


【解决方案1】:

您没有使用 Tomcat 的共享连接池。

&lt;Resource&gt; 移动到server.xml&lt;GlobalNamingResources&gt; 部分,然后改用&lt;ResourceLink name="jdbc/myoracle" global="jdbc/myoracle" type="javax.sql.DataSource"/&gt;

现在,您所有的网络应用都将共享这 10 个连接。

您可能希望减少 initialSizeminIdle,例如到 1,如果需要,请提高 maxTotal 以便为所有 webapps 提供足够的资源,前提是您同时在它们中执行所有操作。

【讨论】:

  • 感谢您的实际报价。已经创建了更好的代码。
  • @바보린 我想补充一点,context.xml 中的所有内容都是针对每个应用程序创建的。因此,如果在 context.xml 中定义,每个应用程序都会获得它自己的、独立的侦听器、阀门、资源等实例
猜你喜欢
  • 2018-01-29
  • 2020-11-03
  • 2013-08-28
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多