> Mule must follow the user-declared order of agents
I wonder how we would get spring to do this.... doesn't seem to by default
> and agents can't know about each other. E.g. depending on the
> environment, an agent may or may not try to setup some servers (rmi
> registry), or use existing (created by a previous agent).
Makes sense.
> As for the config, make them top-level independent nodes and let user specify the
> order. E.g. mx4j can't be a child/depend on jmx, as Mule could be running e.g.
> embedded and use server's resources.
The JMXAgent actually locates (or creates if not embedded) the jmx
server instance so even in the case where mule is running embedded it
would still be valid to configure mx4j/log4j agents as child config
elements of jmx-server (JMXAgent). This would also ensure that
mx4j/log4j agents can't be configured without jmx-server if mule is
not embedded.
If we have everything as top-level agents there are a couple of things
we need to take into consideration:
1) Handle errors and inform user when jmx dependent agents are
configured and there is no jmx instance available.
2) If jmx-server is configured along with jmx dependent agents at the
same level, we need to deal with the initialization order issues. I'm
not sure how this was handled in 1.4, but in 2.0 it's all delegated to
spring (initialization oder or "depends-on" attribute maybe).
Only allowing the user to configure jmx dependent agents if jmx-server
is declared (remember jmx agents locates first, then creates) I
believe would be more intuitive and less error-prone for users and
also easier for us to manage jmx agents dependencies.
(So .... I'm still not convinced :-) )
Dan
On 8/17/07, Andrew Perepelytsya <
aperepel@...> wrote:
>
>
> >
> >
> > Definitely my farvourite from a user's point of view. Let the mule
> > server itself find the correct order for the agents.
> >
> >
>
> No, there was a bug specifically loooong time ago, when a declared agent
> order wasn't observed. Briefly, Mule must follow the user-declared order of
> agents, and agents can't know about each other. E.g. depending on the
> environment, an agent may or may not try to setup some servers (rmi
> registry), or use existing (created by a previous agent).
>
> Moreover, agents may register child agents (see DefaultJmxSupportAgent), and
> further manipulate the list, like removing itself. There's some a bit crazy
> agent collection manipulations to ensure the declared order is not broken by
> such host agents.
>
> As for the config, make them top-level independent nodes and let user
> specify the order. E.g. mx4j can't be a child/depend on jmx, as Mule could
> be running e.g. embedded and use server's resources.
>
> Andrew
>
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email