Thank you for your reply. I read through the JMS1.2 spec, and pages 127 and 134. Yet, the paragraph in page 22 allows an Agent to reside on a remote JVM.
My personal opinion is that an MBeanServer should be an open repository (much like a JNDI tree), to which you can bind MBeans, regardless of the VM in which they operate.
Sure the MBeanServer can reside in a remote VM from the client that accesses the MBeanServer , but you can't tell the server to "manage" an MBean that resides on another VM. Why you would want to do that? Why not creating another MBeanServer on the client VM then?
The MBeanServer and its MBeans are always collocated, that's the idea.
I think you confuse how you create MBeans with how you manage them. Yes, it would be convenient to treat the MBean as a ValueObject, instatiate and initialize on the client, then transfer this to the server and activate it (actually a copy of it).
But this raises classloading issues, plus you end up with 2 un-synchronized copies of the MBean. And you can always have an MBean constructor with lots of arguments so that you could instantiate/initialize/register remotely an MBean, with just one call.