robert burrell donkin wrote:
On 2/2/07, Danny Angus <[EMAIL PROTECTED]> wrote:
On 2/1/07, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
> Unfortunately I think that hot redeployable mailets are far away,
the biggest issue is that you would have to move all "in process"
messages to a save point that you know will allow them to continue
after you have changed the whole processing pipeline beyond
recognition. This means that it is probably never going to be possible
to have live config changes, but what we should look at is the ability
to restart the spoolmanager without blocking inbound traffic.
i think that should be possible to do this with the SEDA without
blocking inbound traffic:
1. put a task marked as no concurrency on the main worker task loop
2. this tasks will only be executed once all other tasks have completed
3. once scheduled, this performs the hot redeployment and recreation
of the entire processing pipeline
4. once completed, subsequent tasks are free to execute
of course, no processing of inbound traffic would be possible during
this period, just decoding
- robert
my 2 cents:
in current architecture no one depends on the spoolmanager. The
spoolmanager is a service that could be stopped at all and restarted or
added a new spoolmanager with different configuration on the fly.
This will not stop incoming traffic because this is all done via spool
queue that do not depend on the spoolmanager.
You can already do this by adding a component to stop/start the
spoolmanager and to reload it. Maybe phoenix provide something.
If the container allow you to dispose the spoolmanager component and
inject a new/updated spoolmanager then there are no limits on the james
side (for this specific issue).
If you look at the assembly.xml it will be more clear the dependency
tree and what can be stopped without stopping the application.
As an example you will see that no one depends on JamesSpoolManager and
only the SpoolManager depends on MatcherLoader and MailetLoader.
The key component is "James" (mailetcontext/mailserver): almost everyone
depend on this component and this cannot be redeployed without stopping
many places.
Hope this helps,
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]