Aaron Mulder wrote:
On Sat, 11 Sep 2004, Dain Sundstrom wrote:
What the heck is a DAG?
Directed acyclic graph, or something like that. I think I've been
wondering something similar. If you have 3 apps that are unrelated (don't
depend on each other or anything else really), can you start the server in such a way that all 3 are started? Like just passing multiple configuration names on the command line or something?
By default, the server restarts all configurations that were running when it was last shut down. This can be overridden by specifying a list of configurations on the command line - this starts the specified configurations (plus their parents).
Because configurations map to classloaders, each one can only have one parent. It is a tree rather than a DAG.
For example, suppose you have a tree like
org/apache/geronimo/System
|
-- org/apache/geronimo/Server
|
-- org/apache/geronimo/DebugConsole
|
-- org/apache/geronimo/Secure
|
-- com/example/Config1
| |
| -- com/example/app1A
| |
| -- com/example/app1B
|
-- com/example/Config2
|
-- com/example/app2AOn build, we configure the server to start "Server" (abbreviated) so the first time you boot both it and "System" will be started.
Suppose you then distribute all the other configs to it and start them. If you then stop and restart the server all 9 configs will start.
If you then stop and start the server with "app1A" and "app2A" on the command line then "System" "Server" "Config1" "app1A" "Config2" and "app2A" will be started.
In that scenario, if there is something in "app2A" that depends on "Secure" then although the config will start the GBeans that depend on "Secure" will hold in the "STARTING" JSR77 state until "Secure" (and the referenced GBeans it contains) also start.
The reason we don't try to support DAGs is that in the tree above it would be possible for the server to contain multiple configurations which have overlapping GBean object names. Although we may be able to solve that, I don't think a sys admin would be able to predict what will happen when they specify names on the command line - we chose to keep it simple.
-- Jeremy
