前提条件:hostB 不可连接
使用context.xml(A)时,Tomcat启动时会检查每个数据连接(在初始化hostB的数据连接池时抛出错误),而使用context.xml(B)时,似乎没有检查任何内容没有数据库连接错误。
有谁知道为什么会这样吗?
谢谢
↓context.xml(A)
<Resource name="jdbc/AAA"
initialSize="8"
minIdle="8"
maxWait="300000"
removeAbandoned="true"
removeAbandonedTimeout="60"
auth="Container"
type="javax.sql.DataSource"
username="uname"
password="password"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://hostA:port;databaseName=sqlserverDB" />
<Resource name="jdbc/BBB"
initialSize="8"
minIdle="8"
maxWait="300000"
removeAbandoned="true"
removeAbandonedTimeout="60"
auth="Container"
type="javax.sql.DataSource"
username="uname"
password="password"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://hostB:port;databaseName=sqlserverDB" />
↓context.xml(B)
<Resource name="jdbc/AAA"
auth="Container"
type="javax.sql.DataSource"
username="uname"
password="password"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://hostA:port;databaseName=sqlserverDB" />
<Resource name="jdbc/BBB"
auth="Container"
type="javax.sql.DataSource"
username="uname"
password="password"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://hostB:port;databaseName=sqlserverDB" />
最佳答案
第一个设置了 initilsize 和 minIdle,因此 tomcat 将在初始化时尝试打开 8 个连接。第二个闲置直到真正需要它为止。
关于java - Tomcat - 数据库连接池问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193736/