Java Tomcat7中的连接池
这是我当前的配置Java Tomcat7中的连接池,java,tomcat,tomcat7,connection-pooling,Java,Tomcat,Tomcat7,Connection Pooling,这是我当前的配置 <Resource name="jdbc/data" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/TABLE_NAME"
<Resource
name="jdbc/data"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/TABLE_NAME"
username="USER_NAME"
password="PASSWORD"
initialSize="10"
maxActive="50"
suspectTimeout="120"
minIdle="10"
maxIdle="20"
maxWait="1000"
testOnBorrow="true"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
validationQuery="SELECT 1 FROM DUAL"
validationInterval="40"
removeAbandoned="true"
removeAbandonedTimeout="100"
/>
这是在全球范围内,因此多个应用程序可以使用它。
我对参数有点困惑。我需要一些细节。
我的理解是
initalSize
池启动时创建的连接数
maxActive
一次最多可以激活50个连接
minIdle
10未使用连接时连接保持空闲,否则在maxwait
maxIdle
20个连接可以存储为空闲
但当我启动tomcat服务器时,我可以看到30个空闲连接,这些连接将永远存在。为什么会发生这种情况?我错过什么了吗?根据我对连接池的理解,应该只创建10个连接,并且可以保持空闲模式。当你说
这是在全球范围内,因此多个应用程序可以使用它
你具体是什么意思?它是在GlobalNamingResources块的$CATALINA_BASE/conf/server.xml中还是在$CATALINA_BASE/conf/context.xml中
在$CATALINA_BASE/conf/server.xml块中定义资源标记将导致在整个服务器上只创建一个资源。然后,通过向上下文配置添加标记,可以将其共享给系统上部署的应用程序
在$CATALINA_BASE/conf/context.xml中定义资源将为部署到Tomcat实例的每个应用程序定义一次资源。因此,如果您部署了三个应用程序,您将得到三个独立的资源。这是一个猜测,但可能是您看到30个到数据库服务器的连接的原因。true guess:-)我在$CATALINA_BASE/conf/context.xml中定义了一个资源