[teiid-commits] teiid SVN: r2747 - in branches/7.1.x/console/src/main: java/org/teiid/rhq/plugin and 2 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Nov 29 16:03:02 EST 2010
Author: tejones
Date: 2010-11-29 16:03:01 -0500 (Mon, 29 Nov 2010)
New Revision: 2747
Modified:
branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
branches/7.1.x/console/src/main/resources/META-INF/rhq-plugin.xml
Log:
TEIID-1367: Added VDB level operation to clear the cache for Result Sets or Prepared Plans.
Modified: branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-11-24 20:56:57 UTC (rev 2746)
+++ branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-11-29 21:03:01 UTC (rev 2747)
@@ -274,6 +274,20 @@
MetaValue resultsMetaValue = executeMaterializedViewQuery( connection, vdbName, Integer.parseInt(vdbVersion));
getResultsCollectionValue(resultsMetaValue, sqlResultsObject);
operationResult.setContent(createReportResultListForMatViewQuery(fieldNameList, sqlResultsObject.iterator()));
+ } else if (operationName.equals(VDB.Operations.CLEAR_CACHE)) {
+
+ try {
+ executeClearCache( connection, vdbName, Integer.parseInt(vdbVersion),
+ (String) valueMap.get(Operation.Value.CACHE_TYPE));
+
+ }catch(Exception e){
+ //Some failure during Clear Cache. Set message here since it has already been logged.
+ operationResult.setContent("failure - see log for details"); //$NON-NLS-1$
+ }
+
+ //If no exceptions, we assume the clear cache worked
+ operationResult.setContent("cache successfully cleared!"); //$NON-NLS-1$
+
} else if (operationName.equals(VDB.Operations.RELOAD_MATVIEW)) {
MetaValue resultsMetaValue = reloadMaterializedView(connection, vdbName, Integer.parseInt(vdbVersion),
(String) valueMap.get(Operation.Value.MATVIEW_SCHEMA),
@@ -330,6 +344,22 @@
}
+ protected void executeClearCache(
+ ProfileServiceConnection connection, String vdbName, int vdbVersion, String cacheType) throws Exception {
+
+ MetaValue[] args = new MetaValue[] {SimpleValueSupport.wrap(cacheType),
+ SimpleValueSupport.wrap(vdbName),
+ SimpleValueSupport.wrap(vdbVersion) };
+
+ try {
+ executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc), VDB.Operations.CLEAR_CACHE, args);
+ } catch (Exception e) {
+ final String msg = "Exception executing operation: " + VDB.Operations.EXECUTE_QUERIES; //$NON-NLS-1$
+ LOG.error(msg, e);
+ throw e;
+ }
+ }
+
protected MetaValue executeMaterializedViewQuery(
ProfileServiceConnection connection, String vdbName, int vdbVersion) {
Modified: branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-11-24 20:56:57 UTC (rev 2746)
+++ branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-11-29 21:03:01 UTC (rev 2747)
@@ -105,7 +105,7 @@
null));
String version = VDB.VERSION;
valueMap.put(version, this.resourceConfiguration.getSimpleValue(
- "version", null));
+ VDB.VERSION, null));
// Parameter logic for VDB Operations
if (name.equals(VDB.Operations.KILL_REQUEST)) {
@@ -113,6 +113,9 @@
Operation.Value.REQUEST_ID).getLongValue());
valueMap.put(Operation.Value.SESSION_ID, configuration.getSimple(
Operation.Value.SESSION_ID).getLongValue());
+ } else if (name.equals(VDB.Operations.CLEAR_CACHE)) {
+ valueMap.put(Operation.Value.CACHE_TYPE, configuration.getSimple(
+ Operation.Value.CACHE_TYPE).getStringValue());
} else if (name.equals(Platform.Operations.KILL_SESSION)) {
valueMap.put(Operation.Value.SESSION_ID, configuration.getSimple(
Operation.Value.SESSION_ID).getLongValue());
Modified: branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
===================================================================
--- branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-11-24 20:56:57 UTC (rev 2746)
+++ branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-11-29 21:03:01 UTC (rev 2747)
@@ -98,6 +98,7 @@
public static interface Operations {
public final static String GET_QUERIES = "listQueries"; //$NON-NLS-1$
+ public final static String CLEAR_CACHE = "clearCache"; //$NON-NLS-1$
public final static String EXECUTE_QUERIES = "executeQuery"; //$NON-NLS-1$
public final static String GET_LONGRUNNINGQUERIES = "getLongRunningRequests"; //$NON-NLS-1$
public final static String KILL_REQUEST = "cancelRequest"; //$NON-NLS-1$
@@ -253,6 +254,7 @@
public final static String MATVIEW_SCHEMA = "schema"; //$NON-NLS-1$
public final static String MATVIEW_TABLE = "table"; //$NON-NLS-1$
public final static String INVALIDATE_MATVIEW = "invalidate"; //$NON-NLS-1$
+ public final static String CACHE_TYPE = "cacheType"; //$NON-NLS-1$
}
Modified: branches/7.1.x/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- branches/7.1.x/console/src/main/resources/META-INF/rhq-plugin.xml 2010-11-24 20:56:57 UTC (rev 2746)
+++ branches/7.1.x/console/src/main/resources/META-INF/rhq-plugin.xml 2010-11-29 21:03:01 UTC (rev 2747)
@@ -526,7 +526,26 @@
type="string" description="Result of refresh" />
</results>
</operation>
+
+ <operation name="clearCache" displayName="Clear Cache"
+ description="Clears the cache for a given type for this VDB">
+ <parameters>
+ <c:simple-property displayName="Cache Type"
+ name="cacheType" type="string" required="true"
+ description="The cache type to clear" default="QUERY_SERVICE_RESULT_SET_CACHE">
+ <c:property-options>
+ <c:option value="QUERY_SERVICE_RESULT_SET_CACHE" default="true" name="Result Set" />
+ <c:option value="PREPARED_PLAN_CACHE" name="Prepared Plan" />
+ </c:property-options>
+ </c:simple-property>
+ </parameters>
+ <results>
+ <c:simple-property displayName="Result" name="operationResult"
+ type="string" description="Result of clear cache" />
+ </results>
+ </operation>
+
<metric displayName="Status" defaultOn="true" dataType="trait"
displayType="summary" category="availability" property="status"
description="The status of this VDB" />
More information about the teiid-commits
mailing list