Receiving multiple Weblogic11g JVM state down alerts when in fact is running
Monitoring the state of these JVMs is very unreliable
Once the condition has been encountered the JVM state does not recover in Foglight until the Weblogic JVM is restarted.
Foglight JavaEE agent log error:
2011-09-14 22:21:39.154 VERBOSE [Poll Server State for PIA] com.sitraka.pas.agent.plugin.WebLogicCollectorManager - Stopping metrics collector for PIA
2011-09-14 22:23:47.584 ERROR [State Check for PIA] com.sitraka.pas.agent.plugin.WebLogicCollectorManager - An unexpected error occurred which may cause undesired behavior. You may want to contact Quest Software customer support if you see this error again: Could not execute state check
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:612)
at com.sitraka.pas.agent.plugin.weblogic.CommonHelperImpl.runAsWebLogicKernel(CommonHelperImpl.java:62)
at com.sitraka.pas.agent.plugin.WebLogicCollectorManager$2.run(WebLogicCollectorManager.java:360)
at java.lang.Thread.run(Thread.java:735)
Caused by: com.sitraka.pas.agent.plugin.weblogic.MBeanServerUnavailableException: Could not locate WebLogic Runtime MBeanServer
at com.sitraka.pas.agent15.plugin.weblogic.Version9HelperImpl.getDefaultMBeanServer(Version9HelperImpl.java:213)
at com.sitraka.pas.agent15.plugin.weblogic.Version9HelperImpl.getServerName(Version9HelperImpl.java:191)
at com.sitraka.pas.agent.plugin.WebLogicCollectorManager.getLocalServerName(WebLogicCollectorManager.java:339)
at com.sitraka.pas.agent.plugin.WebLogicCollectorManager$Server.isLocalServer(WebLogicCollectorManager.java:453)
at com.sitraka.pas.agent.plugin.WebLogicCollectorManager$Instrumented
It is the call to weblogic mbeans that is failing...so our agent isn't getting the data from Weblogic.
Bug Filed JEE-7395 to check for agent status if server state collected by the agent is "UNKNOWN"
WORKAROUND:
In the meanwhile,you can do a small edit for the derived metric called "availability" with scope WebLogicServer, to get around this.
In the calculation, add an additional else statement to check the Unknown status:
if (observations != null && !observations.isEmpty())
{
serverState = observations[0].getDefaultValue();
if (serverState == "RUNNING")
return 1;
else if (serverState == "UNKNOWN")
CAT.log("Server state is UNKNOWN");
else
return 0;
}
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center