DX Application Performance Management

Expand all | Collapse all

GC Monitor for weblogic

Jump to Best Answer
  • 1.  GC Monitor for weblogic

    Posted 08-14-2014 10:54 AM

    I saw some other posts in the community regarding jboss and openjdk, but couldnt find any similar posts regarding weblogic and the GC Monitor. I have 9.5.2 implemented on weblogic with the following JRE:

     

    java version "1.6.0_45"

    Java(TM) SE Runtime Environment (build 1.6.0_45-b06)

    Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

     

    I do not see the GC monitor in introscope and I see the following line in my log file:

     

    8/12/14 01:07:06 PM CDT [INFO] [IntroscopeAgent.Agent] [Ljava.lang.Object;@18a8c644 JVM Not Supported by Garbage Collection Monitor Agent Service.

     

    Looking through the compatibility guide I cannot find any information on this. Can someone help? Is there a field pack I can download to get this functionality working?

     

    Thanks,

    Russ



  • 2.  Re: GC Monitor for weblogic

    Posted 08-15-2014 10:45 AM

    I'll take a guess and say you're not using the JVM you think you are.  Could you actually be using JRockit?  My copy of WebLogic prints the system properties at startup, including these:

     

    java.vm.info = mixed mode

    java.vm.name = Java HotSpot(TM) 64-Bit Server VM

    java.vm.specification.name = Java Virtual Machine Specification

    java.vm.specification.vendor = Oracle Corporation

    java.vm.specification.version = 1.7

    java.vm.vendor = Oracle Corporation

    java.vm.version = 24.0-b56

     

    Does yours say anything about JRockit?

     

    If that's not it, I don't know what the problem is.

     

    If you ARE using HotSopt, for heap monitoring, which is also covered by the GC Monitor, I actually use JMX instead because it gives me the size of the code cache also.  Uncomment introscope.agent.jmx.compositedata.enable=true and add this to your JMX expressions in IntroscopeAgent.profile:

     

    MemoryPool|*:Usage

     

    Then in the investigator I have JMX|java.lang|MemoryPool with 5 heap regions under it (old gen, perm gen, code cache, eden, survivor.)



  • 3.  Re: GC Monitor for weblogic

    Posted 08-15-2014 03:11 PM

    Yes I am sure its not jrockit. My java vendor is Oracle Corporation and my java version is 1.6.0_45 (found in both the weblogic startup as well as from the introscope agent information inside the investigator). I have a ticket open with CA on it, I need to wait until this weekends restarts so I can turn on debugging and try and catch more information about it when the agent starts up.

     

    For JMX I actually have that turned on but did not have the MemoryPool|*:Usage included. I will add that as well for my weekend restart and see what I can collect from that. Thanks for the idea.



  • 4.  Re: GC Monitor for weblogic

    Posted 08-15-2014 03:47 PM

    I looked at your error message again.  I would have expected it to say something like "JRockit JVM Not Supported by Garbage Collection Monitor Agent Service" but instead of the jvm name, you got what looks like toString() output on something that's not a string.  The only way I can think of for that to happen is the java.vm.name value was set by some application code somewhere.  Specifically, it was set to an Object array, because [Ljava.lang.Object;@1234 is how Object arrays are represented as Strings.

     

    Here is an example that will produce similar output:

     

            System.getProperties().put("java.vm.name", new Object[] {new Object()});

            System.out.println(System.getProperties().get("java.vm.name"));

     

    Unfortunately, I don't know of a way to connect to a java 6 jvm and get the system properties.  (You can do such a thing with java 7.)  A heap dump would help.  You could at least see what's in the array and what other objects have a reference to it, which would give you a clue as to where it was created.

     

    John



  • 5.  Re: GC Monitor for weblogic

    Posted 08-17-2014 06:39 AM

    Hi John,

     

    try $JAVA_HOME/bin/jinfo <YourJavaProcessId>

    This should print all the properties of your jvm running. This tool only is available in the jdk, not the jre. It has to be run as the same user as your process.

     

    Good luck

     

    Andrej



  • 6.  Re: GC Monitor for weblogic
    Best Answer

    Posted 08-21-2014 04:26 AM

    Hi Russ,

     

    GC monitor will work with SUN and IBM JVMs:

     

     

    introscope.agent.gcmonitor.enable

    This property enables or disables the metrics for Garbage Collectors and Memory Pools.

    Property settings

    True or False

    Default

    The default value is true.

    Example

    introscope.agent.gcmonitor.enable=true 

    Notes

    This property is dynamic. You can change the configuration of this property during run time and the change is picked up automatically.

    You can only report GC Monitor metrics for agents that monitor Sun or IBM JVMs.

     

     

    Since you are using OpenJDK I would suggest you to raise a support ticket as I have seen some field packs to make GC Monitor to work with OpenJDK JVM.

     

    Thanks,

    Jose



  • 7.  Re: GC Monitor for weblogic

    Posted 08-28-2014 03:01 PM

    When deploying WebLogic, you have the option of running your appserver in Developer or Production mode.

     

    When running in Developer mode, it uses HotSpot JRE. When running Production mode, it runs JRockit.

     

    Please take a look your configurations again to ensure you're using HotSpot JRE (unless this is already resolved, in which case, please update the post and mark it answered).