[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