WLS10gR3 JMX/JConsole BROKEN?

Hey *,
in order to expose MBean-Values and operations to my monitoring solution (Nagios) I want to first browse through my OSB/WLS MBeans using JMX tools like JConsole oder MC4j.
However, it seems that JMX in 10gR3 does not work correctly due to some JDK Bugs.
see here:
http://blogs.sun.com/jmxetc/entry/proxying_a_jmx_connection_adapting
http://forums.sun.com/thread.jspa?threadID=5233754
Is there a patch around how to access the MBeans in WLS10gR3? I think it should affect a lot of personel and so should be a common problem right?
grtx,
\thomas!

Well. This was a little bit too optimistic. In JDK1.6.0_u13 JConsole connects now well to my WebLogic Server, but it still does not work. Same thing in MC4j.
The MBeans are listed in the tree, however operating on them does not work. It gives me an ClassNotFoundException just when I want to open an MBean - Unfortunately, the missing class is not mentioned...
any comments?
grtx,
\thomas

Similar Messages

  • JMX jconsole -- where is my MBean?

    I'm missing something here in 5.0b2's JMX. I've put together a rudimentary standard MBean together, and want to view the data from jconsole (on the MBeans tab). Here's the code I used below to register the MBean.
    String domain = "UserDomain";
    String mbeanClassName = "iccs.support.utilities.corba.ConnectionManagementInfo";
    MBeanServer mbs = MBeanServerFactory.createMBeanServer();
    ObjectName mbeanObjectName = new ObjectName(domain + ":type=" + mbeanClassName);
    mbs.createMBean(mbeanClassName, mbeanObjectName);
    This compiles and runs without error. I can connect to the process with jconsole successfully, but nothing shows up on the tab. I'm finding little documentation to help me out with this very simple case. Am I missing something?

    It seems your MBean server has no RMI connector or protocol adaptor attached.
    If you don't want the trouble to create an RMI connector use the JVM platform MBean server:
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

  • Can JConsole connect to remote JMX agent using JMXMP and TLS?

    I have a JMX Enabled App that needs to be accessed with JConsole using TLS enabled JMXMP Connector.
    The same server can be accessed with a custom JMX client but JConsole is causing be trouble.
    I get error something like: "Client does not support profiles but the server requires it..."
    thanks
    Srini

    <p>Hi John,</p>
    <p>Unfortunately there isn't a simple solution for this because you cannot pass to JConsole the environment map to be used to configure your JMXMP connector client.</p>
    <p>In order to achieve that you will have to write your own JMXMP connector client provider (e.g. service:jmx:<b>secure-jmxmp</b>://host:port) that initializes the environment map with the appropriate security settings and then rewrites the JMXServiceURL to service:jmx:<b>jmxmp</b>://host:port and delegates to the existing JMXMP connector client provider.</p>
    <p>Of course, you will have to supply the javax.net.ssl.* SSL system properties in the command-line as you already do.</p>
    <p>Have a look at the JMX class JMXConnectorProvider for more detailed info.</p>
    <p>Regards,<br>
    Luis-Miguel Alventosa<br>
    Java SE JMX/JConsole development team<br>
    Sun Microsystems, Inc<br></p>

  • Where can I get the source code of the jconsole in jdk1.5

    Where can I get the source code of the jconsole in jdk1.5?

    Hi,
    The JConsole 5 source code is not publicly available but you can get JConsole 6/7 source code from http://openjdk.java.net.
    Regards,
    Luis-Miguel Alventosa - JMX/JConsole dev team - http://blogs.sun.com/lmalventosa

  • How does jconsole know of all monitored JVMs in system?

    When you run jconsole, the tab named "local" lists JVMs running and their PIDs. By what mechanism is it able to 'know' which JVMs are running that have been started with the arguments that enable JMX management?
    Does jconsole connect to JVMs or to MBeanServers? (Assume each JVM has multiple MBeanServers, and each MBeanServer has multiple domains.)
    Also, what's the difference between using the 'remote' and 'advanced' tabs to connect to a JVM? They both have usernames and passwords, but while the 'remote' tab has a host and port, the 'advanced' tab has a URL that contains a host and port within it. So what's the difference - when would you pick one method of connection over another?
    Thanks.

    If jconsole connects to MBeanServers rather than
    JVMs, then how can it tell the difference between
    multiple MBeanServers that have been started by a
    single JVM?JConsole connects to a given JMX connector server which is associated with a given MBeanServer at creation time.
    For example, if I have a simple application (i.e. one
    JVM) that starts up two MBeanServers in its main
    method, using
    MBeanServerFactory.createMBeanServer(name). To start
    the application, you run the JVM with the
    com.sun.management.jmxremote and
    com.sun.management.jmxremote.port variables.
    How will jconsole know to differentiate between the
    two MBeanServers? After all, there's only one JVM -
    and it's been started with only one port number.In your example JConsole will not see any of your MBeanServers. It'll see the platform MBeanServer which is the one used by the out-of-the-box management agent.
    The next question I have is regarding the JVM - does
    any JVM that's started locally show up in the "local"
    tab of JConsole (because the JVM is always
    instrumented by default - true?), or does it only
    appear if you run it with the
    com.sun.management.jmxremote variable?The new Attach API in JDK 6 allows JConsole 6 to show all the JVMs running on the local machine although you will only be able to connect to the ones running on JDK 6 (and JDK 5.0 if started with the com.sun.management.jmxremote or com.sun.management.jmxremote.port system properties).
    JConsole 5 only shows the JVMs running on JDK 5.0 and started with the com.sun.management.jmxremote or com.sun.management.jmxremote.port system properties.
    Have a look at the link below for more detailed info:
    http://java.sun.com/javase/6/docs/technotes/guides/management/index.html
    Regards,
    Luis-Miguel Alventosa
    Java SE JMX/JConsole development team
    Sun Microsystems, Inc.
    http://blogs.sun.com/lmalventosa/

  • Enterprise monitoring using JMX

    Hello,
    So, my company has a lot of J2EE/Tomcat servers running on java 1.6. I'm trying to find a way to monitor them all via JMX from a centralized system, which would be accessible to multiple users (web based, ideally).
    Based on my understanding of JMX, it should be possible to extract the data we need from each JVM. I have been using JConsole to do this on an ad-hoc basis when we have problems with a particular JVM and it's great.
    But I can't seem to find any good software for doing enterprise-wide monitoring and long-term data collection... can anyone suggest a good package, either free/open-source (ideally) or commercial?
    Basically, I want to be able to:
    * collect CPU, memory, DB (hibernate), HTTP request stats, etc. via JMX and archive it
    * view graphs of the above
    * ideally, we could also receive email alerts if certain conditions were met, e.g. memory almost full.
    As a side note:
    We're already using Zenoss (http://www.zenoss.com) to monitor the OS-level stuff and we really like it, but we need more visibility into each JVM (we have multiple JVMs per physical server). As far as I can tell, Zenoss doesn't support JMX monitoring... but has anyone found a way to make this work? If so, I'd love to hear about it, since this would be ideal for me.

    You may want to have a look at Glassbox, an open source troubleshooting agent for pinpointing problems in Enterprise Java applications.
    http://www.glassbox.com
    It offers both JMX and web-based access to the collected data but I'm not sure the web-based console allows you to present the collected data graphically. But still you could write your own JConsole plugins and display the collected
    data coming from Glassbox and your own custom MBeans in a graphical way but of course JConsole is Swing-based.
    Have a look at the JavaOne 2007 Hands-On Lab 1420 to get more detailed info about using Glassbox/JMX/JConsole together.
    http://blogs.sun.com/lmalventosa/entry/j1_07_hol_1420
    Regards,
    Luis-Miguel Alventosa
    Java SE JMX/JConsole development team
    Sun Microsystems, Inc.
    http://blogs.sun.com/lmalventosa/

  • Coherence Cache metrics/stats collection logic/tool- Not JConsole,RTViewOCM

    Hi,
    am looking for any tools/3rd party solutions to interface with Cache Server and Cache Client Nodes/Agents to obtain stats,metrics etc.
    I know you can use JMX JConsole or use RTView for OCM to view them, but I'd like to build something on my own by interfacing with the Cache nodes and build a report by myself, which I can use with an analytical tool,portal-jsp or equivalent.
    How do you do it or are there any APIs to do this?
    How does JMX JConsole do this? Can I hack JConsole to get this stats to build on my own?
    excuse me for my limited knowlwedg on JMX and coherence

    Hi,
    no need to hack anything. JMX is a public and well-documented protocol, and making Coherence expose its management JMX interface is also documented. You should probably start with reading up on JMX in general. You should also read the following link:
    http://wiki.tangosol.com/display/COH33UG/Managing+Coherence+using+JMX
    Finally you should look at the Javadoc of the com.tangosol.net.management.Registry interface for the available MBeans provided by Coherence.
    Best regards,
    Robert

  • Cannot see local process list in JConsole of JDK6

    When I run JConsole (JDK6)without parameters I cannot see list of local proceseses. JConsole with PID as a parameter works well. JConsole of JDK5 works ok. Does anybody help me?

    Hi Michael,
    Do you mind cd'ing to the directory that TMP is defined as and see if there is a directory named hsperfdata_<user> where <user> is your login. That is the directory where the instrumentation buffers are mapped (as shared memory files). Each time a java process starts it should create a file in that directory. The file name is the pid and that is how jps and the other jvmstat tools get the process list. If you don't see any pid-like files in the directory then it might be a permission problem. Can you try to create a file in the directory? If you get an "access denied" error then that would explain the issue. If you don't get an error then it would be interesting to see the cacls.exe output on the directory - that's the Windows command line tool to print the ACL on the directory.
    A workaround might be to create a new temporary directory and just update the TMP variable in your environment (Control Panel -> System -> Advanced -> Environment Variables).
    Regards,
    Luis-Miguel Alventosa
    Java SE JMX/JConsole development team
    Sun Microsystems, Inc.

  • CPU usage: Java 1.6, Windows, jConsole

    Java 1.6 has a new method to get the CPU usage:
    java.lang.management.ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()Unfortunately, it doesn't work on Windows (result = -1).
    The Java 1.6 jConsole tool shows CPU usage on Windows. Is jConsole using another API?

    You can get more info using the Sun's platform extensions, e.g.
    java.lang.management.OperatingSystemMXBean os =
        ManagementFactory.getOperatingSystemMXBean();
    if (os instanceof com.sun.management.OperatingSystemMXBean) {
        long cpuTime = ((com.sun.management.OperatingSystemMXBean) os).getProcessCpuTime();
        System.out.println("CPU time = " + cpuTime);
    }For more detailed info on Sun's platform extensions have a look at:
    http://java.sun.com/javase/6/docs/technotes/guides/management/
    Regards,
    Luis-Miguel Alventosa - JMX/JConsole/VisualVM dev team - http://blogs.sun.com/lmalventosa

  • Problem start JavaService with JMX agent

    My application start ok in console with password authenticate set to true. I have the password file configured correctly under my login account. however, when I start my application with the Windows Service created by JavaService, it failed with the authentication option. I am pretty sure it's the password file permission failed it. but don't know the workaround. Here is the setting for JavaService setting:
    JavaService -install MyServer "C:\Program Files\Java\jre1.5.0_07\bin\client\jvm.dll" -Xrs -Xms67108864 -Xmx524288000 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8004 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=C:\JConsoleAccess\jmxremote.password -Djava.class.path=[JarFiles]; -start com.MyServer -params D:\MyServer\bin\Config.ini -stop com.ShutdownThread -current d:\myserver\bin -shutdown 90 -description "My Application Server"
    Note: if I set authenticate option to false, it works just fine.

    Hi,
    I think your problem might be due to a file read access problem due to the fact that you're running
    a Java service probably as SYSTEM but your jmxremote.password file was created with another
    USER and SYSTEM cannot read it. Run "cacls C:\JConsoleAccess\jmxremote.password" in order
    to check the privileges of the password file.
    Have a look also at "How to secure the password file on Windows systems?" in the JConsole FAQ:
    http://java.sun.com/javase/6/docs/technotes/guides/management/faq.html#win3
    Regards,
    Luis-Miguel Alventosa - JMX/JConsole dev team - http://blogs.sun.com/lmalventosa

  • Developing JConsole

    I am using JConsole to monitor my application, but would like to tweak the UI slightly. ie when viewing threads you are unable to maximize the stack trace or resize the thread name panel.
    I know the source code is available, but was wondering how straight forward it is to make the changes and rebuild the GUI.

    <br>
    Hi,
    In fact, it is very easy to build the JConsole sources.
    First get the latest JDK 6 source snapshot.
    JConsole's source code can be found under:
    sun/tools/jconsole/
    sun/tools/jconsole/inspector/
    sun/tools/jconsole/resources/
    com/sun/tools/jconsole/In order to be able to build the sources:
    <ul>
    <li>Rename [jdk-jrl-sources]/jdk6/trunk/j2se/src/share/classes/sun/tools/jconsole/Version-template.java into [jdk-jrl-sources]/jdk6/trunk/j2se/src/share/classes/sun/tools/jconsole/Version.java</li>
    <li>Specify the build time dependency on [jdk-home]/lib/tools.jar</li>
    </ul>
    If you want to build the sources using ant have a look at the following blog entry that explains how to build parts of the JDK.
    Regards,
    Luis-Miguel Alventosa
    JMX - JConsole - Java SE development team
    Sun Microsystems, Inc.
    <br>

  • Web Self Service - CC&B 2.2.0 - Tomcat - Demo on Laptop

    I'm trying to install Web Self Service with CC&B V2.2.0 on a laptop for a DEMO.
    The problem I get to is when I try to register a user or I click on Forgot your password link, or when I input rubbish user id and password in the login page. What happens is I receive an error of 401 from the XAI server. I followed the installation procedure inside the installation document from cc&B 2.1.0 to configure tomcat.
    The error I get is: Server returned HTTP response code: 401 for url http://localhost:6500/XAIApp/xaiserver

    clarkd wrote:
    I am trying to do the same thing, and I can't get to the page. However, after experimenting I noticed a few interesting things. In general I am installing the same config (Tomcat 6.0.13 and CC&amp;B 2.2 on a laptop with the demo data). Now I can access cis.jsp (localhost:6500\cis.jsp) no problem, but once I install WSS I can't access the WSS app (<A class=jive-link-external href="http://localhost:6500/SelfService">http://localhost:6500/SelfService</A>). However, since this is 6.0 so there is no admin feature I have been playing around by moving war files around and etc to try to get this to work (I believe the admin functionality was discontinued with tomcat 5.5). I even installed probe and played with JMX/jconsole to see if I could get WSS to work, but nothing worked or at least made any kind of change.
    Eventually, I figured out that I could get to the <A class=jive-link-external href="http://localhost:6500/SelfService/SSvcLogIn.jsp">http://localhost:6500/SelfService/SSvcLogIn.jsp</A> page but it doesn't work. If i try to log ( I am trying the SYSUSER/sysuser00 login) in I get "HTTP Status 404 - /SelfService/SSvcLogIn.jsp". Interestingly if I put in a bogus username and password it actually rejects me, so that tells me that there is some connectivity going on. Anyway, after playing around I decided to install another version of tomcat (using the <font face="tahoma,verdana,sans-serif" size="1" color="#000">windows</font> installer v. 6.0.20), and then I moved the SelfService.war file into webapps directory, and then tried this other server which was on a different port. This time I actually got images and etc (for some reason the images weren't working on port 6500). Unfortunately when I tried to log in I got the same error as the original post on this thread.
    If anyone has any suggestions please let me know. Otherwise I am going to try to do this install but with Weblogic since there are better instructions for that app server.It's good for reference, It is just the solution for my problem, Thanks for your analysis!

  • Tracking size of object in JVM

    Hi
    How do i find out which objects are taking memory in JVM.

    Get a heap dump in HPROF binary format using jmap or the new HotSpotDiagnostic MBean through JConsole if your Java application is running on JDK 6 and then analyze it with the jhat tool in JDK 6 or the new HeapWalker in NetBeans 6. NetBeans 6 can also be used to get a heap dump.
    For more detailed info have a look at the Hands-On Lab I presented at JavaOne 2007 about troubleshooting Java applications:
    http://developers.sun.com/learning/javaoneonline/sessions/hol2007/1420/jmxjconsole/index.html#Exercise_2_5
    Regards,
    Luis-Miguel Alventosa
    Java SE JMX/JConsole development team
    Sun Microsystems, Inc.
    http://blogs.sun.com/lmalventosa/

  • JMXMP w/ TLS

    Some years ago, I ran JMXMP with TLS using the jmx remote RI. It was very easy to set up.
    Now I want to do the same thing, but want to use J2SE 1.5 as much as possible. According to the latest jmx remote RI docs, I should be able to use JMXMP by just adding the jmxremote_optional.jar to my Java 1.5 classpath.
    I just want TLS (eventually with client auth, and I see that there is an env setting for that). The security examples do all sorts of other SASL stuff with password lookups. I thought I just wanted a simplification of that, since there are already classes and profiles clearly labelled as "SSL".
    I certainly do not want to have to code callbacks and factories. I'm want to do the sockets to do the same damned thing they do when I use raw SSLSockets. I was able to do this with an older version of the remote RI.
    I notice that if I set all of the env values, and all of the necessary JSSE system properties, a SSL socket is still not allocated by com.sun.jmx.remote.opt.security.TLSServerHandler. I am setting the profile to "TLS", but I notice that if I set it to garbage it is silently ignored, so who knows. I've tried setting a few System properties for telling about the provider package containing the Sun TLS profile (why I should have to tell it about Sun's standard TLS profile, I don't know).
    I've worked on this for a solid 8 hours now, and from the very few discussions I see about this, I fear that I am expected to code half a dozen custom classes just to use vannilla TLS capability which is already present in the Sun-provided classes. Is this so?

    Hi Blaine,
    It's true that in the JMXMP security examples we don't explicitly say how to do client
    authentication using SSL because in most of the cases client authentication will be
    performed through SASL and this is what the example tried to emphasize.
    The idea with this example was to put everything in it so the user could strip it down
    in order to customize it to his/her needs.
    In fact, I'm afraid in your case the only think you would need to configure SSL in the
    environment map is:
    HashMap env = new HashMap();
    env.put("jmx.remote.profiles", "TLS");
    env.put("jmx.remote.tls.need.client.authentication", "true");
    and supply the javax.net.ssl.keyStore* and javax.net.ssl.trustStore* system properties
    to configure your keystore and truststore.
    FYI, Chapter 7 and Appendix B in the JMX Remote API 1.0 specification describe all
    the supported properties for the environment map.
    You can find it at: http://jcp.org/en/jsr/detail?id=160
    Regards,
    Luis-Miguel Alventosa
    JavaSE JMX/JConsole development team
    Sun Microsystems, Inc.
    http://blogs.sun.com/lmalventosa/

  • New to JMX and JConsole usage

    I am just learning about the app montoring features available through JConsole. I am using jdk150_06 to montor an app locally on a Windows PC. I set the property (-Dcom.sun.management.jmxremote) on the statup of my app. The JConsole comes up, sees the JVM, I connect to it and everything seems ok. I want to pull a heap dump of the app to look at in the Memory Analyzer plugin tool available in Eclipse 3.5. According to all the doco I see in JConsole I should see a "com.sun.management" MBean registered in which I can specify a location for the heap dump and generate one. However, I don't see a "com.sun.management" MBean in my JConsole.
    Wondering if anyone has done this before? Am I looking for the wrong thing? Is it maybe my JDK version or something?
    Any help is appreciated.
    Thanks,
    Troy

    Hi Rishabh
    Instructions for enabling jmx on a per-StorageNode basis can be found in chapter 8 of the Admin Guide: http://docs.oracle.com/cd/NOSQL/html/AdminGuide/standardized-monitoring.html
    You can enable JMX when you create the bootstrap configuration, or after the store has been deployed by setting the StorageNode's mgmtClass parameter.
    Once you have enabled it, you can connect to the JMX service by way of the StorageNode's registry. In Jconsole's "New Connection" dialogue, select "Remote Process" and supply the registry's hostname:port, where port is the number that was given as the -port argument in the makebootconfig command that originally configured the StorageNode.
    The MBeans are described in the javadoc for oracle.kv.mgmt.jmx at http://docs.oracle.com/cd/NOSQL/html/javadoc/oracle/kv/mgmt/jmx/package-summary.html.
    -- Guy

Maybe you are looking for