Author: tejones
Date: 2010-05-28 16:54:29 -0400 (Fri, 28 May 2010)
New Revision: 2171
Modified:
trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java
trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
Log:
TEIID-1099: Changed Long Running Query Limit to use Engine property and change operation
calls to use new Engine operation to return all long running query requests.
Modified: trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-05-28
18:35:50 UTC (rev 2170)
+++ trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-05-28
20:54:29 UTC (rev 2171)
@@ -2,7 +2,6 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -74,9 +73,8 @@
} else {
if (metric
.equals(PluginConstants.ComponentType.Platform.Metrics.LONG_RUNNING_QUERIES)) {
- Integer longRunningQueryLimit = (Integer) valueMap
- .get(PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT);
- Collection<Request> longRunningQueries =
getLongRunningQueries(longRunningQueryLimit);
+ Collection<Request> longRunningQueries = new ArrayList<Request>();
+ getRequestCollectionValue(getLongRunningQueries(), longRunningQueries);
resultObject = new Double(longRunningQueries.size());
}
}
@@ -104,9 +102,8 @@
resultObject = new Double(getSessionCount().doubleValue());
} else if (metric
.equals(PluginConstants.ComponentType.VDB.Metrics.LONG_RUNNING_QUERIES)) {
- Integer longRunningQueryLimit = (Integer) valueMap
- .get(PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT);
- Collection<Request> longRunningQueries =
getLongRunningQueries(longRunningQueryLimit);
+ Collection<Request> longRunningQueries = new ArrayList<Request>();
+ getRequestCollectionValue(getLongRunningQueries(), longRunningQueries);
resultObject = new Double(longRunningQueries.size());
}
@@ -141,10 +138,8 @@
if (operationName.equals(Platform.Operations.GET_LONGRUNNINGQUERIES)) {
- Integer longRunningValue = (Integer) valueMap
- .get(Operation.Value.LONG_RUNNING_QUERY_LIMIT);
List<String> fieldNameList = operationResult.getFieldNameList();
- resultObject = getLongRunningQueries(longRunningValue);
+ getRequestCollectionValue(getLongRunningQueries(), resultObject);
operationResult.setContent(createReportResultList(fieldNameList,
resultObject.iterator()));
} else if (operationName.equals(Platform.Operations.GET_SESSIONS)) {
@@ -441,8 +436,6 @@
ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
.getValue();
- String modelName = managedObject.getName();
-
// Get any model errors/warnings
MetaValue errors = managedObject.getProperty("errors").getValue();
if (errors != null) {
@@ -454,31 +447,20 @@
return count;
}
- protected Collection<Request> getLongRunningQueries(int longRunningValue) {
+ protected MetaValue getLongRunningQueries() {
MetaValue requestsCollection = null;
- Collection<Request> list = new ArrayList<Request>();
+ MetaValue args = null;
- double longRunningQueryTimeDouble = new Double(longRunningValue);
-
- requestsCollection = getRequests();
-
- getRequestCollectionValue(requestsCollection, list);
-
- Iterator<Request> requestsIter = list.iterator();
- while (requestsIter.hasNext()) {
- Request request = requestsIter.next();
- long startTime = request.getStartTime();
- // Get msec from each, and subtract.
- long runningTime = Calendar.getInstance().getTimeInMillis()
- - startTime;
-
- if (runningTime < longRunningQueryTimeDouble) {
- requestsIter.remove();
- }
+ try {
+ requestsCollection = executeManagedOperation(mc,
+ Platform.Operations.GET_LONGRUNNINGQUERIES, args);
+ } catch (Exception e) {
+ final String msg = "Exception executing operation: " +
Platform.Operations.GET_LONGRUNNINGQUERIES; //$NON-NLS-1$
+ LOG.error(msg, e);
}
- return list;
+ return requestsCollection;
}
public static <T> void getRequestCollectionValue(MetaValue pValue,
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java 2010-05-28
18:35:50 UTC (rev 2170)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java 2010-05-28
20:54:29 UTC (rev 2171)
@@ -109,13 +109,7 @@
protected void setOperationArguments(String name,
Configuration configuration, Map<String, Object> valueMap) {
// Parameter logic for System Operations
- if (name.equals(Platform.Operations.GET_QUERIES)
- || name.equals(Platform.Operations.GET_LONGRUNNINGQUERIES)) {
- Integer long_running_value = getResourceConfiguration().getSimple(
- Operation.Value.LONG_RUNNING_QUERY_LIMIT).getIntegerValue();
- valueMap.put(Operation.Value.LONG_RUNNING_QUERY_LIMIT,
- long_running_value);
- } else if (name.equals(Platform.Operations.KILL_REQUEST)) {
+ if (name.equals(Platform.Operations.KILL_REQUEST)) {
valueMap.put(Operation.Value.REQUEST_ID, configuration.getSimple(
Operation.Value.REQUEST_ID).getLongValue());
valueMap.put(Operation.Value.SESSION_ID, configuration.getSimple(
@@ -144,22 +138,8 @@
LOG.debug("Measurement name = " + name); //$NON-NLS-1$
// Initialize any parameters to be used in the retrieval of
- // metric
- // values
- if (request
- .getName()
- .equals(
- PluginConstants.ComponentType.Platform.Metrics.LONG_RUNNING_QUERIES)) {
- Integer value = getResourceConfiguration()
- .getSimple(
- PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT)
- .getIntegerValue();
- valueMap
- .put(
- PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT,
- value);
- }
-
+ // metric values
+
Object metricReturnObject = view.getMetric(getComponentType(),
this.getComponentIdentifier(), name, valueMap);
@@ -272,21 +252,6 @@
@Override
public Configuration loadResourceConfiguration() {
- // ManagedComponent platform = null;
- // try {
- // platform = ProfileServiceUtil.getManagedComponent(
- // new
- // org.jboss.managed.api.ComponentType(PluginConstants.ComponentType.Platform.TYPE,
- // PluginConstants.ComponentType.Platform.SUBTYPE),
- // PluginConstants.ComponentType.Platform.TEIID_RUNTIME_ENGINE);
- // } catch (NamingException e) {
- // final String msg = "NamingException in loadResourceConfiguration(): " +
e.getExplanation(); //$NON-NLS-1$
- // LOG.error(msg, e);
- // } catch (Exception e) {
- // final String msg = "Exception in loadResourceConfiguration(): " +
e.getMessage(); //$NON-NLS-1$
- // LOG.error(msg, e);
- // }
- //
// Get plugin config
Configuration c = resourceContext.getPluginConfiguration();
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-05-28
18:35:50 UTC (rev 2170)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-05-28
20:54:29 UTC (rev 2171)
@@ -70,7 +70,7 @@
public static interface Operations {
public final static String GET_QUERIES = "listQueries"; //$NON-NLS-1$
- public final static String GET_LONGRUNNINGQUERIES =
"listLongRunningQueries"; //$NON-NLS-1$
+ public final static String GET_LONGRUNNINGQUERIES =
"getLongRunningRequests"; //$NON-NLS-1$
public final static String KILL_REQUEST = "cancelRequest"; //$NON-NLS-1$
public final static String KILL_SESSION = "terminateSession";
//$NON-NLS-1$
public final static String KILL_TRANSACTION = "terminateTransaction";
//$NON-NLS-1$
@@ -100,7 +100,7 @@
public static interface Operations {
public final static String GET_QUERIES = "listQueries"; //$NON-NLS-1$
- public final static String GET_LONGRUNNINGQUERIES =
"listLongRunningQueries"; //$NON-NLS-1$
+ public final static String GET_LONGRUNNINGQUERIES =
"getLongRunningRequests"; //$NON-NLS-1$
public final static String KILL_REQUEST = "cancelRequest"; //$NON-NLS-1$
public final static String KILL_SESSION = "terminateSession";
//$NON-NLS-1$
public final static String GET_PROPERTIES = "getProperties"; //$NON-NLS-1$
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-05-28 18:35:50 UTC (rev
2170)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-05-28 20:54:29 UTC (rev
2171)
@@ -89,7 +89,7 @@
plugin="JBossAS5" />
</runs-inside>
- <operation name="listLongRunningQueries" displayName="View current
long running queries"
+ <operation name="getLongRunningRequests" displayName="View current
long running queries"
description="List current queries executing against the Teiid System that have
surpassed the long running query threshhold">
<results>
<c:list-property name="list">
@@ -254,18 +254,6 @@
description="The number of user connections for a given point in time"
/>
<resource-configuration>
- <c:group name="general" displayName="General"
- hiddenByDefault="false">
- <c:description>Query Configuration</c:description>
- <c:simple-property name="longRunningQueryLimit"
- type="integer" activationPolicy="immediate"
units="seconds"
- default="600" required="true" displayName="Long Running
Query limit"
- description="The value (in seconds) to use to determine if a query is to be
considered 'long running'.">
- <c:constraint>
- <c:integer-constraint minimum="0" maximum="999999" />
- </c:constraint>
- </c:simple-property>
- </c:group>
<c:group name="teiidProperties" displayName="Runtime Engine
Properties"
hiddenByDefault="false">
<c:simple-property name="resultSetCacheMaxEntries"
@@ -316,6 +304,9 @@
<c:simple-property name="activeSessionsCount"
displayName="Active Session Count" description="Count of active
sessions"
required="false" readOnly="false" />
+ <c:simple-property name="queryThresholdInSecs"
+ displayName="Long Running Query Threshold" description="Length of
time in seconds before a query is considered long running"
+ required="false" readOnly="false" />
</c:group>
<c:group name="bufferServiceProperties" displayName="Buffer Service
Properties"
hiddenByDefault="false">