advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Soup-to-Nuts Application Management with JMX :

Develop a Basic JMX Agent

To test the MBean, you must develop a JMX agent that registers the MBean to an MBeanServer. However, before doing this is important to know what characterizes an MBeanServer:
  • An MBeanServer keeps a registry containing all registered MBeans.
  • JMX 1.0 provides an interface called javax.management.MBeanServer, that contains dedicated methods to create, register, and delete MBeans. It also provides access to registered MBeans methods.
  • You can obtain the platform MBeanServer by using the java.lang.management.ManagementFactory.getPlatformMBeanServer() method, or by using the methods provided in the javax.management.MBeanServerFactory class. The argument domain represents the default domain name for the created MBeanServer:
    public static MBeanServer createMBeanServer()
    public static MBeanServer newMBeanServer()
    public static MBeanServer createMBeanServer(String domain)
    public static MBeanServer newMBeanServer(String domain)
    
  • Every MBean must have a unique identity in the MBeanServer registry. A unique identifier contains two parts:

    1. A domain name: If this isn't specified, the agent will use the MBeanServer default domain.
    2. A list of one more keys: In this case, the keys are stored into a Hashtable.

    To create a unique identity, create a javax.management.ObjectName instance. The constructors listed below can help you to do this:

    public ObjectName(String domain,String key, String value) 
    throws MalformedObjectNameException, NullPointerException
    public ObjectName(String domain,Hashtable table) 
    throws MalformedObjectNameException,NullPointerException
    public ObjectName(String name) throws MalformedObjectNameException, 
    NullPointerException
    
  • If you are using the third constructor for the above (which has only a String argument), you can specify both the domain and the keys with the format below:
    domain: key1 = value1 , key2 = value2
    
  • To register an MBean, use the MBeanServer.registerMBean method. This method receives the MBean as an object and the unique identity as an ObjectName instance and returns an ObjectInstance object, which represents both the MBean's object and class names.
     
    ObjectInstance registerMBean(Object object, ObjectName name)
                   throws InstanceAlreadyExistsException, 
    			   MBeanRegistrationException, NotCompliantMBeanException
    
  • To find an MBeanServer instance, call the javax.management.MBeanServerFactory.findMBeanServer method. This method receives an argument that represents the agent identifier corresponding to the MBeanServer instance. The agent identifier can be obtained from the StringId attribute of the MBeanServerDelegate class, which is automatically registered as an MBean with the object name JMImplementation:type=MBeanServerDelegate. The registration of MBeanServerDelegate is made for every MBeanServer instance. If agentId is null, then findMBeanServer will return all the registered MBeanServer instances from the current JVM.
    public static ArrayList<MBeanServer> findMBeanServer(String agentId)
    
    Having all this knowledge, is should be very easy now to develop a basic JMX agent to expose your MBean. Listing 2 shows an example.

    Now, with all three above classes in a directory (StandardJMX is used in this example), you can test the JMX implementation like this:

    1. Open a command prompt and type:
      …>java -D.com.sun.management.jmxremote -classpath . BasicAgent.  
      
      The window should look like Figure 3:


      Figure 3: The JMX Agent Output

    2. Open another command prompt and type:
      …>jconsole
      
    3. Open the JConsole, New Connection window of your jconsole tool. Go to Local Process and select the BasicAgent process. Click Connect and wait until the connection is made.
    4. After the connection is established, go into the MBeans tab.
    5. In the left panel expand the BasicAgent node until you see something like Figure 4.


      Figure 4: The Interface Of the jconsole Tool

Now, take your time and try to run operations (start/stop/halt the process) and monitor your attributes (notice the output in the agent prompt command). When you want to stop JMX monitoring, just close jconsole and press Enter in the agent output prompt.

Home / Articles / Soup-to-Nuts Application Management with JMX / 1 / 2 / 3 / Next Page

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs