Welcome!

Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Weblogic

Weblogic: Article

Using JMX

Using JMX

The Java Management API (JMX) has been integral to managing the WebLogic Server since WebLogic 6.0. Through this API you can search for management beans (mbeans) within the application server and query them for both configuration information and runtime monitoring information. In addition, this API can be used to actually change the configuration of the server. In fact, this API is used internally by the console and other administration tools to do their work and report their data.

This API can be a powerful tool for monitoring. Let's look at an example. In this application, you have mostly static content, some JSP pages for your personalized pages, a registration system, a JMS-based data feed, and maybe a small billing application. Where in this application can we use JMX to our advantage? On the static page side, you can access the information for the FileServlet and see how much time was spent serving the static content. It might be less than you expect because of the amount of caching that browsers do automatically on the client side. Most requests for static content will be HEAD requests, checking for changes. For dynamic pages, each servlet in the system is accounted for separately. This data doesn't perfectly reflect the user experience (because the user has the lag between when their request is sent and when they receive the page back), but it does tell just how long each servlet, on average, spends in a request and how many have been made. Our registration system is an entity bean, while the billing system is a stateless session bean backed by an external service. Both beans can be monitored and the information used to tune the size of the caches and pools. Our data feed can also be interrogated to determine if we have been getting as many messages as we have been paying for, or to determine how many subscribers are using the data. Throughput can also be calculated using the attributes on the JMS topic and queue mbeans. Finally, all JDBC connections can be monitored and from their mbeans you can find out how much the pool connections are contended, which will tell you if you need more database client licenses, for instance.

The second use of mbeans in the WebLogic Server is for configuration information. The configuration of all resources is contained at runtime by the configuration mbeans. These mbeans are essentially an instantiated representation of the information contained within the config.xml file. Everything from which applications are deployed to which port a server listens on is contained within these interfaces. Most of the individual attributes are relatively straightforward; however, the collection of attributes that describes a deployment unit is complicated and they have been collected for convenience behind the weblogic.Deployer class. Accessing them directly is possible but not reccommended except for looking at configuration and not changing it. The rest of the attributes are fair game, although beware, most of those attributes will only actually change runtime behavior if the component (like a JDBC pool) is redeployed or if the server is restarted. Applications of these configuration mbeans range from determining the resources that a particular application is using to tweaking values based on the feedback from the monitoring mbeans.

As you can see, there's a lot of information - but how do you get to it if you're new to JMS and the WebLogic Server? It's actually not that hard. As long as you can use JNDI and read JavaDocs you'll find it pretty easy to navigate the hierarchy of mbeans. In the code sample below you can see how you find the local server mbean home and then find the JDBC pool.

MBeanHome home = (MBeanHome) new
InitialContext().lookup(MBeanHome.LOCAL_JNDI_NAME);
Set pools = home.getMBeansByType("JDBCConnectionPool");

This gives you the configuration mbeans for the JDBC pools. If you want to monitor the pools rather than look at their configuration, simply change the type of mbean by adding "Runtime" to it. From this mbean you can determine important information like whether you are leaking connections - you can even get a stack trace of where exactly the connection was allocated!

What if you want to use the JMX mbean system without doing any Java programming, like from a script file? Fortunately, we include a tool that will let you view and change mbeans directly from the command line - weblogic.Admin. In addition to PINGing servers, getting JNDI listings, resetting pools, and shutting down the server, it gives you direct access to the mbean hierarchy. In the next code sample you'll see the equivalent weblogic.Admin command.

java weblogic.Admin -username system -password [password] -url [url] GET
-pretty -type JDBCConnectionPool

This gives you an easily readable description of the mbeans that match the type descriptor plus the properties on those mbeans. Similarly, there is a SET command that will change the properties on any mbean in the system.

Armed with this tool you should be able to monitor your applications internally in Java and externally from scripts.

More Stories By Sam Pullara

Sam Pullara has been a software engineer at WebLogic since 1996 and has contributed to the architecture, design, and implementation of many aspects of the application server.

e-mail: [email protected]

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Alexander 07/03/03 08:18:00 AM EDT

I would like to recive more jmx examples code,

thank You

Chris Dahl 10/16/02 10:16:00 AM EDT

It would be nice to have a few more JMX example code snippits to do some common things like maybe to untarget an MDB that is encountering too many errors. It seems there are very few JMX code examples out there and I find it difficult to glean specific runtime bean behavior control from the manual.

IoT & Smart Cities Stories
Enterprises have taken advantage of IoT to achieve important revenue and cost advantages. What is less apparent is how incumbent enterprises operating at scale have, following success with IoT, built analytic, operations management and software development capabilities - ranging from autonomous vehicles to manageable robotics installations. They have embraced these capabilities as if they were Silicon Valley startups.
"MobiDev is a Ukraine-based software development company. We do mobile development, and we're specialists in that. But we do full stack software development for entrepreneurs, for emerging companies, and for enterprise ventures," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, discussed how they built...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...