Hi,
I currently working on the schema and NameSpaceHander for the
management module...and I've come across some issues with agent
initialization order ...
As far as I can there are a number of different types of agent:
- NotificatonAgents
- - Log4jNotificationLoggerAgent
- - EndpointNotificationLoggerAgent
- - JMXNotificationAgent (Depends on existance of MBeanServer)
- JMXAgent (locates or creates MBeanServer )
- JMX dependent agents (Depend on existence of MBeanServer)
- - JMXNotificationAgent
- - WrapperAgent
- - Mx4jAgent
- - Jdmkgent
- - Log4JAgent
- Other agents unrelated to JMX
- - MuleAdminAgent
- - RMIRegistryAgent
A number of agents are JMX based agents and depend on the there being
a MBeanServer, which the JMXAgent locates or creates. This means that
a number of agents need to be initialized *after* JMXAgent which is
causing me some issue....
Questions:
- Should this dependency be managed at configuration/initialization
time as it seems it was with 1.4 (but is currently causing issues with
2.0)?
- Should this dependency be resolved in Agent implementations?
- Or, should these different types of agents be recognized as such and
the xml schema be defined in such a way that it is more intuitive to
configure and these dependencies be automatically resolved when
parsing by having the dependent agents as children of the JMXAgent?
Example with proposed configuration solution ..(might need to be
complemented with some code changes in the future)..
Mule 1.4
------------
<agents>
<agent name="JmxAgent" className="org.mule.management.agents.JmxAgent"/>
<agent name="Mx4jAgent" className="org.mule.management.agents.Mx4jAgent">
<properties>
<property name="jmxAdaptorUrl" value="
http://localhost:9999"/>
</properties>
</agent>
<agent name="Log4jAgent" className="org.mule.management.agents.Log4jAgent"/>
</agents>
Mule 2.0 (Current)
------------
<management:jmx-server name="simpleJmxServer">
<management:jmx-mx4j-adaptor name="jmx-mx4j"
jmxAdaptorUrl="
http://127.0.0.1:8000" />
<management:jmx-log4j-agent name="Log4jAgent"/>
<management:log4j-notifications name=".."/>
<management:rmi-server name=".."/>
<management:jmx-notifications/>
Mule 2.0 (Proposed)
-----------------------------
<management:jmx-server serverName="simpleJmxServer"
createServer="false" locateServer="true">
<management:jmx-mx4j-adaptor jmxAdaptorUrl="
http://127.0.0.1:8000>
<management:jmx-log4j-agent name="Log4jAgent"/>
<management:jmx-notifications/>
</management:jmx-server>
<management:log4j-notifications name=".."/>
<management:rmi-server name=".."/>
thoughts?
Dan
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email