[esb-java-dev] svn commit r794 - in
trunk/esb/java/modules/core/src/main/java/org/wso2/esb: .
services statistics statistics/persistence
svn at wso2.org
svn at wso2.org
Wed Feb 7 04:22:45 PST 2007
Author: indika
Date: Wed Feb 7 04:15:58 2007
New Revision: 794
Modified:
trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBus.java
trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusConfiguration.java
trunk/esb/java/modules/core/src/main/java/org/wso2/esb/services/ServiceAdmin.java
trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/StatisticsReporterThread.java
trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/persistence/StatisticsDBUtils.java
Log:
Modified: trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBus.java
==============================================================================
--- trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBus.java (original)
+++ trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBus.java Wed Feb 7 04:15:58 2007
@@ -96,8 +96,10 @@
Parameter synapseEnvParameter = serviceBusManager.configurationContext.getAxisConfiguration().getParameter(org.apache.synapse.Constants.SYNAPSE_ENV);
if (synapseEnvParameter != null) {
try {
+ String statisticsPersistenceInterval = esbConfiguration.getFirstProperty("StatisticsPersistenceInterval");
SynapseEnvironment synEnv = (SynapseEnvironment) synapseEnvParameter.getValue();
statisticsReporterThread = new StatisticsReporterThread(synEnv);
+ statisticsReporterThread.setDelay(Long.parseLong(statisticsPersistenceInterval));
statisticsReporterThread.start();
} catch (Exception e) {
throw new ServiceBusException(e);
Modified: trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusConfiguration.java
==============================================================================
--- trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusConfiguration.java (original)
+++ trunk/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusConfiguration.java Wed Feb 7 04:15:58 2007
@@ -37,7 +37,7 @@
if (configuration == null) {
// intializing the configurationXMLLocation
configurationXMLLocation = "conf/server.xml";
- configuration = new ServiceBusConfiguration();
+ configuration = new ServiceBusConfiguration();
log.info("Service Bus Configuration loaded from : " + configurationXMLLocation);
}
return configuration;
Modified: trunk/esb/java/modules/core/src/main/java/org/wso2/esb/services/ServiceAdmin.java
==============================================================================
--- trunk/esb/java/modules/core/src/main/java/org/wso2/esb/services/ServiceAdmin.java (original)
+++ trunk/esb/java/modules/core/src/main/java/org/wso2/esb/services/ServiceAdmin.java Wed Feb 7 04:15:58 2007
@@ -167,25 +167,31 @@
}
public String[] listServers() throws ServiceBusException {
- Object ids = StatisticsDBUtils.getServersIds(pm);
+ Object namesObject = StatisticsDBUtils.getServersIds(pm);
String[] names = new String[0];
- if (ids instanceof Object[]) {
- Object [] idObjects = (Object[]) ids;
- names = new String[idObjects.length];
- for (int i = 0; i < idObjects.length; i++) {
- names[i] = (String) idObjects[i];
+ if (namesObject instanceof List) {
+ List idObjects = (List) namesObject;
+ names = new String[idObjects.size()];
+ for (int i = 0; i < idObjects.size(); i++) {
+ names[i] = (String) idObjects.get(i);
}
- } else if (ids != null) {
- names = new String[]{(String) ids};
+ } else if (namesObject != null && namesObject instanceof String) {
+ names = new String[]{(String) namesObject};
}
return names;
}
public String[] listSequence() throws ServiceBusException {
- StatisticsDO[] statisticsRecords = StatisticsDBUtils.getStatistics(pm, Constants.SEQUENCE_STATISTICS);
- String[] names = new String[statisticsRecords.length];
- for (int i = 0; i < names.length; i++) {
- names[i] = statisticsRecords[i].getName();
+ Object namesObject = StatisticsDBUtils.getUniqueNames(pm, Constants.SEQUENCE_STATISTICS);
+ String[] names = new String[0];
+ if (namesObject instanceof List) {
+ List idObjects = (List) namesObject;
+ names = new String[idObjects.size()];
+ for (int i = 0; i < idObjects.size(); i++) {
+ names[i] = (String) idObjects.get(i);
+ }
+ } else if (namesObject != null && namesObject instanceof String) {
+ names = new String[]{(String) namesObject};
}
return names;
}
@@ -250,10 +256,16 @@
}
public String[] listEndPoint() throws ServiceBusException {
- StatisticsDO[] statisticsRecords = StatisticsDBUtils.getStatistics(pm, Constants.ENDPOINT_STATISTICS, 0);
- String[] names = new String[statisticsRecords.length];
- for (int i = 0; i < names.length; i++) {
- names[i] = statisticsRecords[i].getName();
+ Object namesObject = StatisticsDBUtils.getUniqueNames(pm, Constants.ENDPOINT_STATISTICS);
+ String[] names = new String[0];
+ if (namesObject instanceof List) {
+ List idObjects = (List) namesObject;
+ names = new String[idObjects.size()];
+ for (int i = 0; i < idObjects.size(); i++) {
+ names[i] = (String) idObjects.get(i);
+ }
+ } else if (namesObject != null && namesObject instanceof String) {
+ names = new String[]{(String) namesObject};
}
return names;
}
Modified: trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/StatisticsReporterThread.java
==============================================================================
--- trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/StatisticsReporterThread.java (original)
+++ trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/StatisticsReporterThread.java Wed Feb 7 04:15:58 2007
@@ -24,6 +24,8 @@
import org.wso2.esb.util.HibernateConfigFactory;
import java.util.Iterator;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
/**
*
@@ -40,6 +42,11 @@
/** The reference to the synapse environment */
private SynapseEnvironment synapseEnvironment;
+ /** IP Address of Server */
+ private String ipAddr;
+
+ private long delay = 60*1000;
+
/**
* To construct it is need synapse Env. and PersistenceManager
*
@@ -49,6 +56,14 @@
this.synapseEnvironment = synapseEnvironment;
}
+ public long getDelay() {
+ return delay;
+ }
+
+ public void setDelay(long delay) {
+ this.delay = delay;
+ }
+
/**
*
*/
@@ -56,11 +71,24 @@
while (!shutdownRequested) {
- StatisticsCollector statisticsCollector = synapseEnvironment.getStatisticsCollector();
+ StatisticsCollector statisticsCollector = synapseEnvironment.getStatisticsCollector();
// log.info("Statistics Reporter is running");
if (statisticsCollector != null) {
+ try {
+ if (ipAddr == null) {
+ InetAddress addr = InetAddress.getLocalHost();
+ if (addr != null) {
+ // Get IP Address
+ ipAddr = addr.getHostAddress();
+
+ }
+
+ }
+ } catch (UnknownHostException e) {
+ log.warn("Unable to report hostname or IP address for tracing", e);
+ }
// report sequence statistics to database
for (Iterator sequenceStatistics = statisticsCollector.getSequenceStatistics();
sequenceStatistics.hasNext();) {
@@ -69,7 +97,7 @@
if (statisticsHolderObject instanceof StatisticsHolder) {
StatisticsHolder statisticsHolder =
(StatisticsHolder) statisticsHolderObject;
- StatisticsDBUtils.updateRecord(pm, "1", statisticsHolder);
+ StatisticsDBUtils.updateRecord(pm, ipAddr, statisticsHolder);
statisticsHolder.clearStatistics();
}
}
@@ -81,7 +109,7 @@
if (statisticsHolderObject instanceof StatisticsHolder) {
StatisticsHolder statisticsHolder =
(StatisticsHolder) statisticsHolderObject;
- StatisticsDBUtils.updateRecord(pm, "1", statisticsHolder);
+ StatisticsDBUtils.updateRecord(pm, ipAddr, statisticsHolder);
statisticsHolder.clearStatistics();
}
}
@@ -93,7 +121,7 @@
if (statisticsHolderObject instanceof StatisticsHolder) {
StatisticsHolder statisticsHolder =
(StatisticsHolder) statisticsHolderObject;
- StatisticsDBUtils.updateRecord(pm, "1", statisticsHolder);
+ StatisticsDBUtils.updateRecord(pm, ipAddr, statisticsHolder);
statisticsHolder.clearStatistics();
}
}
@@ -101,7 +129,7 @@
try {
// sleep for one minute
- Thread.sleep(1000 * 60); // TODO FIXME to be configurable
+ Thread.sleep(delay);
} catch (InterruptedException ignore) {}
}
}
Modified: trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/persistence/StatisticsDBUtils.java
==============================================================================
--- trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/persistence/StatisticsDBUtils.java (original)
+++ trunk/esb/java/modules/core/src/main/java/org/wso2/esb/statistics/persistence/StatisticsDBUtils.java Wed Feb 7 04:15:58 2007
@@ -31,12 +31,12 @@
public class StatisticsDBUtils {
private static final String SERVER_ID_ = "serverId";
- private static final String CATEGORY_ = "category";
- private static final String NAME_ = "name";
+ private static final String CATEGORY_ = "category";
+ private static final String NAME_ = "name";
private static final String DIRECTION_ = "direction";
private static StatisticsDO createStatisticsRecord(String serverId, int statisticsCategory,
- String key, int direction, Statistics statistics) {
+ String key, int direction, Statistics statistics) {
StatisticsDO statisticsDO = new StatisticsDO();
statisticsDO.setName(key);
@@ -60,17 +60,17 @@
* @
*/
public static void insertRecord(PersistenceManager pm, String serverId,
- StatisticsHolder statisticsHolder) {
+ StatisticsHolder statisticsHolder) {
String key = statisticsHolder.getKey();
int statisticsCategory = statisticsHolder.getStatisticsCategory();
if (statisticsHolder.getInFlowStatistics() != null) {
pm.addStatisticsRecord(createStatisticsRecord(
- serverId, statisticsCategory, key, 0, statisticsHolder.getInFlowStatistics()));
+ serverId, statisticsCategory, key, 0, statisticsHolder.getInFlowStatistics()));
}
if (statisticsHolder.getOutFlowStatistics() != null) {
pm.addStatisticsRecord(createStatisticsRecord(
- serverId, statisticsCategory, key, 1, statisticsHolder.getOutFlowStatistics()));
+ serverId, statisticsCategory, key, 1, statisticsHolder.getOutFlowStatistics()));
}
}
@@ -83,17 +83,17 @@
* @
*/
public static void updateRecord(PersistenceManager pm, String serverId,
- StatisticsHolder statisticsHolder) {
+ StatisticsHolder statisticsHolder) {
String key = statisticsHolder.getKey();
int statisticsCategory = statisticsHolder.getStatisticsCategory();
if (statisticsHolder.getInFlowStatistics() != null) {
updateRecord(pm, serverId, statisticsCategory,
- key, 0, statisticsHolder.getInFlowStatistics());
+ key, 0, statisticsHolder.getInFlowStatistics());
}
if (statisticsHolder.getOutFlowStatistics() != null) {
updateRecord(pm, serverId, statisticsCategory,
- key, 1, statisticsHolder.getOutFlowStatistics());
+ key, 1, statisticsHolder.getOutFlowStatistics());
}
}
@@ -109,12 +109,12 @@
* @
*/
private static void updateRecord(PersistenceManager pm, String serverId,
- int statisticsCategory, String key, int direction, Statistics statistics) {
+ int statisticsCategory, String key, int direction, Statistics statistics) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
- " where " + SERVER_ID_ + "= '" + serverId + "' and " +
- CATEGORY_ + "=" + statisticsCategory + " and " + NAME_ + "= '" + key +
- "' and " + DIRECTION_ + " = " + direction + "";
+ " where " + SERVER_ID_ + "= '" + serverId + "' and " +
+ CATEGORY_ + "=" + statisticsCategory + " and " + NAME_ + "= '" + key +
+ "' and " + DIRECTION_ + " = " + direction + "";
int currentTotalCount = statistics.getCount();
int currentFaultCount = statistics.getFaultCount();
@@ -144,11 +144,11 @@
if (updatedTotalCount != 0) {
updatedFaultCount = currentFaultCount + previousFaultCount;
updatedAvgTime = (currentAvgTime * currentTotalCount +
- previousAvgTime * previousTotalCount) / updatedTotalCount;
+ previousAvgTime * previousTotalCount) / updatedTotalCount;
updatedMaxTime = (currentMaxTime * currentTotalCount +
- previousMaxTime * previousTotalCount) / updatedTotalCount;
+ previousMaxTime * previousTotalCount) / updatedTotalCount;
updatedMinTime = (currentMinTime * currentTotalCount +
- previousMinTime * previousTotalCount) / updatedTotalCount;
+ previousMinTime * previousTotalCount) / updatedTotalCount;
previousDO.setFaultCount(updatedFaultCount);
previousDO.setTotalCount(updatedTotalCount);
previousDO.setMaxTime(updatedMaxTime);
@@ -159,7 +159,7 @@
} else if (resultSet == null || resultSet.length == 0) {
previousDO = createStatisticsRecord(
- serverId, statisticsCategory, key, direction, statistics);
+ serverId, statisticsCategory, key, direction, statistics);
pm.addStatisticsRecord(previousDO);
}
}
@@ -181,7 +181,7 @@
}
public static StatisticsDO[] getStatistics(PersistenceManager pm, String serverid,
- int direction, int category) {
+ int direction, int category) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
" where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
@@ -198,7 +198,7 @@
public static StatisticsDO[] getStatistics(PersistenceManager pm, String serverid,
- int category, String name) {
+ int category, String name) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
" where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
@@ -207,7 +207,7 @@
}
public static StatisticsDO getStatistics(PersistenceManager pm, String serverid, int category,
- int direction, String name) {
+ int direction, String name) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
" where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
@@ -237,7 +237,7 @@
}
public static StatisticsDO[] getStatisticsForServer(PersistenceManager pm, String serverid,
- int category) {
+ int category) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
" where " + SERVER_ID_ + " = '" + serverid +
@@ -246,7 +246,7 @@
}
public static StatisticsDO[] getStatisticsForServer(PersistenceManager pm, String serverid,
- int direction, int category) {
+ int direction, int category) {
String queryString = "from " + Constants.DBAccess.STATISTICS_DO + " " +
" where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
@@ -255,31 +255,39 @@
}
public static Object getSummaryStatisticsForServer(PersistenceManager pm, String serverid,
- int direction, int category) {
+ int direction, int category) {
String queryString = "select sum(totalCount), sum(faultCount), avg(maxTime), " +
- "avg(minTime), avg(avgTime) from " + Constants.DBAccess.STATISTICS_DO + " " +
- " where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
- " and " + DIRECTION_ + " = " + direction + "";
+ "avg(minTime), avg(avgTime) from " + Constants.DBAccess.STATISTICS_DO + " " +
+ " where " + SERVER_ID_ + " = '" + serverid + "' and " + CATEGORY_ + "= " + category +
+ " and " + DIRECTION_ + " = " + direction + "";
return pm.createAnewObjectFromStatistics(queryString);
}
- public static List getTotalCountForServerS(PersistenceManager pm,int category) {
+
+ public static List getTotalCountForServerS(PersistenceManager pm, int category) {
String queryString = "select " + SERVER_ID_ + " ,sum(totalCount) from " +
- Constants.DBAccess.STATISTICS_DO + " "+
- " where " + CATEGORY_ + "= " + category +" group by "+SERVER_ID_+" ";
+ Constants.DBAccess.STATISTICS_DO + " " +
+ " where " + CATEGORY_ + "= " + category + " group by " + SERVER_ID_ + " ";
return pm.selectCustomObjectList(queryString);
}
+
public static Object getServersIds(PersistenceManager pm) {
String queryString = "select distinct " + SERVER_ID_ + " from " +
- Constants.DBAccess.STATISTICS_DO + " ";
- return pm.createAnewObjectFromStatistics(queryString);
+ Constants.DBAccess.STATISTICS_DO + " ";
+ return pm.selectCustomObjectList(queryString);
+ }
+
+ public static Object getUniqueNames(PersistenceManager pm, int category) {
+ String queryString = "select distinct " + NAME_ + " from " +
+ Constants.DBAccess.STATISTICS_DO + " where " + CATEGORY_ + "= " + category + " ";
+ return pm.selectCustomObjectList(queryString);
}
- public static List getTotalCountForCategory(PersistenceManager pm,int category) {
+ public static List getTotalCountForCategory(PersistenceManager pm, int category) {
String queryString = "select " + NAME_ + ",sum(totalCount) from " +
- Constants.DBAccess.STATISTICS_DO + " " +
- " where " + CATEGORY_ + "= " + category + " group by "+NAME_+" ";
+ Constants.DBAccess.STATISTICS_DO + " " +
+ " where " + CATEGORY_ + "= " + category + " group by " + NAME_ + " ";
return pm.selectCustomObjectList(queryString);
}
}
More information about the Esb-java-dev
mailing list