I have a tomcat configuration which supports http2 and as per 9.0.16 documentation, If not specified, the default value of 20 will be used.
So, I just want to increase the maxConcurrentStreamExecution and maxConcurrentStream to 100 or 200, so I configure as per the documentation mentioned above
My connector configuration is as follows,
<Connector port="9191"
URIEncoding="UTF-8"
sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="50000"
SSLEnabled="true"
compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml"
compression="on"
minSpareThreads="25"
noCompressionUserAgents="gozilla, traviata"
scheme="https"
secure="true"
keystoreFile="conf/keystoreFile.keystore"
keystorePass="password">
<UpgradeProtocol compression="on"
maxConcurrentStreamExecution="100"
maxConcurrentStreams="100"
className="org.apache.coyote.http2.Http2Protocol">
</UpgradeProtocol>
</Connector>
but, when checking the tomcat logs, I can see a warning
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
27-Feb-2019 19:16:34.595 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxConcurrentStreamExecution' to '100' did not find a matching property.
27-Feb-2019 19:16:34.603 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxConcurrentStreams' to '100' did not find a matching property.
27-Feb-2019 19:16:34.679 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.16
27-Feb-2019 19:16:34.679 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Feb 4 2019 16:30:29 UTC
27-Feb-2019 19:16:34.680 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.16.0
27-Feb-2019 19:16:34.680 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
27-Feb-2019 19:16:34.680 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.4.0-141-generic
27-Feb-2019 19:16:34.681 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
As you can see tomcat is throwing not find a matching property warning,
But this configuration is necessary for me to increase the throughput of my server which is going to handle http2 multiplexed post requests in large quantity
Tomcat : 9.0.16, JDK: OpneJDK_10.0.1, OS: Ubunut/Centos
Kindly let me know where I m wrong and how to configure it properly to make use of the attributes correctly
TIA
Testing it using a newly downloaded Apache Tomcat 9.0.16 and the Connector
element you provided worked without error or warning for me. Adding an intentional typo to the UpgradeProtocol
element attribute like <UpgradeProtocol maxConcurrentStreamExecutionTest="100".../>
results in following warning:
WARNING: Match [Server/Service/Connector/UpgradeProtocol] failed to set property [maxConcurrentStreamExecutionTest] to [100]
Comparing this to your warning log message:
27-Feb-2019 19:16:34.595 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxConcurrentStreamExecution' to '100' did not find a matching property.
indicates that you wrongly added those properties to a <Connector/>
element instead of an <UpgradeProtocol/>
element. This would also mean the Connector
element provided in your question is not the (only) one configured for your server.