Discussions

General J2EE: Questions on JMX MBeans

  1. Questions on JMX MBeans (5 messages)

    If I understand JMX correctly, you can prepare your Java classes for monitoring by wrapping them in MBeans, and your application server itself will implement its objects, containers, properties as MBeans as well.

    But a complete Network Management System needs to manage hardware devices such as routers, load balancers, terminals, etc. so how would you create MBeans out of such hardware devices?

    Threaded Messages (5)

  2. Questions on JMX MBeans[ Go to top ]

    Those devices would first need some sort of API to control their function (C++ or Java). You would need to write MBeans to access this API (using JNI to access a C++ API).

    A bigger question is whether those devices support having a JVM installed. If not, you may be able to use some sort of remote-control protocol to control the device (again, hopefully with a C++ or Java API provided by the hardware vendor).
  3. Questions on JMX MBeans[ Go to top ]

    Those devices would first need some sort of API to control their function (C++ or Java). You would need to write MBeans to access this API (using JNI to access a C++ API).A bigger question is whether those devices support having a JVM installed. If not, you may be able to use some sort of remote-control protocol to control the device (again, hopefully with a C++ or Java API provided by the hardware vendor).
    When you say "remote-control" maybee that's where the protocol adapters come in. The JMX manager could send SNMP commands to the router (using the SNMP Manager API?) and get the proper feedback. Or better yet, if there's already an existing Network Management System that monitors the routers the JMX Manager could connect to that using SNMP.

    So would it be safe to say JMX is mainly for programming monitoring capability into custom Java programs and integrate them with existing network management systems? In other words use JMX for *programming* Java apps while using JMX for *integrating* legacy network management systems?
  4. Questions on JMX MBeans[ Go to top ]

    So would it be safe to say JMX is mainly for programming monitoring capability into custom Java programs and integrate them with existing network management systems?
    That is the way I see JMX being used. Of course, your management system must also support JMX, but many do (e.g. Tivoli).

    There are also SNMP-JMX bridges out there (a Google search will bring up a number of them).
  5. Questions on JMX MBeans[ Go to top ]

    If I understand JMX correctly, you can prepare your Java classes for monitoring by wrapping them in MBeans, and your application server itself will implement its objects, containers, properties as MBeans as well.But a complete Network Management System needs to manage hardware devices such as routers, load balancers, terminals, etc. so how would you create MBeans out of such hardware devices?
    JMX is an open specification that defines management architecture, which enables management of applications, services and allows java developers to integrate existing network devices to be managed by using connectors/adaptors.

    For example, you can represent the network management information (MIB) for a network device as MBeans (through proper instrumentation) registered on MbeanServer from where it is accessible to all JMX clients directly or via connector/adaptor interface. For snmp-enabled device, you can use SNMP adaptor. For web interface, you may use HTTP connector, or RMI connector for distributed client and so on. The advantage here is "Instrument Once, Access with any protocol" architecture provided by JMX.

    You may use Model MBeans in such cases, as it is fully configurable at runtime. i.e. the management information can be set/change at runtime. So you could add/remove/change the devices attribtes at runtime any restarting the server. Also, you could provide metadata information in standard xml format. This reduces lots of coding. (see XMOJO Project or Jakarta Modeller Component)
  6. Question on JMX Client[ Go to top ]

    Hi
    I have a requirement where I have an MBean with some field say 'weight' and there are two clients one reading the value of the weight and another writing it. Suppose I start the clients and after one hour when reading client reads the value it may be 60, and after two hours it may be 120 since writing client is changing the value. Now, if due to some reason, writing client goes down after 2 hours (with last value 120), even after 5 hours the reading client will get the value as 120. Is there a way to notify the reading client that the writing client has gone down. The limitation here is, there is no fixed time that the reading client has to wait. The writing client sets the value of the field after 2 hr or may be 4 hr depending on it's work at hand. How to notify a client that some other client has gone down?