On Wed, 20 Nov 2002 05:24, Clemens Marschner wrote:
> Since the Phoenix documentation lacks a detailied dynamic view of its
> internal processes (does it? I haven't found one), I used a debugger to
> step through the initialization phase of the jakarta James server.
>
> Can anybody verify my comments?

They were spot on!

> The deployed application is then added to the Kernel , which starts it (in
> DefaultKernel.addApplication).
> [by the way: It seems that the .sar files are installed _whenever_ they are
> found. That is, if you leave them in the apps/ directory, they will be
> deployed again after a restart.]

yep - thats the intention.

> 3. An Application is usually an object of type DefaultApplication (as
> specified in DefaultKernel.startup(). It seems that at the moment one
> cannot change this, since the SarEntry with the empty application field is
> also created within DefaultKernel - in addApplication()).
> An Application can implement the Startable interface (which
> DefaultApplication does), in which case each of the Application's blocks is
> started (by DefaultApplication). That is, during startup, there is a
> hierarchy Kernel -> Application -> Blocks (-> Components) which equals the
> IOC pattern.

Yep. In the future this will migrate to something like the following where a 
Component can also be a Container.

Container -> Components

> allows that (which is verified during deployment - what if one changes
> assembly.xml after the deployment?).

The assembly.xml is only read during deployment. If you need to change it then 
you need to redeploy atm. This can be done when Phoenix is running via JMX or 
by shutting down and restarting phoenix.
> At this time, the whole application is up and running. In the case of JAMES
> (in the default configuration), I recognized a bunch of threads running at
> that time:
>
>   1. A large thread pool with 49 worker threads (which seems to be built by
> the Cornerstone thread manager), started by different components. 35 seemed
> to be "empty" or idle, 4 were called by
> "james.util.connection.ServerConnection", and 10 were called by the
> JamesSpoolManager.

Thats due to their configuration of the thread manager I believe.

>   2. An "Excalibor ActiveMonitor" thread

Which monitors the deployment directory and redeploys apps if the .sar file 
changes, undeploys if sar file is removed and deploys if a new .sar file is 
added.

>   3. A "Remote delivery thread" of the James AvalonSpoolRepository
>   4. An NNTPSpool thread

both james specific threads.

> - Embeddor loops forever: It goes to sleep for 1 sec, then checks if
> "m_shutdown" is set or if there are no deployed applications.
> m_shutdown can be set, from what I see here,  only by pressing ctrl-c
> (using the CLIMain launcher). How else?

If you are using wrapper.sourceforge.org then the native daemon can have 
signal sent to indicate shutdown (from Service Panel in Win32 and kill under 
*nix).

If you have JMX enabled you can also shoutdown phoenix via that.

-- 
Cheers,

Peter Donald
-----------------------------------------------------------
 Don't take life too seriously -- 
                          you'll never get out of it alive.
-----------------------------------------------------------


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to