I created CONNECTORS-523 for this issue.
Karl

On Tue, Sep 4, 2012 at 9:32 AM, Karl Wright <[email protected]> wrote:
> Ok, can you create a ticket for this?  I will then create a branch and
> start adding directories as described in my earlier post.
>
> Karl
>
> On Tue, Sep 4, 2012 at 8:34 AM, Maciej Liżewski
> <[email protected]> wrote:
>> Ok. I did look and multiprocess and there is one issue - every part of
>> manifold is then run in separate java VM. This is what I would like to
>> avoid and run all parts (crawler-ui, authorization and api) as applications
>> in single application server. We have got sindle machine for java
>> applications and all of them must be run in single Tomcat instance to avoid
>> splitting memory between different java VMs.
>>
>> Like I said - I was able to achieve this simply by adding two separate
>> ServletListeners: one for authorization and api applications that
>> initializes ManifoldCF and connectors, and one for crawler-ui which also
>> runs connecotors processing in separate thread.
>>
>> I can use this configuration on my own, but I was thinking that there can
>> be someone else in similiar situation.
>>
>>
>>
>> 2012/9/4 Karl Wright <[email protected]>
>>
>>> If you do decide you really want a combined web application that does
>>> everything, this is how I'd do it:
>>>
>>> (1) Create a new directory in framework, which contains the build
>>> materials needed for your combined web application, called
>>> "combined-service".
>>> (2) Include a class that contains the equivalent of your patch code.
>>> Or, you could also create a "framework/combined-classes" directory to
>>> build a jar, similar to the framework/xxx-servlet packages.
>>> (3) Include a web.xml in your combined-service area that invokes the
>>> correct ServletContextListener for your
>>> web application.
>>>
>>> If you really want to go ahead with this project, please create a
>>> ticket that covers it, titled something like "provide a combined web
>>> application encapsulating all ManifoldCF processes and services".
>>>
>>> Karl
>>>
>>> On Tue, Sep 4, 2012 at 6:15 AM, Karl Wright <[email protected]> wrote:
>>> > Here was my response from yesterday:
>>> >
>>> > How does this proposal deal with the API service and the authority
>>> > service?  There are three independent web applications in ManifoldCF
>>> > at this time, and a process that does the actual crawling.
>>> >
>>> >>>>>>>
>>> > Those are only in jetty-launcher Main method
>>> > <<<<<<
>>> >
>>> > Please examine the scripts under multiprocess-example.  This differs
>>> > from the single-process example in that all the web applications are
>>> > broken out and are expected to run in a JVM different from the
>>> > crawler.  The single-process example is simply a way of running all of
>>> > these under one process.
>>> >
>>> >>>>>>>
>>> > Without those running application without embedded jetty (and
>>> > jetty-launcher) is impossible.
>>> > <<<<<<
>>> >
>>> > That's not true.   Please read up on how ManifoldCF is run in a
>>> > multiprocess environment.  You are looking at the single-process
>>> > example, and that is useful, but is not how many people use the
>>> > system.
>>> >
>>> > We do not expect, at this time, for people to want to run the entire
>>> > ManifoldCF application as one single web application under Tomcat.  If
>>> > that is your goal, we can try to provide such a deployment model, but
>>> > since it is a fair bit of work it would be important to understand why
>>> > you believe this is a requirement.
>>> >
>>> > Karl
>>> >
>>> > On Tue, Sep 4, 2012 at 5:38 AM, Maciej Liżewski
>>> > <[email protected]> wrote:
>>> >> There is ServletListener in every application but all it does
>>> initializing
>>> >> is call:
>>> >>
>>> >> ManifoldCF.initializeEnvironment();
>>> >>
>>> >> but there are other tasks which should be done (at least by one
>>> >> application):
>>> >>
>>> >> - init database, register and init connectors, register agent, etc:
>>> >>
>>> >>> ILockManager lockManager = LockManagerFactory.make(tc);
>>> >>> lockManager.clearGlobalFlag(agentShutdownSignal);
>>> >>> ManifoldCF.createSystemDatabase(tc);
>>> >>> ManifoldCF.installTables(tc);
>>> >>> ManifoldCF.registerThisAgent(tc);
>>> >>> ManifoldCF.reregisterAllConnectors(tc);
>>> >>
>>> >>
>>> >> - run agents as separate thread periodically calling:
>>> >>
>>> >>> ManifoldCF.startAgents(tc);
>>> >>
>>> >>
>>> >> Those are only in jetty-launcher Main method and are needed to run
>>> >> Manifold. Without those running application without embedded jetty (and
>>> >> jetty-launcher) is impossible.
>>> >>
>>> >> My proposition is to provide separate (non-default, to maintain backward
>>> >> compatibility) ServletListener for this task. If someone wishes to
>>> launch
>>> >> manifold in application server has just to change single line in
>>> web.xml.
>>>

Reply via email to