You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(927) |
Apr
(419) |
May
(352) |
Jun
(431) |
Jul
(463) |
Aug
(345) |
Sep
(304) |
Oct
(596) |
Nov
(466) |
Dec
(414) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(348) |
Feb
(313) |
Mar
(665) |
Apr
(688) |
May
(434) |
Jun
(311) |
Jul
(540) |
Aug
(554) |
Sep
(467) |
Oct
(341) |
Nov
(365) |
Dec
(272) |
2009 |
Jan
(386) |
Feb
(293) |
Mar
(279) |
Apr
(239) |
May
(229) |
Jun
(199) |
Jul
(186) |
Aug
(111) |
Sep
(196) |
Oct
(146) |
Nov
(116) |
Dec
(140) |
2010 |
Jan
(170) |
Feb
(159) |
Mar
(151) |
Apr
(161) |
May
(90) |
Jun
(56) |
Jul
(28) |
Aug
(22) |
Sep
(5) |
Oct
|
Nov
(23) |
Dec
(12) |
2011 |
Jan
(8) |
Feb
(8) |
Mar
(22) |
Apr
(24) |
May
(4) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
(5) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: ermasto <sig...@hy...> - 2010-05-12 05:28:46
|
Hi all, i have to catch the information of cpu and the class CpuInfo in the examples do it.Well i have to prelevate the information of cpu and i do this code: String a=CpuPerc.format(cpu.getUser()); String b=CpuPerc.format(cpu.getSys()); String c=CpuPerc.format(cpu.getIdle()); but now i want to convert this string in float because i want to sum all together and than divide. I try whit float.Integerfloat; float.valueof; and nothing i try to to delete % into the string with replace('%',' ') but whit no result. How can i do it? Please Help me P.S. Sorry for my english |
From: JeanDagenais2 <sig...@hy...> - 2010-05-12 05:28:38
|
Thanks for the suggestion, runing with 64 bits JVM solved the problem! Thanks again, Jean |
From: Christopher N. <nbi...@ya...> - 2010-05-12 05:28:33
|
Hello Help, Is it possible to calculate the memory consumption of Java Objects using SIGAR. Lets say we have 3 Java Objects running on the JVM and we want to know the memory consumption of each object. Thanks, Christopher |
From: Dustin S. <ds...@re...> - 2010-05-12 05:28:17
|
I'm getting an incorrect value for "% Free Space". It looks as if it's actually return the "Free Megabytes" value. C:\Program Files\Hyperic\hyperic-hq-agent-4.2.0.7>jre\bin\java -classpath bundle s\agent-4.2.0.7-1285\pdk\lib\sigar.jar org.hyperic.sigar.win32.Pdh -i --object=L ogicalDisk -k -v LogicalDisk HarddiskVolume1 % Free Space = 71.0 Free Megabytes = 71.0 Current Disk Queue Length = 0.0 % Disk Time = 3.0951E7 Avg. Disk Queue Length = 3.0951E7 % Disk Read Time = 3.0355E7 Avg. Disk Read Queue Length = 3.0355E7 % Disk Write Time = 596000.0 Avg. Disk Write Queue Length = 596000.0 Avg. Disk sec/Transfer = 7538017.0 Avg. Disk sec/Read = 7392863.0 Avg. Disk sec/Write = 145153.0 Disk Transfers/sec = 95.0 Disk Reads/sec = 70.0 Disk Writes/sec = 25.0 Disk Bytes/sec = 415744.0 Disk Read Bytes/sec = 303104.0 Disk Write Bytes/sec = 112640.0 Avg. Disk Bytes/Transfer = 415744.0 Avg. Disk Bytes/Read = 303104.0 Avg. Disk Bytes/Write = 112640.0 % Idle Time = 7.95644763E11 Split IO/Sec = 0.0 C: % Free Space = 72778.0 Free Megabytes = 72778.0 Current Disk Queue Length = 0.0 % Disk Time = 6.498793545E12 Avg. Disk Queue Length = 6.498793545E12 % Disk Read Time = 4.279602281E12 Avg. Disk Read Queue Length = 4.279602281E12 % Disk Write Time = 2.219191264E12 Avg. Disk Write Queue Length = 2.219191264E12 Avg. Disk sec/Transfer = 1.582760371745E12 Avg. Disk sec/Read = 1.04228344081E12 Avg. Disk sec/Write = 5.40476930935E11 Disk Transfers/sec = 1583739.0 Disk Reads/sec = 737179.0 Disk Writes/sec = 846560.0 Disk Bytes/sec = 2.8395625984E10 Disk Read Bytes/sec = 1.8006443008E10 Disk Write Bytes/sec = 1.0389182976E10 Avg. Disk Bytes/Transfer = 2.8395625984E10 Avg. Disk Bytes/Read = 1.8006443008E10 Avg. Disk Bytes/Write = 1.0389182976E10 % Idle Time = 3.74683859E11 Split IO/Sec = 28399.0 _Total % Free Space = 72849.0 Free Megabytes = 72849.0 Current Disk Queue Length = 0.0 % Disk Time = 3.249412248E12 Avg. Disk Queue Length = 6.498824496E12 % Disk Read Time = 2.139816318E12 Avg. Disk Read Queue Length = 4.279632636E12 % Disk Write Time = 1.10959593E12 Avg. Disk Write Queue Length = 2.21919186E12 Avg. Disk sec/Transfer = 1.582767909762E12 Avg. Disk sec/Read = 1.042290833673E12 Avg. Disk sec/Write = 5.40477076088E11 Disk Transfers/sec = 1583834.0 Disk Reads/sec = 737249.0 Disk Writes/sec = 846585.0 Disk Bytes/sec = 2.8396041728E10 Disk Read Bytes/sec = 1.8006746112E10 Disk Write Bytes/sec = 1.0389295616E10 Avg. Disk Bytes/Transfer = 2.8396041728E10 Avg. Disk Bytes/Read = 1.8006746112E10 Avg. Disk Bytes/Write = 1.0389295616E10 % Idle Time = 5.851646335E11 Split IO/Sec = 28399.0 |
From: <tr...@hy...> - 2010-05-12 00:47:11
|
Author: trader Date: 2010-05-11 17:20:43 -0700 (Tue, 11 May 2010) New Revision: 14589 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14589 Modified: trunk/src/org/hyperic/util/file/DiskList.java trunk/unittest/src/org/hyperic/util/file/DiskListTest.java Log: HHQ-3980: related, but not a fix: add better logging, add unittest for concurrent iteration. No repro case found as of this checkin. Modified: trunk/src/org/hyperic/util/file/DiskList.java =================================================================== --- trunk/src/org/hyperic/util/file/DiskList.java 2010-05-11 19:19:38 UTC (rev 14588) +++ trunk/src/org/hyperic/util/file/DiskList.java 2010-05-12 00:20:43 UTC (rev 14589) @@ -572,7 +572,7 @@ } catch(IOException exc){ log.error("IOException while reading record"); if (log.isDebugEnabled()) { - log.debug(exc); + log.debug("IOException while trying to read record number " + this.curIdx, exc); } throw new NoSuchElementException("Error getting next " + "element: " + Modified: trunk/unittest/src/org/hyperic/util/file/DiskListTest.java =================================================================== --- trunk/unittest/src/org/hyperic/util/file/DiskListTest.java 2010-05-11 19:19:38 UTC (rev 14588) +++ trunk/unittest/src/org/hyperic/util/file/DiskListTest.java 2010-05-12 00:20:43 UTC (rev 14589) @@ -493,6 +493,75 @@ } } + public void testConcurrentIteration() throws Exception { + + DiskListDataHolder holder = null; + + try { + + try { + holder = new DiskListDataHolder(); + } catch (Exception e) { + e.printStackTrace(); + fail(e.toString()); + } + + for (long i = 0; i < MAXRECS; ++i) { + String toPut = String.valueOf(i); + holder.list.addToList(toPut); + } + + final int nThreads = 50; + IterationRunner[] threads = new IterationRunner[nThreads]; + + for (int i = 0; i < nThreads; ++i) { + threads[i] = new IterationRunner(holder.list.getListIterator()); + } + + for (int i = 0; i < nThreads; ++i) { + threads[i].start(); + } + + for (int i = 0; i < nThreads; ++i) { + threads[i].join(); + if (threads[i].getFailure() != null) { + threads[i].getFailure().printStackTrace(); + fail("Exception during iteration"); + } + } + + } finally { + + holder.dispose(); + + } + } + + private static class IterationRunner extends Thread { + + private Iterator it; + private Exception failure; + + IterationRunner(Iterator it) { + this.it = it; + this.failure = null; + } + + public void run() { + try { + while (it.hasNext()) { + it.next(); + } + } catch (Exception e) { + failure = e; + } + } + + Exception getFailure() { + return failure; + } + } + private static class DiskListDataHolder { DiskList list; File dataFile; |
From: <tr...@hy...> - 2010-05-12 00:29:32
|
Author: trader Date: 2010-05-11 17:27:34 -0700 (Tue, 11 May 2010) New Revision: 14590 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14590 Modified: trunk/src/org/hyperic/hq/authz/shared/ResourceOperationsHelper.java Log: HHQ-3952: no fix, just better logging Modified: trunk/src/org/hyperic/hq/authz/shared/ResourceOperationsHelper.java =================================================================== --- trunk/src/org/hyperic/hq/authz/shared/ResourceOperationsHelper.java 2010-05-12 00:20:43 UTC (rev 14589) +++ trunk/src/org/hyperic/hq/authz/shared/ResourceOperationsHelper.java 2010-05-12 00:27:34 UTC (rev 14590) @@ -213,7 +213,8 @@ } if (resourceTypeCode < 0) { - throw new IllegalArgumentException("resourceType must be a platform, server, service or group resource type."); + throw new IllegalArgumentException("resourceType must be a platform, server, service or group resource type," + + " illegal type was " + resourceTypeId); } return getOperationName(resourceTypeCode, operationCode); |
From: <sc...@hy...> - 2010-05-11 20:20:30
|
Author: scottmf Date: 2010-05-11 12:19:38 -0700 (Tue, 11 May 2010) New Revision: 14588 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14588 Modified: trunk/src/org/hyperic/hq/authz/server/session/ResourceManagerEJBImpl.java Log: [HHQ-3977] added NPE checks against the associated group Modified: trunk/src/org/hyperic/hq/authz/server/session/ResourceManagerEJBImpl.java =================================================================== --- trunk/src/org/hyperic/hq/authz/server/session/ResourceManagerEJBImpl.java 2010-05-11 17:45:16 UTC (rev 14587) +++ trunk/src/org/hyperic/hq/authz/server/session/ResourceManagerEJBImpl.java 2010-05-11 19:19:38 UTC (rev 14588) @@ -443,16 +443,18 @@ /** * @ejb:interface-method */ - public void removeResource(AuthzSubject subject, Resource r) - throws VetoException - { - ResourceDeleteCallback cb = - AuthzStartupListener.getResourceDeleteCallback(); + public void removeResource(AuthzSubject subject, Resource r) throws VetoException { + if (r == null) { + return; + } + ResourceDeleteCallback cb = AuthzStartupListener.getResourceDeleteCallback(); cb.preResourceDelete(r); - final long now = System.currentTimeMillis(); ResourceAudit.deleteResource(r, subject, now, now); - r.getGroupBag().clear(); + Collection groupBag = r.getGroupBag(); + if (groupBag != null) { + groupBag.clear(); + } getResourceDAO().remove(r); } |
From: <jko...@hy...> - 2010-05-11 17:54:13
|
Author: jkonicki Date: 2010-05-11 10:45:16 -0700 (Tue, 11 May 2010) New Revision: 14587 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14587 Modified: branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java Log: HHQ-3979 Backport fix (HHQ-3880) to 4.2.0.8 Modified: branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java =================================================================== --- branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java 2010-05-11 07:58:12 UTC (rev 14586) +++ branches/HQ_4_2_0_PATCH/src/org/hyperic/hq/product/servlet/client/JMXProtocolAjp.java 2010-05-11 17:45:16 UTC (rev 14587) @@ -6,7 +6,7 @@ * normal use of the program, and does *not* fall under the heading of * "derived work". * - * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. + * Copyright (C) [2004-2010], Hyperic, Inc. * This file is part of HQ. * * HQ is free software; you can redistribute it and/or modify @@ -50,7 +50,9 @@ public class JMXProtocolAjp extends JMXProtocolRequest { private static Log log = LogFactory.getLog(JMXProtocolAjp.class); + private static final String PROP_JMX_AJP_TIMEOUT = "jmx.ajpTimeOut"; private static final int M_GET = 2; + private static final int SOCKET_TIMEOUT = 60000; private HashMap sockets = new HashMap(); @@ -66,14 +68,28 @@ } if (s == null) { - log.debug("Connect " + host + " " + port ); + if (log.isDebugEnabled()) { + log.debug("Connect " + host + " " + port ); + } s = new Socket(host, port); + s.setSoTimeout(getSocketTimeout()); sockets.put(key, s); } return s; } + private int getSocketTimeout() { + int soTimeout; + try { + soTimeout = + Integer.parseInt(System.getProperty(PROP_JMX_AJP_TIMEOUT)); + } catch (NumberFormatException e) { + soTimeout = SOCKET_TIMEOUT; + } + return soTimeout; + } + private void closeSocket(Socket s) throws SocketException, IOException { s.shutdownOutput(); |
From: <bo...@hy...> - 2010-05-11 07:58:24
|
Author: bob Date: 2010-05-11 00:58:12 -0700 (Tue, 11 May 2010) New Revision: 14586 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14586 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1437 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-11 00:17:02 UTC (rev 14585) +++ trunk/etc/version.properties 2010-05-11 07:58:12 UTC (rev 14586) @@ -1,3 +1,3 @@ -#Mon May 10 00:18:31 PDT 2010 +#Tue May 11 00:20:03 PDT 2010 version=4.3.0 -build=1436 +build=1437 |
From: <gla...@hy...> - 2010-05-11 00:37:12
|
Author: glaullon Date: 2010-05-10 17:17:02 -0700 (Mon, 10 May 2010) New Revision: 14585 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14585 Modified: trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/CachedJDBCMeasurement.java trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DBManagerMeasurement.java trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DataBaseServerDetector.java Log: change some error messages Modified: trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/CachedJDBCMeasurement.java =================================================================== --- trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/CachedJDBCMeasurement.java 2010-05-11 00:12:53 UTC (rev 14584) +++ trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/CachedJDBCMeasurement.java 2010-05-11 00:17:02 UTC (rev 14585) @@ -46,13 +46,7 @@ if (getLog().isDebugEnabled()) { getLog().error("Metric: '" + metric + "' Error='" + ex.getMessage() + "'", ex); } - if (metric.getAttributeName().endsWith(AVAIL_ATTR)) { - values = new HashMap(); - values.put(metric.getAttributeName(), new MetricValue(Metric.AVAIL_DOWN)); - cache.put(key, new CacheEntry(values)); - } else { - throw ex; - } + throw ex; } } else { Modified: trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DBManagerMeasurement.java =================================================================== --- trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DBManagerMeasurement.java 2010-05-11 00:12:53 UTC (rev 14584) +++ trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DBManagerMeasurement.java 2010-05-11 00:17:02 UTC (rev 14585) @@ -14,14 +14,7 @@ protected String getQuery(Metric metric) { if (getLog().isDebugEnabled()) { - getLog().debug("*******************"); - getLog().debug("** MT " + metric); - getLog().debug("** DN " + metric.getDomainName()); - getLog().debug("** OP " + metric.getObjectProperties()); - getLog().debug("** ON " + metric.getObjectName()); - getLog().debug("** AT " + metric.getAttributeName()); - getLog().debug("** PR " + metric.getProperties()); - getLog().debug("*******************"); + getLog().debug("** metric = " + metric); } String func = metric.getObjectProperties().getProperty("func"); return "SELECT * FROM TABLE(" + func + "(-2))"; Modified: trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DataBaseServerDetector.java =================================================================== --- trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DataBaseServerDetector.java 2010-05-11 00:12:53 UTC (rev 14584) +++ trunk/plugins/db2jdbc/src/org/hyperic/hq/plugin/db2jdbc/DataBaseServerDetector.java 2010-05-11 00:17:02 UTC (rev 14585) @@ -150,9 +150,16 @@ String err = inputStreamAsString(cmd.getErrorStream()); cmd.waitFor(); - getLog().debug("[createDataBases] sal=" + sal); - if (sal.length() == 0) { - getLog().debug("[createDataBases] (" + cmd.exitValue() + ") err=" + err); + if (getLog().isDebugEnabled()) { + if (cmd.exitValue() != 0) { + getLog().error("[createDataBases] exit=" + cmd.exitValue()); + getLog().error("[createDataBases] sal=" + sal); + } else { + getLog().debug("[createDataBases] sal=" + sal); + } + if (sal.length() == 0) { + getLog().debug("[createDataBases] (" + cmd.exitValue() + ") err=" + err); + } } Matcher m = regExpDataBases.matcher(sal); |
From: <gla...@hy...> - 2010-05-11 00:37:12
|
Author: glaullon Date: 2010-05-10 17:12:53 -0700 (Mon, 10 May 2010) New Revision: 14584 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14584 Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml Log: [HPD-488] DB2 Plugin: Add Information to Configuration Properties Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml =================================================================== --- trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-10 21:55:32 UTC (rev 14583) +++ trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-11 00:12:53 UTC (rev 14584) @@ -5,10 +5,10 @@ Kit or the Hyperic Client Development Kit - this is merely considered normal use of the program, and does *not* fall under the heading of "derived work". - + Copyright (C) [2004-2010], Hyperic, Inc. This file is part of HQ. - + HQ is free software; you can redistribute it and/or modify it under the terms version 2 of the GNU General Public License as published by the Free Software Foundation. This program is distributed @@ -16,7 +16,7 @@ even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -25,7 +25,7 @@ <plugin name="db2jdbc" class="DB2JDBCProductPlugin"> <property name="template-config" - value="database=%db2.jdbc.database%,jdbcUser=%db2.jdbc.user%,jdbcPassword=%db2.jdbc.password%,jdbcUrl=jdbc:db2://%db2.jdbc.hostname%:%db2.jdbc.port%/%db2.jdbc.database%"/> + value="database=%db2.jdbc.database%,jdbcUser=%db2.jdbc.user%,jdbcPassword=%db2.jdbc.password%,jdbcUrl=jdbc:db2://%db2.jdbc.hostname%:%db2.jdbc.port%/%db2.jdbc.database%"/> <property name="server" value="func=SNAP_GET_DB_V91"/> <metrics name="DB2 JDBC 9.x"> @@ -63,7 +63,7 @@ <metric name="Direct Reads Ratio" alias="DIRECT_READS_RATIO" template="db2:${server}:${alias}" category="UTILIZATION" indicator="true" units="none" collectionType="trendsup"/> <metric name="Direct Read Time" alias="DIRECT_READ_TIME" template="db2:${server}:${alias}" category="UTILIZATION" indicator="true" units="ms" collectionType="dynamic"/> <metric name="Direct Read Time Average" alias="DIRECT_READ_TIME_AVE" template="db2:${server}:${alias}" category="UTILIZATION" indicator="true" units="ms" collectionType="dynamic"/> - + <metric name="Direct Writes" alias="DIRECT_WRITES" template="db2:${server}:${alias}" category="UTILIZATION" units="none" collectionType="trendsup"/> <metric name="Direct Writes Requests" alias="DIRECT_WRITE_REQS" template="db2:${server}:${alias}" category="UTILIZATION" units="none" collectionType="trendsup"/> <metric name="Direct Writes Ratio" alias="DIRECT_WRITE_RATIO" template="db2:${server}:${alias}" category="UTILIZATION" indicator="true" units="none" collectionType="dynamic"/> @@ -111,12 +111,12 @@ <property name="table_size" value="sql=select * from SYSIBMADM.ADMINTABINFO where TABNAME='%table%' and TABSCHEMA='%schema%'"/> <metrics name="DB2 JDBC 9.x Table"> <metric name="Availability" - alias="Availability" - template="db2:${table_size}:availability" - category="AVAILABILITY" - indicator="true" - units="percentage" - collectionType="dynamic"/> + alias="Availability" + template="db2:${table_size}:availability" + category="AVAILABILITY" + indicator="true" + units="percentage" + collectionType="dynamic"/> <metric name="Total" alias="TOTAL_SIZE" template="db2:${table_size}:${alias}" category="UTILIZATION" indicator="true" units="KB"/> <metric name="Data" alias="DATA_OBJECT_P_SIZE" template="db2:${table_size}:${alias}" category="UTILIZATION" indicator="true" units="KB"/> <metric name="Dictionary" alias="DICTIONARY_SIZE" template="db2:${table_size}:${alias}" category="UTILIZATION" indicator="true" units="B"/> @@ -142,12 +142,12 @@ <property name="tablespace_cont" value="func=SNAP_GET_CONTAINER_V91,where=TBSP_NAME='%tablespace%'"/> <metrics name="DB2 JDBC 9.x Table Space"> <metric name="Availability" - alias="Availability" - template="db2:${tablespace}:availability" - category="AVAILABILITY" - indicator="true" - units="percentage" - collectionType="dynamic"/> + alias="Availability" + template="db2:${tablespace}:availability" + category="AVAILABILITY" + indicator="true" + units="percentage" + collectionType="dynamic"/> <metric name="Utilization" alias="TBSP_UTILIZATION_PERCENT" template="db2:${tablespace}:${alias}" category="UTILIZATION" indicator="true" units="percentage"/> <metric name="Page" alias="TBSP_PAGE_SIZE" template="db2:${tablespace}:${alias}" category="UTILIZATION" indicator="true" units="KB"/> <metric name="Prefetch" alias="TBSP_PREFETCH_SIZE" template="db2:${tablespace}:${alias}" category="UTILIZATION" indicator="true" units="KB"/> @@ -184,12 +184,12 @@ <property name="memorypool" value="sql=select * from SYSIBMADM.SNAPDB_MEMORY_POOL where POOL_ID='%pool_id%' and POOL_SECONDARY_ID='%sec_pool_id%'"/> <metrics name="DB2 JDBC 9.x Memory Pool"> <metric name="Availability" - alias="Availability" - template="db2:${memorypool}:availability" - category="AVAILABILITY" - indicator="true" - units="percentage" - collectionType="dynamic"/> + alias="Availability" + template="db2:${memorypool}:availability" + category="AVAILABILITY" + indicator="true" + units="percentage" + collectionType="dynamic"/> <metric name="Configured Size" alias="POOL_CONFIG_SIZE" template="db2:${memorypool}:${alias}" category="UTILIZATION" units="b"/> <metric name="Current Size" alias="POOL_CUR_SIZE" template="db2:${memorypool}:${alias}" category="UTILIZATION" indicator="true" units="b"/> <metric name="Used Size" alias="POOL_CUR_SIZE_USED" template="db2:${memorypool}:${alias}" category="UTILIZATION" indicator="true" units="percentage"/> @@ -240,12 +240,12 @@ <property name="dbmanager" value="func=SNAP_GET_DBM"/> <metrics name="DB2 JDBC Database Manager 9.x"> <metric name="Availability" - alias="Availability" - template="db2:${dbmanager}:availability" - category="AVAILABILITY" - indicator="true" - units="percentage" - collectionType="dynamic"/> + alias="Availability" + template="db2:${dbmanager}:availability" + category="AVAILABILITY" + indicator="true" + units="percentage" + collectionType="dynamic"/> <metric name="Total Sort Heap Allocated" alias="SORT_HEAP_ALLOCATED" template="db2:${dbmanager}:${alias}" category="UTILIZATION" units="none"/> <metric name="Post Threshold Sorts" alias="POST_THRESHOLD_SORTS" template="db2:${dbmanager}:${alias}" category="UTILIZATION" units="none" collectionType="trendsup"/> <metric name="Piped Sorts Requested" alias="PIPED_SORTS_REQUESTED" template="db2:${dbmanager}:${alias}" category="UTILIZATION" units="none" collectionType="trendsup"/> @@ -289,4 +289,13 @@ <option name="db2.jdbc.password" description="JDBC Password" type="secret"/> </config> </server> + + <help name="DB2 JDBC 9.x"> + <![CDATA[ + <b>Configure HQ for monitoring DB2</b></br> +The JDBC User (db2.jdbc.user) need SYSMON authorization<br> +The HQ Agent must be run using DB2 environment + ]]> + </help> + <help name="DB2 JDBC Database Manager 9.x" include="DB2 JDBC 9.x"/> </plugin> |
From: <gla...@hy...> - 2010-05-10 21:55:41
|
Author: glaullon Date: 2010-05-10 14:55:32 -0700 (Mon, 10 May 2010) New Revision: 14583 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14583 Added: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/StatsDefaultCollector.java Removed: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminMeasurementPlugin.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminServerCollector.java Modified: trunk/plugins/websphere/etc/hq-plugin.xml trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ApplicationCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ConnectionPoolCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/EJBCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ThreadPoolCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebappCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereCollector.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereProductPlugin.java trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereServerCollector.java Log: [HHQ-3971] After Websphere is restarted, all metrics stop collecting. Modified: trunk/plugins/websphere/etc/hq-plugin.xml =================================================================== --- trunk/plugins/websphere/etc/hq-plugin.xml 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/etc/hq-plugin.xml 2010-05-10 21:55:32 UTC (rev 14583) @@ -109,11 +109,6 @@ </metrics> <metrics name="WebSphere Admin 6.0" include="jvm"> - <metric name="Availability" - template="${domain}:Module=adminModule:${alias}" - category="AVAILABILITY" - indicator="true"/> - <metric name="Number of JVMs" alias="NumJVMs" template="${domain}:Module=adminModule:${alias}" @@ -483,11 +478,10 @@ value="properties/version/WAS.product"/> <plugin type="measurement" - class="WebsphereAdminMeasurementPlugin"/> + class="WebsphereJmxMeasurementPlugin"/> <plugin type="collector" class="WebsphereServerCollector"/> - <!--class="WebsphereAdminServerCollector"/--> <plugin type="control" class="WebsphereControlPlugin"/> Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ApplicationCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ApplicationCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ApplicationCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -27,53 +27,27 @@ import org.hyperic.hq.product.PluginException; +import javax.management.ObjectName; + import com.ibm.websphere.management.AdminClient; import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; public class ApplicationCollector extends WebsphereCollector { - private static final Log log = LogFactory.getLog(ApplicationCollector.class.getName()); - protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); + ObjectName name = newObjectNamePattern("j2eeType=J2EEApplication," + + "name=" + getModuleName() + "," + + getProcessAttributes()); - this.name = - newObjectNamePattern("j2eeType=J2EEApplication," + - "name=" + getModuleName() + "," + - getProcessAttributes()); - - try { - this.name = resolve(mServer, this.name); - } catch (PluginException e) { - //XXX 6.0 hack - if (getModuleName().equals("adminconsole")) { - this.name = null; - } - else { - throw e; - } - } + setObjectName(resolve(mServer, name)); } - public void collect() { - if (this.name == null) { - setAvailability(true); - return; - } - try{ - Object state = - getAttribute(getMBeanServer(), this.name, "state"); - - if ((state == null) || (!(state instanceof Integer))) { - setAvailability(false); - } - else { - setAvailability(((Integer)state).intValue()==1); - } - }catch(PluginException e){ + public void collect(AdminClient mServer) throws PluginException { + Object state = getAttribute(mServer, getObjectName(), "state"); + if ((state == null) || (!(state instanceof Integer))) { setAvailability(false); - setMessage(e.getMessage()); + } else { + setAvailability(((Integer) state).intValue() == 1); } } } Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ConnectionPoolCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ConnectionPoolCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ConnectionPoolCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -35,9 +35,14 @@ import org.hyperic.hq.product.PluginException; import com.ibm.websphere.management.AdminClient; +import java.util.Arrays; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; public class ConnectionPoolCollector extends WebsphereCollector { + private static final Log log = LogFactory.getLog(ConnectionPoolCollector.class.getName()); + private static final String[][] ATTRS = { //basic (default) PMI level { "CreateCount", "numCreates" }, @@ -92,35 +97,25 @@ } protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); + ObjectName name = newObjectNamePattern("type=JDBCProvider," + + "j2eeType=JDBCResource," + + "name=" + getModuleName() + "," + + getProcessAttributes()); + setObjectName(resolve(mServer, name)); + } - this.name = - newObjectNamePattern("type=JDBCProvider," + - "j2eeType=JDBCResource," + - "name=" + getModuleName() + "," + - getProcessAttributes()); + public void collect(AdminClient mServer) throws PluginException { + JDBCStats stats = (JDBCStats) getStats(mServer, getObjectName()); - this.name = resolve(mServer, this.name); - } + if (stats == null) { + throw new PluginException("Stats not found"); + } - public void collect() { - AdminClient mServer = getMBeanServer(); - if (mServer == null) { - return; + Stats[] pools = stats.getConnectionPools(); + if (pools.length != 1) { + throw new PluginException("Pool not found (" + pools.length + ")"); } - try { - JDBCStats stats = (JDBCStats)getStats(mServer, this.name); - if (stats == null) { - return; - } - setAvailability(true); - Stats[] pools = stats.getConnectionPools(); - for (int i=0; i<pools.length; i++) { - collectStatCount(pools[i], ATTRS); - } - } catch (PluginException e) { - setAvailability(false); - setMessage(e.getMessage()); - } + collectStatCount(pools[0], ATTRS); + setAvailability(true); } } Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/EJBCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/EJBCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/EJBCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -29,11 +29,11 @@ import com.ibm.websphere.management.AdminClient; +import javax.management.ObjectName; + public class EJBCollector extends WebsphereCollector { protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); - String module = getModuleName(); int ix = module.indexOf('#'); if (ix == -1) { @@ -42,29 +42,20 @@ String app = module.substring(0, ix); String ejb = module.substring(ix+1); - this.name = - newObjectNamePattern("j2eeType=EJBModule," + - "J2EEApplication=" + app + "," + - "name=" + ejb + "," + - getProcessAttributes()); + ObjectName name = newObjectNamePattern("j2eeType=EJBModule," + + "J2EEApplication=" + app + "," + + "name=" + ejb + "," + + getProcessAttributes()); - this.name = resolve(mServer, this.name); + setObjectName(resolve(mServer, name)); } - public void collect() { - try { - Object ejbs = - getAttribute(getMBeanServer(), this.name, "ejbs"); - - if (ejbs == null) { - setAvailability(false); - } - else { - setAvailability(true); - } - } catch (PluginException e) { + public void collect(AdminClient mServer) throws PluginException { + Object ejbs = getAttribute(mServer, getObjectName(), "ejbs"); + if (ejbs == null) { setAvailability(false); - setMessage(e.getMessage()); + } else { + setAvailability(true); } } } Added: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/StatsDefaultCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/StatsDefaultCollector.java (rev 0) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/StatsDefaultCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -0,0 +1,52 @@ +/* + * NOTE: This copyright does *not* cover user programs that use HQ + * program services by normal system calls through the application + * program interfaces provided as part of the Hyperic Plug-in Development + * Kit or the Hyperic Client Development Kit - this is merely considered + * normal use of the program, and does *not* fall under the heading of + * "derived work". + * + * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. + * This file is part of HQ. + * + * HQ is free software; you can redistribute it and/or modify + * it under the terms version 2 of the GNU General Public License as + * published by the Free Software Foundation. This program is distributed + * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + */ +package org.hyperic.hq.plugin.websphere; + +import javax.management.j2ee.statistics.Stats; + +import org.hyperic.hq.product.PluginException; + +import com.ibm.websphere.management.AdminClient; +import java.util.Arrays; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public abstract class StatsDefaultCollector extends WebsphereCollector { + + private static final Log log = LogFactory.getLog(StatsDefaultCollector.class.getName()); + + protected abstract String[][] getAttributes(); + + public final void collect(AdminClient mServer) throws PluginException { + Stats stats = getStats(mServer, getObjectName()); + assert stats != null : getModuleName(); + if (stats == null) { + throw new PluginException("Stats not found"); + } + log.debug("[collect] '" + getModuleName() + "' stats: " + Arrays.asList(stats.getStatisticNames())); + collectStatCount(stats, getAttributes()); + setAvailability(true); + } +} Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ThreadPoolCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ThreadPoolCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/ThreadPoolCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -22,18 +22,17 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ - package org.hyperic.hq.plugin.websphere; -import javax.management.j2ee.statistics.Stats; +import javax.management.ObjectName; import org.hyperic.hq.product.PluginException; import com.ibm.websphere.management.AdminClient; -public class ThreadPoolCollector extends WebsphereCollector { +public class ThreadPoolCollector extends StatsDefaultCollector { - private static final String[][] ATTRS = { + private static final String[][] ATTRS = { { "PoolSize", "poolSize" }, { "CreateCount", "threadCreates" }, { "DestroyCount", "threadDestroys" }, @@ -41,37 +40,13 @@ }; protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); - - this.name = - newObjectNamePattern("type=ThreadPool," + - "name=" + getModuleName() + "," + - getProcessAttributes()); - - this.name = resolve(mServer, this.name); + ObjectName name = newObjectNamePattern("type=ThreadPool," + + "name=" + getModuleName() + "," + + getProcessAttributes()); + setObjectName(resolve(mServer, name)); } - public void collect() { - AdminClient mServer = getMBeanServer(); - if (mServer == null) { - return; - } - try { - Stats stats = getStats(mServer, this.name); - if (stats == null) { - //XXX certain threadpools have no stats, why? - Object o = getAttribute(mServer, this.name, "name"); - if (o != null) { - setAvailability(true); - } - } - else { - setAvailability(true); - collectStatCount(stats, ATTRS); - } - } catch (PluginException e) { - setAvailability(false); - setMessage(e.getMessage()); - } + protected String[][] getAttributes() { + return ATTRS; } } Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebappCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebappCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebappCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -22,49 +22,38 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ - package org.hyperic.hq.plugin.websphere; import org.hyperic.hq.product.PluginException; import com.ibm.websphere.management.AdminClient; +import javax.management.ObjectName; public class WebappCollector extends WebsphereCollector { protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); - String module = getModuleName(); int ix = module.indexOf('#'); if (ix == -1) { throw new PluginException("Malformed webapp name '" + module + "'"); } String app = module.substring(0, ix); - String war = module.substring(ix+1); + String war = module.substring(ix + 1); - this.name = - newObjectNamePattern("j2eeType=WebModule," + - "J2EEApplication=" + app + "," + - "name=" + war + "," + - getProcessAttributes()); - - this.name = resolve(mServer, this.name); + ObjectName name = newObjectNamePattern("j2eeType=WebModule," + + "J2EEApplication=" + app + "," + + "name=" + war + "," + + getProcessAttributes()); + + setObjectName(resolve(mServer, name)); } - public void collect() { - try{ - Object servlets = - getAttribute(getMBeanServer(), this.name, "servlets"); - - if (servlets == null) { - setAvailability(false); - } - else { - setAvailability(true); - } - } catch (PluginException e) { + public void collect(AdminClient mServer) throws PluginException { + Object servlets = getAttribute(mServer, getObjectName(), "servlets"); + if (servlets == null) { setAvailability(false); - setMessage(e.getMessage()); + } else { + setAvailability(true); } } } Deleted: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminMeasurementPlugin.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminMeasurementPlugin.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminMeasurementPlugin.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -1,9 +0,0 @@ -package org.hyperic.hq.plugin.websphere; - -public class WebsphereAdminMeasurementPlugin - extends WebsphereMeasurementPlugin { - - public boolean useJMX() { - return true; - } -} Deleted: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminServerCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminServerCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereAdminServerCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -1,67 +0,0 @@ -/* - * NOTE: This copyright does *not* cover user programs that use HQ - * program services by normal system calls through the application - * program interfaces provided as part of the Hyperic Plug-in Development - * Kit or the Hyperic Client Development Kit - this is merely considered - * normal use of the program, and does *not* fall under the heading of - * "derived work". - * - * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. - * This file is part of HQ. - * - * HQ is free software; you can redistribute it and/or modify - * it under the terms version 2 of the GNU General Public License as - * published by the Free Software Foundation. This program is distributed - * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - */ - -package org.hyperic.hq.plugin.websphere; - -import org.hyperic.hq.product.PluginException; - -import com.ibm.websphere.management.AdminClient; - -public class WebsphereAdminServerCollector extends WebsphereCollector { - - private double count(AdminClient mServer) throws Exception { - return WebsphereUtil.getMBeanCount(mServer, this.name, null); - } - - protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); - - this.name = - newObjectNamePattern("name=JVM," + - "type=JVM," + - "node=" + getNodeName()); - - try { - count(mServer); - } catch (Exception e) { - throw new PluginException("Invalid configuration: " + - e.getMessage()); - } - } - - public void collect() { - AdminClient mServer = getMBeanServer(); - if (mServer == null) { - return; - } - - setAvailability(true); - try { - setValue("NumJVMs", count(mServer)); - } catch (Exception e) { - //XXX - } - } -} Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -47,20 +47,28 @@ import com.ibm.websphere.management.AdminClient; import com.ibm.websphere.management.exception.ConnectorException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Set; +import javax.management.modelmbean.ModelMBeanAttributeInfo; public abstract class WebsphereCollector extends Collector { private static final Log log = LogFactory.getLog(WebsphereCollector.class.getName()); - protected ObjectName name; + private ObjectName name; private String domain; - protected ObjectName getObjectName() { + protected final ObjectName getObjectName() { return this.name; } - protected ObjectName newObjectNamePattern(String attrs) + protected final void setObjectName(ObjectName name) { + this.name=name; + } + + protected final ObjectName newObjectNamePattern(String attrs) throws PluginException { try { @@ -70,24 +78,25 @@ } } - protected String getServerAttributes() { + protected final String getServerAttributes() { return "J2EEServer=" + getServerName() + "," + "node=" + getNodeName(); } - protected String getProcessAttributes() { + protected final String getProcessAttributes() { return "process=" + getServerName() + "," + "node=" + getNodeName(); } - protected void init() throws PluginException { + protected final void init() throws PluginException { if(log.isDebugEnabled()){ - log.debug("[init] ("+getClass().getName()+") props="+getProperties()); + log.debug("[init] ("+getClass().getSimpleName()+") props="+getProperties()); } AdminClient mServer = getMBeanServer(); + assert mServer!=null; if(mServer==null) return; try { @@ -103,24 +112,21 @@ } } - protected void init(AdminClient mServer) - throws PluginException { + protected abstract void init(AdminClient mServer) throws PluginException; - } - - protected String getNodeName() { + private final String getNodeName() { return getProperties().getProperty(WebsphereProductPlugin.PROP_SERVER_NODE); } - protected String getServerName() { + protected final String getServerName() { return getProperties().getProperty(WebsphereProductPlugin.PROP_SERVER_NAME); } - protected String getModuleName() { + protected final String getModuleName() { return getProperties().getProperty("Module"); } - protected AdminClient getMBeanServer() { + private AdminClient getMBeanServer() { try { return WebsphereUtil.getMBeanServer(getProperties()); } catch (MetricUnreachableException e) { @@ -144,7 +150,7 @@ } } - protected Object getAttribute(AdminClient mServer, + protected final Object getAttribute(AdminClient mServer, ObjectName name, String attr) throws PluginException{ @@ -167,16 +173,16 @@ if (log.isDebugEnabled()) { log.debug("getAttribute(" + name + ", " + attr + "): " + e.getMessage(), e); - } + } throw new PluginException(e.getMessage()); } } - protected Stats getStats(AdminClient mServer, ObjectName name) throws PluginException { + protected final Stats getStats(AdminClient mServer, ObjectName name) throws PluginException { return (Stats)getAttribute(mServer, name, "stats"); } - protected double getStatCount(Statistic stat) { + private double getStatCount(Statistic stat) { if (stat instanceof CountStatistic) { return ((CountStatistic)stat).getCount(); } @@ -202,7 +208,7 @@ } } - protected double getStatCount(Stats stats, String metric) { + protected final double getStatCount(Stats stats, String metric) { Statistic stat = stats.getStatistic(metric); if (stat == null) { return MetricValue.VALUE_NONE; @@ -210,7 +216,7 @@ return getStatCount(stat); } - protected void collectStatCount(Stats stats, String[][] attrs) { + protected final void collectStatCount(Stats stats, String[][] attrs) { for (int i=0; i<attrs.length; i++) { String[] entry = attrs[i]; String statKey = entry[0]; @@ -223,11 +229,11 @@ } } - public MetricValue getValue(Metric metric, CollectorResult result) { + public final MetricValue getValue(Metric metric, CollectorResult result) { return super.getValue(metric, result); } - protected boolean collectStats(ObjectName name) throws PluginException { + protected final boolean collectStats(ObjectName name) throws PluginException { AdminClient mServer = getMBeanServer(); if (mServer == null) { return false; @@ -235,7 +241,7 @@ return collectStats(mServer, name); } - protected boolean collectStats(AdminClient mServer, ObjectName oname) throws PluginException { + private boolean collectStats(AdminClient mServer, ObjectName oname) throws PluginException { Stats stats = getStats(mServer, oname); if (stats == null) { setAvailability(false); @@ -257,4 +263,44 @@ return true; } + + public final void collect() { + String serverName = getProperties().getProperty("server.name"); + String module = getProperties().getProperty("Module"); + + if (log.isDebugEnabled()) { + log.debug("[collect] [" + serverName + "] class=" + this.getClass().getName()); + log.debug("[collect] [" + serverName + "] name=" + getObjectName()); + log.debug("[collect] [" + serverName + "] module=" + module); + log.debug("[collect] [" + serverName + "] getProperties=" + getProperties()); + } + setAvailability(false); + + if (getObjectName() == null) { + try { + init(); + } catch (PluginException ex) { + log.debug("[collect] [" + serverName + "] error!!! " + ex.getMessage()); + return; + } + } + + AdminClient mServer = getMBeanServer(); + if (mServer == null) { + return; + } + + setAvailability(true); + + try{ + collect(mServer); + } catch (PluginException e) { + setAvailability(false); + setMessage(e.getMessage()); + log.debug("[collect] [" + serverName + "] error:"+e.getMessage(),e); + } + log.debug("[collect] [" + serverName + "] end"); + } + + protected abstract void collect(AdminClient mServer) throws PluginException; } Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereProductPlugin.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereProductPlugin.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereProductPlugin.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -444,7 +444,7 @@ if (testIBMJDK) { VALID_JVM = System.getProperty("java.vm.vendor").toUpperCase().indexOf("IBM") != -1; if (!VALID_JVM) { - log.error("The WebSphere plugin needs a IBM JVM !!! " + log.debug("The WebSphere plugin needs a IBM JVM !!! " + "(agent jvm=" + System.getProperty("java.vm.vendor") + ")"); } } Modified: trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereServerCollector.java =================================================================== --- trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereServerCollector.java 2010-05-10 07:55:57 UTC (rev 14582) +++ trunk/plugins/websphere/src/org/hyperic/hq/plugin/websphere/WebsphereServerCollector.java 2010-05-10 21:55:32 UTC (rev 14583) @@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.management.ObjectName; import org.hyperic.hq.product.PluginException; import com.ibm.websphere.management.AdminClient; @@ -38,7 +39,6 @@ private static final Log log = LogFactory.getLog(WebsphereServerCollector.class.getName()); private boolean isJVM; - private String[][] attrs; //MBean Attribute -> legacy pmi name private static final String[][] TX_ATTRS = { @@ -57,76 +57,58 @@ }; protected void init(AdminClient mServer) throws PluginException { - super.init(mServer); - + String serverName = getProperties().getProperty("server.name"); String module = getProperties().getProperty("Module"); + log.debug("[init] [" + serverName + "] module=" + module); + String name; if (module.equals("jvmRuntimeModule")) { isJVM = true; - this.name = - newObjectNamePattern("name=JVM," + - "type=JVM," + - "j2eeType=JVM," + - getServerAttributes()); - - this.name = resolve(mServer, this.name); + name = "name=JVM,type=JVM,j2eeType=JVM"; + } else if (module.equals("transactionModule")) { + name = "type=TransactionService,j2eeType=JTAResource"; + } else if (module.equals("adminModule")) { + name = "name=JVM,type=JVM"; + } else { + throw new PluginException("Unexpected module '" + module + "'"); } - else if (module.equals("transactionModule")) { - this.name = - newObjectNamePattern("type=TransactionService," + - "j2eeType=JTAResource," + - getServerAttributes()); - try { - this.name = resolve(mServer, this.name); - this.attrs = TX_ATTRS; - } catch (PluginException e) { - //ok in the case of networkdeployer/nodeagent; - //where there is no TransactionService - log.debug(this.name + ": " + e.getMessage()); - this.name = null; - } - } + ObjectName on=newObjectNamePattern(name+","+getServerAttributes()); + on=resolve(mServer, on); + log.debug("[init] [" + serverName + "] name=" + on); + setObjectName(on); // check server properties. - Stats stats =(Stats) getStats(mServer, this.name); - + getStats(mServer, getObjectName()); } - public void collect() { - log.debug("[collect] name="+name); + public void collect(AdminClient mServer) throws PluginException { + if (getModuleName().equalsIgnoreCase("adminModule")) { + setValue("NumJVMs", count(mServer)); + } else { + Stats stats = (Stats) getStats(mServer, getObjectName()); - setAvailability(false); - - AdminClient mServer = getMBeanServer(); - if (mServer == null) { - return; + if (stats != null) { + if (isJVM) { + double total = getStatCount(stats, "HeapSize"); + double used = getStatCount(stats, "UsedMemory"); + setValue("totalMemory", total); + setValue("usedMemory", used); + setValue("freeMemory", total - used); + } else { + collectStatCount(stats, TX_ATTRS); + } + } else { + log.debug("no Stats"); + } } + } - setAvailability(true); - + private double count(AdminClient mServer) throws PluginException{ try { - if (this.name != null) { - Stats stats =(Stats) getStats(mServer, this.name); - - if (stats != null) { - if (isJVM) { - double total = getStatCount(stats, "HeapSize"); - double used = getStatCount(stats, "UsedMemory"); - setValue("totalMemory", total); - setValue("usedMemory", used); - setValue("freeMemory", total-used); - } - else { - collectStatCount(stats, this.attrs); - } - }else{ - log.debug("no Stats"); - } - } - } catch (PluginException e) { - setAvailability(false); - setMessage(e.getMessage()); + return WebsphereUtil.getMBeanCount(mServer, getObjectName(), null); + } catch (Exception ex) { + throw new PluginException(ex.getMessage(),ex); } } } |
From: <bo...@hy...> - 2010-05-10 07:56:11
|
Author: bob Date: 2010-05-10 00:55:57 -0700 (Mon, 10 May 2010) New Revision: 14582 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14582 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1436 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-09 07:56:47 UTC (rev 14581) +++ trunk/etc/version.properties 2010-05-10 07:55:57 UTC (rev 14582) @@ -1,3 +1,3 @@ -#Sun May 09 00:17:56 PDT 2010 +#Mon May 10 00:18:31 PDT 2010 version=4.3.0 -build=1435 +build=1436 |
From: <bo...@hy...> - 2010-05-09 07:56:55
|
Author: bob Date: 2010-05-09 00:56:47 -0700 (Sun, 09 May 2010) New Revision: 14581 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14581 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1435 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-08 07:51:15 UTC (rev 14580) +++ trunk/etc/version.properties 2010-05-09 07:56:47 UTC (rev 14581) @@ -1,3 +1,3 @@ -#Sat May 08 00:17:46 PDT 2010 +#Sun May 09 00:17:56 PDT 2010 version=4.3.0 -build=1434 +build=1435 |
From: <bo...@hy...> - 2010-05-08 07:51:23
|
Author: bob Date: 2010-05-08 00:51:15 -0700 (Sat, 08 May 2010) New Revision: 14580 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14580 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1434 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-07 21:14:01 UTC (rev 14579) +++ trunk/etc/version.properties 2010-05-08 07:51:15 UTC (rev 14580) @@ -1,3 +1,3 @@ -#Fri May 07 13:05:20 PDT 2010 +#Sat May 08 00:17:46 PDT 2010 version=4.3.0 -build=1433 +build=1434 |
From: <bo...@hy...> - 2010-05-07 21:14:10
|
Author: bob Date: 2010-05-07 14:14:01 -0700 (Fri, 07 May 2010) New Revision: 14579 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14579 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1433 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-07 20:04:34 UTC (rev 14578) +++ trunk/etc/version.properties 2010-05-07 21:14:01 UTC (rev 14579) @@ -1,3 +1,3 @@ -#Fri May 07 00:16:33 PDT 2010 +#Fri May 07 13:05:20 PDT 2010 version=4.3.0 -build=1432 +build=1433 |
From: <gla...@hy...> - 2010-05-07 20:04:42
|
Author: glaullon Date: 2010-05-07 13:04:34 -0700 (Fri, 07 May 2010) New Revision: 14578 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14578 Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml Log: [HHQ-3972] DB2 DM db2.jdbc.database setting for configuration properties not marked as required but actually needed Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml =================================================================== --- trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 20:00:24 UTC (rev 14577) +++ trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 20:04:34 UTC (rev 14578) @@ -201,7 +201,7 @@ <plugin type="autoinventory" class="org.hyperic.hq.plugin.db2jdbc.DataBaseServerDetector"/> <plugin type="measurement" class="org.hyperic.hq.plugin.db2jdbc.DataBaseMeasurement"/> <config> - <option name="db2.jdbc.database" description="Database being used to get DB2BM metrics"/> + <option name="db2.jdbc.database" description="Database being monitored"/> <option name="db2.jdbc.port" description="DB2 TCP/IP Port number (SVCENAME)" default="50000"/> <option name="db2.jdbc.hostname" description="DB2 TCP/IP Hostname" default="localhost" /> </config> |
From: <gla...@hy...> - 2010-05-07 20:00:32
|
Author: glaullon Date: 2010-05-07 13:00:24 -0700 (Fri, 07 May 2010) New Revision: 14577 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14577 Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml Log: [HHQ-3972] DB2 DM db2.jdbc.database setting for configuration properties not marked as required but actually needed Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml =================================================================== --- trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 19:58:33 UTC (rev 14576) +++ trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 20:00:24 UTC (rev 14577) @@ -203,7 +203,7 @@ <config> <option name="db2.jdbc.database" description="Database being used to get DB2BM metrics"/> <option name="db2.jdbc.port" description="DB2 TCP/IP Port number (SVCENAME)" default="50000"/> - <option name="db2.jdbc.hostname" description="DB2 TCP/IP" default="localhost" /> + <option name="db2.jdbc.hostname" description="DB2 TCP/IP Hostname" default="localhost" /> </config> <config type="measurement"> <option name="db2.jdbc.user" description="JDBC User"/> @@ -282,7 +282,7 @@ <config> <option name="db2.jdbc.database" description="Database being used to get DB2BM metrics"/> <option name="db2.jdbc.port" description="DB2 TCP/IP Port number (SVCENAME)" default="50000"/> - <option name="db2.jdbc.hostname" description="DB2 TCP/IP" default="localhost" /> + <option name="db2.jdbc.hostname" description="DB2 TCP/IP Hostname" default="localhost" /> </config> <config type="measurement"> <option name="db2.jdbc.user" description="JDBC User"/> |
From: <gla...@hy...> - 2010-05-07 19:58:41
|
Author: glaullon Date: 2010-05-07 12:58:33 -0700 (Fri, 07 May 2010) New Revision: 14576 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14576 Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml Log: [HHQ-3972] DB2 DM db2.jdbc.database setting for configuration properties not marked as required but actually needed Modified: trunk/plugins/db2jdbc/etc/hq-plugin.xml =================================================================== --- trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 19:39:14 UTC (rev 14575) +++ trunk/plugins/db2jdbc/etc/hq-plugin.xml 2010-05-07 19:58:33 UTC (rev 14576) @@ -201,9 +201,9 @@ <plugin type="autoinventory" class="org.hyperic.hq.plugin.db2jdbc.DataBaseServerDetector"/> <plugin type="measurement" class="org.hyperic.hq.plugin.db2jdbc.DataBaseMeasurement"/> <config> - <option name="db2.jdbc.database" description="Database being monitored" /> - <option name="db2.jdbc.port" description="Port number of instance being monitored" default="50000"/> - <option name="db2.jdbc.hostname" description="Hostname of instance being monitored" default="localhost" /> + <option name="db2.jdbc.database" description="Database being used to get DB2BM metrics"/> + <option name="db2.jdbc.port" description="DB2 TCP/IP Port number (SVCENAME)" default="50000"/> + <option name="db2.jdbc.hostname" description="DB2 TCP/IP" default="localhost" /> </config> <config type="measurement"> <option name="db2.jdbc.user" description="JDBC User"/> @@ -280,9 +280,9 @@ <plugin type="autoinventory" class="org.hyperic.hq.plugin.db2jdbc.DBManagerServerDetector"/> <plugin type="measurement" class="org.hyperic.hq.plugin.db2jdbc.DBManagerMeasurement"/> <config> - <option name="db2.jdbc.database" description="Database being monitored" optional="true"/> - <option name="db2.jdbc.port" description="Port number of instance being monitored" default="50000"/> - <option name="db2.jdbc.hostname" description="Hostname of instance being monitored" default="localhost" /> + <option name="db2.jdbc.database" description="Database being used to get DB2BM metrics"/> + <option name="db2.jdbc.port" description="DB2 TCP/IP Port number (SVCENAME)" default="50000"/> + <option name="db2.jdbc.hostname" description="DB2 TCP/IP" default="localhost" /> </config> <config type="measurement"> <option name="db2.jdbc.user" description="JDBC User"/> |
From: <bo...@hy...> - 2010-05-07 07:53:50
|
Author: bob Date: 2010-05-07 00:53:41 -0700 (Fri, 07 May 2010) New Revision: 14574 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14574 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1432 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-06 07:55:25 UTC (rev 14573) +++ trunk/etc/version.properties 2010-05-07 07:53:41 UTC (rev 14574) @@ -1,3 +1,3 @@ -#Thu May 06 00:19:11 PDT 2010 +#Fri May 07 00:16:33 PDT 2010 version=4.3.0 -build=1431 +build=1432 |
From: <bo...@hy...> - 2010-05-05 07:55:16
|
Author: bob Date: 2010-05-05 00:55:06 -0700 (Wed, 05 May 2010) New Revision: 14571 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14571 Modified: trunk/etc/version.properties Log: Release 4.3.0 build #1429 Modified: trunk/etc/version.properties =================================================================== --- trunk/etc/version.properties 2010-05-04 21:56:35 UTC (rev 14570) +++ trunk/etc/version.properties 2010-05-05 07:55:06 UTC (rev 14571) @@ -1,3 +1,3 @@ -#Tue May 04 12:19:21 PDT 2010 +#Wed May 05 00:19:00 PDT 2010 version=4.3.0 -build=1428 +build=1429 |
From: <sc...@hy...> - 2010-05-04 21:56:42
|
Author: scottmf Date: 2010-05-04 14:56:35 -0700 (Tue, 04 May 2010) New Revision: 14570 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14570 Modified: trunk/src/org/hyperic/hq/product/server/mbean/ProductPluginDeployer.java Log: add diagnostic in startup sequence Modified: trunk/src/org/hyperic/hq/product/server/mbean/ProductPluginDeployer.java =================================================================== --- trunk/src/org/hyperic/hq/product/server/mbean/ProductPluginDeployer.java 2010-05-04 21:55:43 UTC (rev 14569) +++ trunk/src/org/hyperic/hq/product/server/mbean/ProductPluginDeployer.java 2010-05-04 21:56:35 UTC (rev 14570) @@ -61,9 +61,11 @@ import org.apache.commons.logging.LogFactory; import org.hyperic.hq.application.HQApp; import org.hyperic.hq.bizapp.server.session.SystemAudit; +import org.hyperic.hq.common.DiagnosticThread; import org.hyperic.hq.common.SystemException; import org.hyperic.hq.events.server.session.RegisteredTriggerStartupListener; import org.hyperic.hq.hqu.rendit.RenditServer; +import org.hyperic.hq.measurement.MetricsNotComingInDiagnostic; import org.hyperic.hq.product.PluginException; import org.hyperic.hq.product.PluginInfo; import org.hyperic.hq.product.ProductPlugin; @@ -229,7 +231,9 @@ _plugins.clear(); waitForTriggerInit(); startConcurrentStatsCollector(); + DiagnosticThread.addDiagnosticObject(MetricsNotComingInDiagnostic.getInstance()); + //generally means we are done deploying plugins at startup. //but we are not "done" since a plugin can be dropped into //hq-plugins at anytime. |
From: <sc...@hy...> - 2010-05-04 21:55:51
|
Author: scottmf Date: 2010-05-04 14:55:43 -0700 (Tue, 04 May 2010) New Revision: 14569 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14569 Modified: trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSynchronizer.java Log: changed log messages to debug from info. took away ping from the scheduling process, it is not needed and adds extra logging as well Modified: trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSynchronizer.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSynchronizer.java 2010-05-04 20:51:16 UTC (rev 14568) +++ trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSynchronizer.java 2010-05-04 21:55:43 UTC (rev 14569) @@ -172,20 +172,17 @@ final MeasurementProcessorLocal mProc = MeasurementProcessorEJBImpl.getOne(); final AgentManagerLocal aMan = AgentManagerEJBImpl.getOne(); final Agent agent = aMan.findAgent(agentId); - final AuthzSubject subj = AuthzSubjectManagerEJBImpl.getOne().getOverlordPojo(); - try { - aMan.pingAgent(subj, agent); - } catch (AgentConnectionException e) { - // this only occurs when ping failed (why isn't there a better exception??) - _log.debug(e,e); - } if (schedule) { - _log.info("scheduling " + aeids.size() + - " resources to agentid=" + agent.getId()); + if (_log.isDebugEnabled()) { + _log.debug("scheduling " + aeids.size() + + " resources to agentid=" + agent.getId()); + } mProc.scheduleEnabled(agent, aeids); } else { - _log.info("unscheduling " + aeids.size() + - " resources to agentid=" + agent.getId()); + if (_log.isDebugEnabled()) { + _log.debug("unscheduling " + aeids.size() + + " resources to agentid=" + agent.getId()); + } mProc.unschedule(agent.getAgentToken(), aeids); } } |
From: <no...@gi...> - 2010-05-04 21:54:01
|
Branch: refs/heads/master Home: http://github.com/hyperic/hqapi Commit: 6cb3f3079909537c58b696b1f0d33767ebdf450d http://github.com/hyperic/hqapi/commit/6cb3f3079909537c58b696b1f0d33767ebdf450d Author: Ryan Morgan <rm...@hy...> Date: 2010-05-04 (Tue, 04 May 2010) Changed paths: M ChangeLog M src/org/hyperic/hq/hqapi1/tools/AlertCommand.java Log Message: ----------- [HHQ-3962] Allow deletion of alerts in bulk via stdin. |
From: <tr...@hy...> - 2010-05-04 20:51:24
|
Author: trader Date: 2010-05-04 13:51:16 -0700 (Tue, 04 May 2010) New Revision: 14568 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14568 Modified: trunk/plugins/mysql/etc/hq-plugin.xml trunk/plugins/mysql_stats/etc/hq-plugin.xml Log: HQ-2121: mysql_stats plugin fails on EE with commercial driver: the plugin XML used the exact filename in the classpath, the fix was to use a wildcard instead. Modified: trunk/plugins/mysql/etc/hq-plugin.xml =================================================================== --- trunk/plugins/mysql/etc/hq-plugin.xml 2010-05-04 20:31:30 UTC (rev 14567) +++ trunk/plugins/mysql/etc/hq-plugin.xml 2010-05-04 20:51:16 UTC (rev 14568) @@ -27,7 +27,7 @@ <plugin package="org.hyperic.hq.plugin.mysql"> <classpath> - <include name="pdk/lib/jdbc/mysql-connector-java-5.1.10-bin.jar"/> + <include name="pdk/lib/jdbc/mysql-connector-java*5.1.10-bin.jar"/> </classpath> <!-- we use a dummy jmx object name --> Modified: trunk/plugins/mysql_stats/etc/hq-plugin.xml =================================================================== --- trunk/plugins/mysql_stats/etc/hq-plugin.xml 2010-05-04 20:31:30 UTC (rev 14567) +++ trunk/plugins/mysql_stats/etc/hq-plugin.xml 2010-05-04 20:51:16 UTC (rev 14568) @@ -31,7 +31,7 @@ <plugin package="org.hyperic.hq.plugin.mysql_stats"> <classpath> - <include name="pdk/lib/jdbc/mysql-connector-java-5.1.10-bin.jar"/> + <include name="pdk/lib/jdbc/mysql-connector-java*5.1.10-bin.jar"/> </classpath> <property name="template-config" value="jdbcUrl=%jdbcUrl%,jdbcUser=%jdbcUser%,jdbcPassword=%jdbcPassword%"/> |