Martin,

On 10/2/14 3:23 PM, Martin Grigorov wrote:
> On Thu, Oct 2, 2014 at 9:14 PM, Christopher Schultz <
> ch...@christopherschultz.net> wrote:
> 
>> Mark,
>>
>> On 10/2/14 10:54 AM, Mark Thomas wrote:
>>> On 02/10/2014 15:41, Martin Grigorov wrote:
>>>> Hi,
>>>>
>>>> On Thu, Oct 2, 2014 at 4:36 PM, <schu...@apache.org> wrote:
>>>>
>>>>> Author: schultz
>>>>> Date: Thu Oct  2 14:36:27 2014
>>>>> New Revision: 1628984
>>>>>
>>>>> URL: http://svn.apache.org/r1628984
>>>>> Log:
>>>>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57049
>>>>> Clarified that jvmRoute can be set using Engine.jvmRoute or a system
>>>>> property.
>>>>>
>>>>> Modified:
>>>>>     tomcat/trunk/webapps/docs/changelog.xml
>>>>>     tomcat/trunk/webapps/docs/config/engine.xml
>>>>>
>>>>> Modified: tomcat/trunk/webapps/docs/changelog.xml
>>>>> URL:
>>>>>
>> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1628984&r1=1628983&r2=1628984&view=diff
>>>>>
>>>>>
>> ==============================================================================
>>>>> --- tomcat/trunk/webapps/docs/changelog.xml (original)
>>>>> +++ tomcat/trunk/webapps/docs/changelog.xml Thu Oct  2 14:36:27 2014
>>>>> @@ -109,7 +109,12 @@
>>>>>          Correct documentation for
>>>>> <code>ServerCookie.ALLOW_NAME_ONLY</code>
>>>>>          system property. (kkolinko)
>>>>>        </fix>
>>>>> -    </changelog>
>>>>> +      <fix>
>>>>> +        <bug>57049</bug>: Clarified that <code>jvmRoute</code> can be
>> set
>>>>> in
>>>>> +        <code>&lt;Engine&gt;</code>'s <code>jvmRoute</code> or in a
>> system
>>>>> +        property. (schultz)
>>>>> +      </fix>
>>>>> +      </changelog>
>>>>>    </subsection>
>>>>>  </section>
>>>>>  <section name="Tomcat 8.0.14 (markt)" rtext="2014-09-29">
>>>>>
>>>>> Modified: tomcat/trunk/webapps/docs/config/engine.xml
>>>>> URL:
>>>>>
>> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/engine.xml?rev=1628984&r1=1628983&r2=1628984&view=diff
>>>>>
>>>>>
>> ==============================================================================
>>>>> --- tomcat/trunk/webapps/docs/config/engine.xml (original)
>>>>> +++ tomcat/trunk/webapps/docs/config/engine.xml Thu Oct  2 14:36:27
>> 2014
>>>>> @@ -93,6 +93,12 @@
>>>>>          the generated session identifier, therefore allowing the
>> front end
>>>>>          proxy to always forward a particular session to the same
>> Tomcat
>>>>>          instance.</p>
>>>>> +        <p>
>>>>> +            Note that the <code>jvmRoute</code> can also be set using
>> the
>>>>> +            <code>jvmRoute</code> system property. The
>>>>> <code>jvmRoute</code>
>>>>> +            set in an <code>&lt;Engine&gt;</code> attribute will
>> override
>>>>> +            any <code>jvmRoute</code> system property.
>>>>> +        </p>
>>>>>
>>>>
>>>> This sounds counter intuitive.
>>>> Usually manually provided settings, like system properties, have higher
>>>> priority than ones provided in configuration files.
>>>
>>> Not in Tomcat they don't.
>>>
>>> System properties are often introduced to provide configuration options
>>> where there isn't an obvious / easy element on which to place a
>>> configuration attribute.
>>>
>>> At some point in the future, things are refactored making it possible to
>>> have per element configuration. At this point the system property
>>> becomes the default and the element level always overrides it.
>>>
>>> The ideal solution would be to never use system properties in the first
>>> place.
>>
>> +1
>>
>> Also, I disagree with Martin's initial assertion. Instead, the more
>> fine-grained configuration should override the more coarse-grained
>> configuration.
>>
> 
> Just saying how the other 99% of the software (I have worked with!) works.

Example?

> Just put yourself in DevOps shoes - it is much easier for them to use
> CATALINA_OPTS to tune something for some specific case than patch a .xml
> file.

(nb: I think you just mean "Ops". DevOps are just developers that have
been forced to also do operations. Or operations staff who know how to
do some programming. The fact that the employer calls the staff position
"DevOps" doesn't mean that it's a job. The "operations" staff is in
charge of what we are discussing. The fact that the ops staff also has
dev responsibilities is irrelevant. Sorry, I just don't really like the
term DevOps, mostly because of the implication that it's possible to
have someone equally good at both jobs yet still have their equal-level
of capability worth paying for.)

Anyway, you can still set a system property. But if you want, you can be
*more specific* and in fact override the system property.

> But since this is the Tomcat's convention then everything is fine.

The problem is that each <Engine> might want to have a different
jvmRoute. If you only have one system property, then it affects them
all. Yes, multiple system properties could be used, but (ugh).

-chris

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to