在 tomcat 9 中覆盖 maxWait
Override maxWait in tomcat 9
我有一个 tomcat 服务器并且在 tomcatFolder/conf/server.xml
我得到了这个标签 Resource
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
如何覆盖 setenv.sh 或 catalina.sh 运行 命令中的 maxWait 值??
我不确定如何 /override/,但您可以在 setenv.sh
中定义一个值并在配置文件中使用它。例如:
# setenv.sh
JAVA_OPTS="$JAVA_OPTS -Djdbc.maxWait=5000"
<!-- server.xml or context.xml -->
<Resource name=...
...
maxWait="${jdbc.maxWait}"
...
更新:
Tomcat 版本 9.0.34 和 8.5.54 在配置文件中使用 ${...} 属性 替换时添加了对默认值的支持。对于 9.0.34 和 8.5.54,分隔符是冒号。例如
maxWait="${jdbc.maxWait:10000}"
对于 9.0.35 和 8.5.55,分隔符已更改为 :-
。例如
maxWait="${jdbc.maxWait:-10000}"
(感谢 Piotr P. Karwasz 的评论)
我有一个 tomcat 服务器并且在 tomcatFolder/conf/server.xml 我得到了这个标签 Resource
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
如何覆盖 setenv.sh 或 catalina.sh 运行 命令中的 maxWait 值??
我不确定如何 /override/,但您可以在 setenv.sh
中定义一个值并在配置文件中使用它。例如:
# setenv.sh
JAVA_OPTS="$JAVA_OPTS -Djdbc.maxWait=5000"
<!-- server.xml or context.xml -->
<Resource name=...
...
maxWait="${jdbc.maxWait}"
...
更新:
Tomcat 版本 9.0.34 和 8.5.54 在配置文件中使用 ${...} 属性 替换时添加了对默认值的支持。对于 9.0.34 和 8.5.54,分隔符是冒号。例如
maxWait="${jdbc.maxWait:10000}"
对于 9.0.35 和 8.5.55,分隔符已更改为 :-
。例如
maxWait="${jdbc.maxWait:-10000}"
(感谢 Piotr P. Karwasz 的评论)