在tomcat 9中重写maxWait

在tomcat 9中重写maxWait,tomcat,tomcat9,Tomcat,Tomcat9,我有一个tomcat服务器,位于tomcatFolder/conf/server.xml下 我得到了这个标签资源 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

我有一个tomcat服务器,位于tomcatFolder/conf/server.xml下 我得到了这个标签资源

<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 run命令中重写maxWait值???

我不确定如何/override/,但您可以在
setenv.sh
中定义一个值并在配置文件中使用它。例如:

    # setenv.sh
    JAVA_OPTS="$JAVA_OPTS -Djdbc.maxWait=5000"
对于9.0.35和8.5.55,分隔符更改为
:-
。e、 g

maxWait="${jdbc.maxWait:-10000}"

(多亏了Piotr p.Karwasz的评论)

你不能。你为什么要这样做?我没有修改文件的权限。你能解释一下为什么你可以添加
setenv.sh
文件,甚至修改
catalina.sh
,但是你不能修改
server.xml
?您可以始终使用
startup.sh-config/path/to/server.xml
。您也可以使用
${jdbc.maxWait:-10000}
:如果未定义属性
jdbc.maxWait
,将使用默认值
10000
。Piotr,我发现您的建议仅在没有破折号“-”字符的情况下有效。e、 g.只有这样做有效:${jdbc.maxWait:10000}。然后是冒号“:”字符包含在默认值中!显然,在版本和中分隔符从
更改为
:-
。找到Piotr真好!
maxWait="${jdbc.maxWait:10000}"
maxWait="${jdbc.maxWait:-10000}"