Hi people, Sriram, Remy, Costin,

Thanks Sriram for the +1 on this!   As you guys have read, I think something is 
up in the the area of Context information; specifiers, parsing, and storage of 
current deployment state. 

I've previously been talking about determinism as one of the problems, but I 
don't find much indication that people get what I'm pointing out or are 
thinking about this at the 'concept' level.

I'm going to some effort here to clarify this, and communicate these areas.

I would therefore expect competent people to discuss Issues, not "issues". And 
please Costin, before you write too much about 'can't parse rant', perhaps try 
finding the Enter key on your own keyboard.  :-)

-----------


My understanding of the new Context/ Deployment design, is that deployed 
Context Specifiers are located in /conf/[engine]/[host].  My further 
understanding is,  that either Tomcat or the User can create these;  tomcat 
from a variety of original sources.

Based on this I'd like to make a couple of predictions;   re:  erroneous 
behaviours.

1)  Tomcat will be unable to know reliably when a Source context-specifier has 
been deleted, in order to delete the resultant Deployed context record.

2)  Tomcat does not have enough information to know whether a given Deployed 
context-specifier is owned by Tomcat or the User.

Apparently there may already be reports of #1.

Number #2 is likely to lead to to Tomcat auto-scrubbing deployed apps in the 
/webapps folder when a context specifier is manually edited, whether these are 
owned by tomcat or not.

----------

Now, for a recommended solution.

1)  never mix Ownership of anything.
2)  store the list of  Deployed Context specifiers, away from the user /conf 
directory;
        - storage in  /working  would be suitable.
        - keep ownership of this entirely to TC; then we will always know what 
is going on.
3)  sub-folder and named files structure for deployed Master Contexts is 
unnecessary.
        - it's complex & unnecessary, toss it entirely.
        - store as XML file instead.
        - all Context elements flat within the head; no need to structure/ nest 
or context path.

4)  bring back Context.ContextPath attribute, currently non-functional
        - current implementation disregards in most cases (!)
        - determine simple identification of Context Path from deployed/ 
context sources
            - aka.  use the Context Path if it's spec'd
            - otherwise,  use the default

5)  fix recognition of Contexts by DocBase,  currently broken
        - this will fix Contexts explicitly specified in  'server.xml', from 
also being deployed as
        duplicates under default settings.


-------

Anyway, hopefully this a good explanation of the issues, and helpful to the 
Tomcat developers and contributors in identifying what's wrong here.

I'm aware there are some Clustering issues, driving the current design, but 
don't know exactly what these are. My proposed solution delivers Determinism, 
and from a replication perspective, providing solid reliability for Context 
info would certainly simplify clustering this information.

Obviously, I've already put 8 - 10 hours of thought into this. But, more 
importantly, I've seen such 'unreliable' designs before, know what a reliable 
one is, and can tell the symptoms & difference pretty much instantly.

As always, the proof is in the pudding;  everything I'm raising & reporting is 
there, the Context stuff can exhibit ranges of undesirable behaviour (due to 
lack of determinism), the Context Path stuff is almost completely broken, etc. 
If this *wasn't* the case I'd be full of shit, but it is, so let's look at 
moving forward;  will those Clustering requirements interact well with the 
proposed solution, what other future goals are desirable, etc.

Let me know what you think,


Cheers,
Thomas
Connector Systems Ltd

thomasw   'at'   connectorsystems   'dot'    co    'dot'   nz

Reply via email to