请教各位一个有关jmx的问题

这段时间看了一些jmx方面的资料
并调试了jmx自带的例子
现在有一个问题想不清楚:

我理解的jmx是通过一个agent来管理实现了jmx特定模式的一些class
以jmx自带StandardMBean的例子为例
特定的模式指:“public interface SimpleStandardMBean”
实现该模式的class指
“public class SimpleStandard implements SimpleStandardMBean ”
然后可以通过"StandardAgent"可以把"SimpleStandardMBean "载入内存
并显示以及调用其方法。
以上这些操作的具体实现是在“com.sun.jmx.interceptor.DefaultMBeanServerInterceptor”
中。

我的问题是把一个class载入内存并调用其方法实际上是通过java的reflection机制来实现的,这应该不是jmx自身的特性吧?
jmx是用来作设备管理的,就是要动态的修改jvm中实例的状态然后立即生效而不用重新加载该实例(比如重新启动server),那么,我要怎么来调用这个被jmx所管理的实例呢?
如果以一个数据库连接池为例,我认为如果要通过jmx对其进行管理的话,要走如下几步:

1. 这个数据库连接池要按照jmx的模式来实现。
2. 在第一次被调用的时候载入内存并只维护一个实例
3. 管理员可以通过jmx agent来修改该实例的状态比如最大连接数,但不需要重新加载该连接池以更新内存中的实例
4. 用户继续使用更新过的实例

在这几部中,是否需要一个支持jmx的server?
这个server和MBeanServer有什么不同?
MBeanServer.createMBean以及MBeanServer.registerMBean之后是不是说就可以通过一种方式来获得MBeanServer中的这个object?
如果是的话通过何种方式?


不知我这样的理解有什么问题,请各位指点。


新手上路
请各位多多指点

顶一下