From: <gla...@hy...> - 2010-05-14 22:09:53
|
Author: glaullon Date: 2010-05-14 15:09:45 -0700 (Fri, 14 May 2010) New Revision: 14596 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14596 Modified: trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicControlPlugin.java trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicDetector.java trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/ServerQuery.java trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/WeblogicRuntimeDiscoverer.java Log: [HHQ-3989] WebLogic Plugin Control Action Start cannot start WebLogic Modified: trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicControlPlugin.java =================================================================== --- trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicControlPlugin.java 2010-05-14 07:57:10 UTC (rev 14595) +++ trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicControlPlugin.java 2010-05-14 22:09:45 UTC (rev 14596) @@ -35,6 +35,7 @@ import org.hyperic.hq.product.MetricUnreachableException; import org.hyperic.hq.product.ServerControlPlugin; import org.hyperic.hq.product.PluginException; +import org.hyperic.hq.product.ProductPluginManager; import org.hyperic.hq.product.TypeInfo; import org.hyperic.util.config.ConfigOption; @@ -177,19 +178,20 @@ } public boolean isWeblogicRunning() { + boolean res = false; + Metric metric = getLifecycleMetric(); - - Integer state; - try { - state = (Integer)WeblogicUtil.getRemoteMBeanValue(metric); + Integer state = (Integer) WeblogicUtil.getRemoteMBeanValue(metric); + double val = WeblogicUtil.convertStateVal(state); + res = (val == Metric.AVAIL_UP); } catch (Exception e) { - return false; + if (getLog().isDebugEnabled()) { + getLog().error(e); + } } - - double val = WeblogicUtil.convertStateVal(state); - - return val == Metric.AVAIL_UP; + getLog().error("[isWeblogicRunning] "+res); + return res; } protected boolean isBackgroundCommand() { Modified: trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicDetector.java =================================================================== --- trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicDetector.java 2010-05-14 07:57:10 UTC (rev 14595) +++ trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/WeblogicDetector.java 2010-05-14 22:09:45 UTC (rev 14596) @@ -66,8 +66,7 @@ private static final String ADMIN_START = "startWebLogic" + SCRIPT_EXT; - private static final String NODE_START = - "startManagedWebLogic" + SCRIPT_EXT; + public static final String NODE_START = "bin/startManagedWebLogic" + SCRIPT_EXT; private static final String PROP_MX_SERVER = "-Dweblogic.management.server"; @@ -83,28 +82,6 @@ return new WeblogicRuntimeDiscoverer(this); } - private File getPossibleControlProgram(File dir) { - String[] scripts = dir.list(new FilenameFilter() { - public boolean accept(File dir, String name) { - if (name.startsWith("start") && - name.endsWith(SCRIPT_EXT) && - !name.equals(NODE_START) && - (name.indexOf("PointBase") == -1)) - { - return true; - } - return false; - } - }); - - if ((scripts == null) || (scripts.length == 0)) { - return null; - } - else { - return new File(dir, scripts[0]); - } - } - //just here to override protected access. void adjustWeblogicClassPath(String installpath) { adjustClassPath(installpath); @@ -207,37 +184,27 @@ "logs", //9.1 }; - File log = null; + File wlsLog = null; for (int i=0; i<dirs.length; i++) { - log = + wlsLog = new File(installDir, dirs[i] + File.separator + srvName + ".log"); - if (log.exists()) { + if (wlsLog.exists()) { break; } } productConfig.setValue(WeblogicLogFileTrackPlugin.PROP_FILES_SERVER, - log.toString()); + wlsLog.toString()); ConfigResponse controlConfig = new ConfigResponse(); - File script = //9.1 - getPossibleControlProgram(new File(installDir, "../..")); - if ((script == null) || !script.exists()) { - script = getPossibleControlProgram(installDir); - } - if (script == null) { - script = new File(installDir, ADMIN_START); - } - + File script = new File(installDir,"../../" + ADMIN_START); try { - controlConfig.setValue(ServerControlPlugin.PROP_PROGRAM, - getCanonicalPath(script.getPath())); - } catch (InvalidOptionException e) { - this.log.error(e.getMessage(), e); - } catch (InvalidOptionValueException e) { - this.log.error(e.getMessage(), e); + controlConfig.setValue(ServerControlPlugin.PROP_PROGRAM, script.getCanonicalPath()); + } catch (IOException ex) { + controlConfig.setValue(ServerControlPlugin.PROP_PROGRAM, script.getPath()); + log.debug(ex); } boolean hasCreds = false; @@ -279,8 +246,8 @@ server.setName(name); - server.setProductConfig(productConfig); - server.setControlConfig(controlConfig); + setProductConfig(server,productConfig); + setControlConfig(server,controlConfig); //force user to configure by not setting measurement config //since we dont discover username or password. if (hasCreds) { Modified: trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/ServerQuery.java =================================================================== --- trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/ServerQuery.java 2010-05-14 07:57:10 UTC (rev 14595) +++ trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/ServerQuery.java 2010-05-14 22:09:45 UTC (rev 14596) @@ -26,6 +26,7 @@ package org.hyperic.hq.plugin.weblogic.jmx; import java.io.File; +import java.io.IOException; import java.util.Collections; import java.util.Comparator; import java.util.Hashtable; @@ -36,6 +37,9 @@ import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.MalformedObjectNameException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hyperic.hq.plugin.weblogic.WeblogicDetector; import org.hyperic.hq.product.TypeBuilder; @@ -47,6 +51,8 @@ extends BaseServerQuery implements Comparator { + private static final Log log = LogFactory.getLog(ServerQuery.class); + private WeblogicDiscover discover; private String url; private boolean isAdmin = false; @@ -445,19 +451,17 @@ if (!this.isRunning) { return ""; } - - if (this.isAdmin) { - ctl = new File(this.cwd, "startWebLogic.sh").toString(); - } - else { - if (this.cwd.getName().equals("nodemanager")) { - ctl = ""; + + if (this.cwd.getName().equals("nodemanager")) { + ctl = ""; + } else { + try { + ctl = new File(this.cwd, WeblogicDetector.NODE_START).getCanonicalPath(); + } catch (IOException ex) { + ctl = new File(this.cwd, WeblogicDetector.NODE_START).getPath(); + log.debug(ex); } - else { - ctl = new File(this.cwd, "startManagedWebLogic.sh").toString(); - } } - return ctl; } Modified: trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/WeblogicRuntimeDiscoverer.java =================================================================== --- trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/WeblogicRuntimeDiscoverer.java 2010-05-14 07:57:10 UTC (rev 14595) +++ trunk/plugins/weblogic/src/org/hyperic/hq/plugin/weblogic/jmx/WeblogicRuntimeDiscoverer.java 2010-05-14 22:09:45 UTC (rev 14596) @@ -216,6 +216,7 @@ for (int i = 0; i < servers.size(); i++) { serverQuery = (ServerQuery) servers.get(i); + if(!serverQuery.isRunning()) continue; if (serverQuery.isAdmin()) { adminVersion = serverQuery.getVersion(); |