You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Weixiang <ku...@huawei.com> on 2012/12/03 05:53:08 UTC
Tomcat7.0-Setting property 'threadPriority' did not find a matching
property
Tomcat version:7.0.29
Question:
I config in my server.xml for a HTTP Connector named “MGMT”:
threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
When application is starting up,the catalina.out gives some warning information:
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'threadPriority' to 'java.lang.Thread#MAX_PRIORITY' did not find a matching property.
I search on google and did not get any useful help;
I also search documentation on the apache.org and make sure that 'threadPriority' is a legal attribute for HTTP Connector,so I wonder why would this warning information will come up.
Please tell me what’s wrong, Thank you!
________________________________
Patch my server.xml for more information:
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="-1" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<!--Connector for application-->
<Connector server="APP"
port="13080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
acceptCount="2000"
maxThreads="1200"
minSpareThreads="10"
compression="on"
compressionMinSize="2048"
maxPostSize="10240"
allowTrace="false"
redirectPort="13443"
enableLookups="false"
xpoweredBy="false"
compressableMimeType="text/xml,application/octet-stream,application/json"/>
<!-- A "Connector" using the shared thread pool-->
<!-- <Connector executor="tomcatThreadPool" port="19998" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8542" /> -->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--Connector for management-->
<Connector server="MGMT"
port="13089"
protocol="HTTP/1.1"
maxThreads="120"
acceptCount="200"
enableLookups="false"
xpoweredBy="false"
threadPriority="java.lang.Thread#MAX_PRIORITY"
redirectPort="13443" />
<!--Connector for https-->
<Connector server="HTTPS"
port="13443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled ="true"
sslProtocol ="TLS"
acceptCount="2000"
minSpareThreads="10"
enableLookups="false"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="conf/key.store"
keystorePass="oa5l5Azob7HhWOsjJZyjOQ=="
ciphers="SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
maxPostSize="10240"
connectionTimeout="20000"
allowTrace="false"
xpoweredBy="false" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port="18010" protocol="AJP/1.3" connectionTimeout="20000" maxPostSize="10240" redirectPort="8542" allowTrace="false" xpoweredBy="false" /> -->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="3" lockOutTime="600"
cacheSize="1000" cacheRemovalWarningTime="3600">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" digest="sha"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false" >
<Context path="/mgmtWeb" docBase="mgmtWeb" reloadable="false" />
<!-- Link to the user database we will get roles from -->
<!--Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.138.25.108" />-->
<!-- Link to the user database we will get roles from -->
<!-- <Context path="/test" reloadable-"true" docBase="test" /> -->
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
________________________________
魏翔
华为技术有限公司 Huawei Technologies Co., Ltd.
[Company_logo]
Phone: 025-56620390
Fax:
Mobile: 15850503037
Email: kurt.weixiang@huawei.com
地址:南京市雨花区软件大道101号华为南京研究所 邮编:210000
Huawei Technologies Co., Ltd.
RuanJianDaDao, YuHua District,NanJing 210000 P.R.China
http://www.huawei.com
________________________________
本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁
止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中
的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
Re: 答复: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Posted by Pid <pi...@pidster.com>.
On 03/12/2012 15:31, Christopher Schultz wrote:
> Pid,
>
> On 12/3/12 3:35 AM, Pid * wrote:
>> On 3 Dec 2012, at 05:43, Weixiang <ku...@huawei.com>
>> wrote:
>
>>> Thank you, after I changed 'java.lang.Thread#MAX_PRIORITY' to
>>> integer '10', the warning disappeared in tomcat 7.
>>>
>>> But I user 'java.lang.Thread#MAX_PRIORITY' in tomcat 6.0.35 and
>>> there's no any warning.
>>>
>>> So I was wondering whether the tomcat 6 block this warning or
>>> not?
>
>> I'd be interested to hear about the load profile and application
>> behaviour you are attempting to modify (improve?).
>
> If you increase the thread priority, the threads will run faster. Duh.
Quite. Alternatively, it might be the case that setting the thread
priority will have no measurable effect at all. If any effect.
The OP is trying to set the thread priority on what appears to be an
HTTP connector (marked in a comment for 'management').
Of the 3 connectors configured, the config is as follows:
port protocol threads accept
13089 BIO+HTTP 120 200
13080 NIO+HTTP 1200 2000
13443 NIO+HTTPS 200 2000
The value of the acceptCount attributes are bonkers, IMHO. This should
never be larger than the number of threads in the pool - if the apps
really need to support >1200 inbounds, either increase the number of
threads or add another Tomcat instance.
The HTTPS thread count value (being the default) *may* be
accurate/appropriate or it might not, but it seems low given the other
numbers.
p
--
[key:62590808]
Re: 答复: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Pid,
On 12/3/12 3:35 AM, Pid * wrote:
> On 3 Dec 2012, at 05:43, Weixiang <ku...@huawei.com>
> wrote:
>
>> Thank you, after I changed 'java.lang.Thread#MAX_PRIORITY' to
>> integer '10', the warning disappeared in tomcat 7.
>>
>> But I user 'java.lang.Thread#MAX_PRIORITY' in tomcat 6.0.35 and
>> there's no any warning.
>>
>> So I was wondering whether the tomcat 6 block this warning or
>> not?
>
> I'd be interested to hear about the load profile and application
> behaviour you are attempting to modify (improve?).
If you increase the thread priority, the threads will run faster. Duh.
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with undefined - http://www.enigmail.net/
iEYEARECAAYFAlC8xbYACgkQ9CaO5/Lv0PDZQACgnyQANWU+7/VY/JRob4sQePsw
8fsAoKMywENSuQA2GMEJ6kjkYULNIfO0
=pKNh
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: 答复: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Posted by Pid * <pi...@pidster.com>.
On 3 Dec 2012, at 05:43, Weixiang <ku...@huawei.com> wrote:
> Thank you, after I changed 'java.lang.Thread#MAX_PRIORITY' to integer '10', the warning disappeared in tomcat 7.
>
> But I user 'java.lang.Thread#MAX_PRIORITY' in tomcat 6.0.35 and there's no any warning.
>
> So I was wondering whether the tomcat 6 block this warning or not?
I'd be interested to hear about the load profile and application
behaviour you are attempting to modify (improve?).
p
>
> -----邮件原件-----
> 发件人: xueshengzj [mailto:xueshengzj@163.com]
> 发送时间: 2012年12月3日 13:36
> 收件人: Tomcat Users List
> 主题: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
>
> Hi, have you seen the error that show it. It tell us that the property is not matched. The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY. It should return integer.
>
>
>
>
>
>
> 在 2012-12-03 12:53:08,Weixiang <ku...@huawei.com> 写道:
>
>
> Tomcat version:7.0.29
>
>
>
> Question:
>
> I config in my server.xml for a HTTP Connector named “MGMT”:
>
>
>
> threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
>
>
>
> When application is starting up,the catalina.out gives some warning information:
>
>
>
> WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'threadPriority' to 'java.lang.Thread#MAX_PRIORITY' did not find a matching property.
>
>
>
> I search on google and did not get any useful help;
>
>
>
> I also search documentation on the apache.org and make sure that 'threadPriority' is a legal attribute for HTTP Connector,so I wonder why would this warning information will come up.
>
>
>
> Please tell me what’s wrong, Thank you!
>
>
>
> Patch my server.xml for more information:
>
>
>
> <?xml version='1.0' encoding='utf-8'?>
>
> <!--
>
> Licensed to the Apache Software Foundation (ASF) under one or more
>
> contributor license agreements. See the NOTICE file distributed with
>
> this work for additional information regarding copyright ownership.
>
> The ASF licenses this file to You under the Apache License, Version 2.0
>
> (the "License"); you may not use this file except in compliance with
>
> the License. You may obtain a copy of the License at
>
>
>
> http://www.apache.org/licenses/LICENSE-2.0
>
>
>
> Unless required by applicable law or agreed to in writing, software
>
> distributed under the License is distributed on an "AS IS" BASIS,
>
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>
> See the License for the specific language governing permissions and
>
> limitations under the License.
>
> -->
>
> <!-- Note: A "Server" is not itself a "Container", so you may not
>
> define subcomponents such as "Valves" at this level.
>
> Documentation at /docs/config/server.html
>
> -->
>
> <Server port="-1" shutdown="SHUTDOWN">
>
> <!-- Security listener. Documentation at /docs/config/listeners.html
>
> <Listener className="org.apache.catalina.security.SecurityListener" />
>
> -->
>
> <!--APR library loader. Documentation at /docs/apr.html -->
>
> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
>
> <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
>
> <Listener className="org.apache.catalina.core.JasperListener" />
>
> <!-- Prevent memory leaks due to use of particular java/javax APIs-->
>
> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
>
> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
>
> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
>
> <!-- Global JNDI resources
>
> Documentation at /docs/jndi-resources-howto.html
>
> -->
>
> <GlobalNamingResources>
>
> <!-- Editable user database that can also be used by
>
> UserDatabaseRealm to authenticate users
>
> -->
>
> <Resource name="UserDatabase" auth="Container"
>
> type="org.apache.catalina.UserDatabase"
>
> description="User database that can be updated and saved"
>
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>
> pathname="conf/tomcat-users.xml" />
>
> </GlobalNamingResources>
>
>
>
> <!-- A "Service" is a collection of one or more "Connectors" that share
>
> a single "Container" Note: A "Service" is not itself a "Container",
>
> so you may not define subcomponents such as "Valves" at this level.
>
> Documentation at /docs/config/service.html
>
> -->
>
> <Service name="Catalina">
>
>
>
> <!--The connectors can use a shared executor, you can define one or more named thread pools-->
>
> <!--
>
> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
>
> maxThreads="150" minSpareThreads="4"/>
>
> -->
>
>
>
> <!-- A "Connector" represents an endpoint by which requests are received
>
> and responses are returned. Documentation at :
>
> Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
>
> Java AJP Connector: /docs/config/ajp.html
>
> APR (HTTP/AJP) Connector: /docs/apr.html
>
> Define a non-SSL HTTP/1.1 Connector on port 8080
>
> -->
>
>
>
> <!--Connector for application-->
>
> <Connector server="APP"
>
> port="13080"
>
> protocol="org.apache.coyote.http11.Http11NioProtocol"
>
> connectionTimeout="20000"
>
> acceptCount="2000"
>
> maxThreads="1200"
>
> minSpareThreads="10"
>
> compression="on"
>
> compressionMinSize="2048"
>
> maxPostSize="10240"
>
> allowTrace="false"
>
> redirectPort="13443"
>
> enableLookups="false"
>
> xpoweredBy="false"
>
> compressableMimeType="text/xml,application/octet-stream,application/json"/>
>
>
>
> <!-- A "Connector" using the shared thread pool-->
>
> <!-- <Connector executor="tomcatThreadPool" port="19998" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8542" /> -->
>
> <!-- Define a SSL HTTP/1.1 Connector on port 8443
>
> This connector uses the JSSE configuration, when using APR, the
>
> connector should be using the OpenSSL style configuration
>
> described in the APR documentation -->
>
>
>
> <!--Connector for management-->
>
> <Connector server="MGMT"
>
> port="13089"
>
> protocol="HTTP/1.1"
>
> maxThreads="120"
>
> acceptCount="200"
>
> enableLookups="false"
>
> xpoweredBy="false"
>
> threadPriority="java.lang.Thread#MAX_PRIORITY"
>
> redirectPort="13443" />
>
>
>
> <!--Connector for https-->
>
> <Connector server="HTTPS"
>
> port="13443"
>
> protocol="org.apache.coyote.http11.Http11NioProtocol"
>
> SSLEnabled ="true"
>
> sslProtocol ="TLS"
>
> acceptCount="2000"
>
> minSpareThreads="10"
>
> enableLookups="false"
>
> scheme="https"
>
> secure="true"
>
> clientAuth="false"
>
> keystoreFile="conf/key.store"
>
> keystorePass="oa5l5Azob7HhWOsjJZyjOQ=="
>
> ciphers="SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
>
> maxPostSize="10240"
>
> connectionTimeout="20000"
>
> allowTrace="false"
>
> xpoweredBy="false" />
>
>
>
> <!-- Define an AJP 1.3 Connector on port 8009 -->
>
> <!-- <Connector port="18010" protocol="AJP/1.3" connectionTimeout="20000" maxPostSize="10240" redirectPort="8542" allowTrace="false" xpoweredBy="false" /> -->
>
>
>
> <!-- An Engine represents the entry point (within Catalina) that processes
>
> every request. The Engine implementation for Tomcat stand alone
>
> analyzes the HTTP headers included with the request, and passes them
>
> on to the appropriate Host (virtual host).
>
> Documentation at /docs/config/engine.html -->
>
>
>
> <!-- You should set jvmRoute to support load-balancing via AJP ie :
>
> <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
>
> -->
>
> <Engine name="Catalina" defaultHost="localhost">
>
>
>
> <!--For clustering, please take a look at documentation at:
>
> /docs/cluster-howto.html (simple how to)
>
> /docs/config/cluster.html (reference documentation) -->
>
> <!--
>
> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
>
> -->
>
>
>
> <!-- Use the LockOutRealm to prevent attempts to guess user passwords
>
> via a brute-force attack -->
>
> <Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="3" lockOutTime="600"
>
> cacheSize="1000" cacheRemovalWarningTime="3600">
>
> <!-- This Realm uses the UserDatabase configured in the global JNDI
>
> resources under the key "UserDatabase". Any edits
>
> that are performed against this UserDatabase are immediately
>
> available for use by the Realm. -->
>
> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" digest="sha"
>
> resourceName="UserDatabase"/>
>
> </Realm>
>
>
>
> <Host name="localhost" appBase="webapps"
>
> unpackWARs="true" autoDeploy="false" deployOnStartup="false" >
>
> <Context path="/mgmtWeb" docBase="mgmtWeb" reloadable="false" />
>
> <!-- Link to the user database we will get roles from -->
>
> <!--Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.138.25.108" />-->
>
>
>
> <!-- Link to the user database we will get roles from -->
>
>
>
>
>
> <!-- <Context path="/test" reloadable-"true" docBase="test" /> -->
>
>
>
> <!-- SingleSignOn valve, share authentication between web applications
>
> Documentation at: /docs/config/valve.html -->
>
> <!--
>
> <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
>
> -->
>
>
>
> <!-- Access log processes all example.
>
> Documentation at: /docs/config/valve.html
>
> Note: The pattern used is equivalent to using pattern="common" -->
>
> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>
> prefix="localhost_access_log." suffix=".txt"
>
> pattern="%h %l %u %t "%r" %s %b" />
>
>
>
> </Host>
>
>
>
> </Engine>
>
> </Service>
>
> </Server>
>
>
>
>
>
>
>
> 魏翔
> 华为技术有限公司 Huawei Technologies Co., Ltd.
>
>
> Phone: 025-56620390
> Fax:
> Mobile: 15850503037
> Email: kurt.weixiang@huawei.com
> 地址:南京市雨花区软件大道101号华为南京研究所 邮编:210000
> Huawei Technologies Co., Ltd.
> RuanJianDaDao, YuHua District,NanJing 210000 P.R.China
> http://www.huawei.com
>
> 本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁
> 止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中
> 的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
> This e-mail and its attachments contain confidential information from HUAWEI, which
> is intended only for the person or entity whose address is listed above. Any use of the
> information contained herein in any way (including, but not limited to, total or partial
> disclosure, reproduction, or dissemination) by persons other than the intended
> recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
> phone or email immediately and delete it!
> 孝乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙乙行�V�7V'67&�&R�R种柮�W6W'2譜�7V'67&�&TF鲋6B�6哛骥&p肖f�"FF桭桍��6鲋�鍳2�R种柮�W6W'2謫V�F鲋6B�6哛骥&p袪
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: 答复: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Weixiang,
On 12/3/12 12:42 AM, Weixiang wrote:
> Thank you, after I changed 'java.lang.Thread#MAX_PRIORITY' to
> integer '10', the warning disappeared in tomcat 7.
>
> But I user 'java.lang.Thread#MAX_PRIORITY' in tomcat 6.0.35 and
> there's no any warning.
>
> So I was wondering whether the tomcat 6 block this warning or not?
Tomcat 6 silently ignores values it cannot set properly. In Tomcat 6,
you are also *not* setting your thread priority to MAX_PRIORITY -- you
just don't know it.
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with undefined - http://www.enigmail.net/
iEYEARECAAYFAlC8xfwACgkQ9CaO5/Lv0PAC/QCglovQAm1bbQSHyhjSgi0VmWo7
1UsAoJAKNqCzxbmQxZhWqKkvxIf16yYx
=q0Jc
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
答复: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Posted by Weixiang <ku...@huawei.com>.
Thank you, after I changed 'java.lang.Thread#MAX_PRIORITY' to integer '10', the warning disappeared in tomcat 7.
But I user 'java.lang.Thread#MAX_PRIORITY' in tomcat 6.0.35 and there's no any warning.
So I was wondering whether the tomcat 6 block this warning or not?
-----邮件原件-----
发件人: xueshengzj [mailto:xueshengzj@163.com]
发送时间: 2012年12月3日 13:36
收件人: Tomcat Users List
主题: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
Hi, have you seen the error that show it. It tell us that the property is not matched. The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY. It should return integer.
在 2012-12-03 12:53:08,Weixiang <ku...@huawei.com> 写道:
Tomcat version:7.0.29
Question:
I config in my server.xml for a HTTP Connector named “MGMT”:
threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
When application is starting up,the catalina.out gives some warning information:
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'threadPriority' to 'java.lang.Thread#MAX_PRIORITY' did not find a matching property.
I search on google and did not get any useful help;
I also search documentation on the apache.org and make sure that 'threadPriority' is a legal attribute for HTTP Connector,so I wonder why would this warning information will come up.
Please tell me what’s wrong, Thank you!
Patch my server.xml for more information:
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="-1" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<!--Connector for application-->
<Connector server="APP"
port="13080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
acceptCount="2000"
maxThreads="1200"
minSpareThreads="10"
compression="on"
compressionMinSize="2048"
maxPostSize="10240"
allowTrace="false"
redirectPort="13443"
enableLookups="false"
xpoweredBy="false"
compressableMimeType="text/xml,application/octet-stream,application/json"/>
<!-- A "Connector" using the shared thread pool-->
<!-- <Connector executor="tomcatThreadPool" port="19998" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8542" /> -->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--Connector for management-->
<Connector server="MGMT"
port="13089"
protocol="HTTP/1.1"
maxThreads="120"
acceptCount="200"
enableLookups="false"
xpoweredBy="false"
threadPriority="java.lang.Thread#MAX_PRIORITY"
redirectPort="13443" />
<!--Connector for https-->
<Connector server="HTTPS"
port="13443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled ="true"
sslProtocol ="TLS"
acceptCount="2000"
minSpareThreads="10"
enableLookups="false"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="conf/key.store"
keystorePass="oa5l5Azob7HhWOsjJZyjOQ=="
ciphers="SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
maxPostSize="10240"
connectionTimeout="20000"
allowTrace="false"
xpoweredBy="false" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port="18010" protocol="AJP/1.3" connectionTimeout="20000" maxPostSize="10240" redirectPort="8542" allowTrace="false" xpoweredBy="false" /> -->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="3" lockOutTime="600"
cacheSize="1000" cacheRemovalWarningTime="3600">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" digest="sha"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false" >
<Context path="/mgmtWeb" docBase="mgmtWeb" reloadable="false" />
<!-- Link to the user database we will get roles from -->
<!--Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.138.25.108" />-->
<!-- Link to the user database we will get roles from -->
<!-- <Context path="/test" reloadable-"true" docBase="test" /> -->
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
魏翔
华为技术有限公司 Huawei Technologies Co., Ltd.
Phone: 025-56620390
Fax:
Mobile: 15850503037
Email: kurt.weixiang@huawei.com
地址:南京市雨花区软件大道101号华为南京研究所 邮编:210000
Huawei Technologies Co., Ltd.
RuanJianDaDao, YuHua District,NanJing 210000 P.R.China
http://www.huawei.com
本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁
止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中
的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
RE: Re:Tomcat7.0-Setting property 'threadPriority' did not find a
matching property
Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: xueshengzj [mailto:xueshengzj@163.com]
> Subject: Re:Tomcat7.0-Setting property 'threadPriority' did not find a matching property
> The thread priority for threads in the executor
The threadPriority attribute is also available for the <Connector> element, not just <Executor>.
- Chuck
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re:Tomcat7.0-Setting property 'threadPriority' did not find a
matching property
Posted by xueshengzj <xu...@163.com>.
Hi, have you seen the error that show it. It tell us that the property is not matched. The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY. It should return integer.
在 2012-12-03 12:53:08,Weixiang <ku...@huawei.com> 写道:
Tomcat version:7.0.29
Question:
I config in my server.xml for a HTTP Connector named “MGMT”:
threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
When application is starting up,the catalina.out gives some warning information:
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'threadPriority' to 'java.lang.Thread#MAX_PRIORITY' did not find a matching property.
I search on google and did not get any useful help;
I also search documentation on the apache.org and make sure that 'threadPriority' is a legal attribute for HTTP Connector,so I wonder why would this warning information will come up.
Please tell me what’s wrong, Thank you!
Patch my server.xml for more information:
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="-1" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<!--Connector for application-->
<Connector server="APP"
port="13080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
acceptCount="2000"
maxThreads="1200"
minSpareThreads="10"
compression="on"
compressionMinSize="2048"
maxPostSize="10240"
allowTrace="false"
redirectPort="13443"
enableLookups="false"
xpoweredBy="false"
compressableMimeType="text/xml,application/octet-stream,application/json"/>
<!-- A "Connector" using the shared thread pool-->
<!-- <Connector executor="tomcatThreadPool" port="19998" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8542" /> -->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--Connector for management-->
<Connector server="MGMT"
port="13089"
protocol="HTTP/1.1"
maxThreads="120"
acceptCount="200"
enableLookups="false"
xpoweredBy="false"
threadPriority="java.lang.Thread#MAX_PRIORITY"
redirectPort="13443" />
<!--Connector for https-->
<Connector server="HTTPS"
port="13443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled ="true"
sslProtocol ="TLS"
acceptCount="2000"
minSpareThreads="10"
enableLookups="false"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="conf/key.store"
keystorePass="oa5l5Azob7HhWOsjJZyjOQ=="
ciphers="SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
maxPostSize="10240"
connectionTimeout="20000"
allowTrace="false"
xpoweredBy="false" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port="18010" protocol="AJP/1.3" connectionTimeout="20000" maxPostSize="10240" redirectPort="8542" allowTrace="false" xpoweredBy="false" /> -->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="3" lockOutTime="600"
cacheSize="1000" cacheRemovalWarningTime="3600">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" digest="sha"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false" >
<Context path="/mgmtWeb" docBase="mgmtWeb" reloadable="false" />
<!-- Link to the user database we will get roles from -->
<!--Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.138.25.108" />-->
<!-- Link to the user database we will get roles from -->
<!-- <Context path="/test" reloadable-"true" docBase="test" /> -->
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
魏翔
华为技术有限公司 Huawei Technologies Co., Ltd.
Phone: 025-56620390
Fax:
Mobile: 15850503037
Email: kurt.weixiang@huawei.com
地址:南京市雨花区软件大道101号华为南京研究所 邮编:210000
Huawei Technologies Co., Ltd.
RuanJianDaDao, YuHua District,NanJing 210000 P.R.China
http://www.huawei.com
本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁
止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中
的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
Re: [OT] Tomcat7.0-Setting property 'threadPriority' did not find
a matching property
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Konstantin,
On 12/5/12 12:17 AM, Konstantin Kolinko wrote:
> 2012/12/3 Caldarale, Charles R <Ch...@unisys.com>:
>>> From: Weixiang [mailto:kurt.weixiang@huawei.com] Subject:
>>> Tomcat7.0-Setting property 'threadPriority' did not find a
>>> matching property
>>
>>> I config in my server.xml for a HTTP Connector named "MGMT":
>>
>>> threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
>>
>> The documentation may give the impression that you can set the
>> value of the threadPriority attribute to a string referring to
>> some static field, but that is not actually the case. You must
>> supply a numeric value here, which will normally be 10 for the
>> maximum. You can write a simple Java program to display the
>> values of Thread.MIN_PRIORITY and Thread.MAX_PRIORITY, and choose
>> a number within that range.
>>
>> class ThreadPriority { static public void main(String args[])
>> throws Exception { System.out.format("thread priorities: MIN %d,
>> NORM %d, MAX %d%n", Thread.MIN_PRIORITY, Thread.MIN_PRIORITY,
>> Thread.MAX_PRIORITY); } }
>>
>> The JDK 7 Javadoc includes a description for the priority values,
>> but it doesn't appear to be completely accurate:
>> http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.lang.Thread.MAX_PRIORITY
>
>>
> The MIN/NORM/MAX_PRIORITY constants in the Thread class are "final
> static" and thus they are evaluated and inlined at compile time
> and cannot differ between systems.
Yeah, I was surprised long ago to find that javac converts foreign
static final primitives into local constants in the class file's
constant pool. That means that, once compiled, a client class has the
values from compile-time and if the defining-class is changed to have
a different value and the client class isn't recompiled, they will be
out of sync.
So much for what feels like dynamic linking.
A bunch of years ago, I started monkeying around with the JVM,
compiler, disassembler (jad) and a bytecode assembler (I have
forgotten which one... or maybe I wrote one). I found that you could
prevent the compiler from inlining constants from other classes by
using this technique:
public static int SOME_CONSTANT;
static {
SOME_CONSTANT = 4;
}
In that case, references to SomeClass.SOME_CONSTANT in another class
are fetched at runtime using a getfield operation, rather than loading
from the local class's constant pool.
I also found out that the JVM allows you to throw any kind of
reference type, not just exceptions (kinda like C++). I can't remember
if I was able to catch any of those types, though.
I hope this information is interesting to someone. I expect that Chuck
already knows all of this.
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with undefined - http://www.enigmail.net/
iEYEARECAAYFAlC/diUACgkQ9CaO5/Lv0PCq5ACfdK4RlKomC2DH1lf53C1kOHzc
UbAAn3jt5Oci37BFF5ovCWE7wp6r2jci
=hsrF
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Tomcat7.0-Setting property 'threadPriority' did not find a
matching property
Posted by Konstantin Kolinko <kn...@gmail.com>.
2012/12/3 Caldarale, Charles R <Ch...@unisys.com>:
>> From: Weixiang [mailto:kurt.weixiang@huawei.com]
>> Subject: Tomcat7.0-Setting property 'threadPriority' did not find a matching property
>
>> I config in my server.xml for a HTTP Connector named "MGMT":
>
>> threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
>
> The documentation may give the impression that you can set the value of the threadPriority attribute to a string referring to some static field, but that is not actually the case. You must supply a numeric value here, which will normally be 10 for the maximum. You can write a simple Java program to display the values of Thread.MIN_PRIORITY and Thread.MAX_PRIORITY, and choose a number within that range.
>
> class ThreadPriority {
> static public void main(String args[]) throws Exception {
> System.out.format("thread priorities: MIN %d, NORM %d, MAX %d%n",
> Thread.MIN_PRIORITY, Thread.MIN_PRIORITY, Thread.MAX_PRIORITY);
> }
> }
>
> The JDK 7 Javadoc includes a description for the priority values, but it doesn't appear to be completely accurate:
> http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.lang.Thread.MAX_PRIORITY
The MIN/NORM/MAX_PRIORITY constants in the Thread class are "final
static" and thus they are evaluated and inlined at compile time and
cannot differ between systems.
I'll clarify the docs.
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
RE: Tomcat7.0-Setting property 'threadPriority' did not find a
matching property
Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Weixiang [mailto:kurt.weixiang@huawei.com]
> Subject: Tomcat7.0-Setting property 'threadPriority' did not find a matching property
> I config in my server.xml for a HTTP Connector named "MGMT":
> threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
The documentation may give the impression that you can set the value of the threadPriority attribute to a string referring to some static field, but that is not actually the case. You must supply a numeric value here, which will normally be 10 for the maximum. You can write a simple Java program to display the values of Thread.MIN_PRIORITY and Thread.MAX_PRIORITY, and choose a number within that range.
class ThreadPriority {
static public void main(String args[]) throws Exception {
System.out.format("thread priorities: MIN %d, NORM %d, MAX %d%n",
Thread.MIN_PRIORITY, Thread.MIN_PRIORITY, Thread.MAX_PRIORITY);
}
}
The JDK 7 Javadoc includes a description for the priority values, but it doesn't appear to be completely accurate:
http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.lang.Thread.MAX_PRIORITY
- Chuck
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Tomcat7.0-Setting property 'threadPriority' did not find a
matching property
Posted by Konstantin Kolinko <kn...@gmail.com>.
2012/12/3 Weixiang <ku...@huawei.com>
>
> Tomcat version:7.0.29
>
> Question:
>
> I config in my server.xml for a HTTP Connector named “MGMT”:
>
> threadPriority="java.lang.Thread#Thread.MAX_PRIORITY"
>
> When application is starting up,the catalina.out gives some warning information:
>
> WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'threadPriority' to 'java.lang.Thread#MAX_PRIORITY' did not find a matching property.
>
> I search on google and did not get any useful help;
>
> I also search documentation on the apache.org and make sure that 'threadPriority' is a legal attribute for HTTP Connector,so I wonder why would this warning information will come up.
>
> Please tell me what’s wrong, Thank you!
>
When citing your server.xml it would be a good idea to
a. remove all comments
b. replace all passwords and other sensitive information
The "did not find a matching property" is a generic message that is
displayed when IntrospectionUtils.setProperty(..) returns false.
There may be several reasons why setProperty(..) call can fail.
Enabling debug logging for "org.apache.tomcat.util.IntrospectionUtils"
will provide more information.
In this case, yes, this property expects an integer value.
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java?view=markup#l184
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org