[teiid-commits] teiid SVN: r907 - in trunk: engine/src/main/java/com/metamatrix/server/serverapi and 4 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon May 11 16:34:38 EDT 2009


Author: shawkins
Date: 2009-05-11 16:34:38 -0400 (Mon, 11 May 2009)
New Revision: 907

Modified:
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java
   trunk/engine/src/main/java/com/metamatrix/server/serverapi/RequestInfo.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
   trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java
   trunk/server/src/main/java/com/metamatrix/admin/server/ServerRuntimeStateAdminImpl.java
   trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java
   trunk/server/src/main/java/com/metamatrix/server/query/service/QueryServiceInterface.java
   trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java
   trunk/server/src/test/java/com/metamatrix/admin/server/IdentifierConstants.java
   trunk/server/src/test/java/com/metamatrix/admin/server/TestServerMonitoringAdminImpl.java
   trunk/server/src/test/java/com/metamatrix/admin/server/TestServerRuntimeStateAdminImpl.java
Log:
TEIID-491 added execution id as the fourth parameter to an atomic cancel identifier.

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -403,7 +403,7 @@
         
         MMRequest request = null;
         if (src.getConnectorBindingUUID() != null) {
-            request = new MMRequest(new String[] {connId, String.valueOf(src.getRequestID().getExecutionID()), String.valueOf(src.getNodeID())}); 
+            request = new MMRequest(new String[] {connId, String.valueOf(src.getRequestID().getExecutionID()), String.valueOf(src.getNodeID()), String.valueOf(src.getExecutionID())}); 
         }
         else {
             request = new MMRequest(new String[] {connId, String.valueOf(src.getRequestID().getExecutionID())}); 

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -45,6 +45,7 @@
 import com.metamatrix.common.comm.api.ServerConnection;
 import com.metamatrix.common.log.LogManager;
 import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.service.TransactionService;
 import com.metamatrix.jdbc.EmbeddedConnectionFactoryImpl;
@@ -272,7 +273,7 @@
     public void cancelSourceRequest(String identifier) 
         throws AdminException {
         
-        if (identifier == null || !identifier.matches("\\d+\\" + Request.DELIMITER + "\\d+\\" + Request.DELIMITER + "\\d+")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        if (identifier == null || !identifier.matches("\\d+\\" + Request.DELIMITER + "\\d+\\" + Request.DELIMITER + "\\d+" + Request.DELIMITER + "\\d+")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
             throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.Invalid_identifier")); //$NON-NLS-1$                
         }
         
@@ -281,10 +282,11 @@
         String connId = identifierParts[0];
         long requestId = Long.parseLong(identifierParts[1]);
         int nodeId = Integer.parseInt(identifierParts[2]);
-        RequestID id = new RequestID(connId, requestId);
+        int executionId = Integer.parseInt(identifierParts[3]);
+        AtomicRequestID id = new AtomicRequestID(new RequestID(connId, requestId), nodeId, executionId);
 
         try {
-            this.manager.getDQP().cancelAtomicRequest(id, nodeId);
+            this.manager.getDQP().cancelAtomicRequest(id);
 		} catch (MetaMatrixComponentException e) {
 			throw new AdminComponentException(e);
 		}

Modified: trunk/engine/src/main/java/com/metamatrix/server/serverapi/RequestInfo.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/server/serverapi/RequestInfo.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/engine/src/main/java/com/metamatrix/server/serverapi/RequestInfo.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -44,6 +44,7 @@
     private int nodeID = Integer.MIN_VALUE;
     private String connectorBindingUUID;
     private String transactionId;
+    private int executionID;
     
     public RequestInfo(RequestID requestId, String originalCommand, Date submittedTime, Date processingTime) {
         this.requestID = requestId;
@@ -113,6 +114,14 @@
     public void setNodeID(int nodeID) {
         this.nodeID = nodeID;
     }
+    
+    public int getExecutionID() {
+		return executionID;
+	}
+    
+    public void setExecutionID(int executionID) {
+		this.executionID = executionID;
+	}
 
     /**
      * Get the actual command to perform.

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -68,6 +68,7 @@
 import com.metamatrix.dqp.client.MetadataResult;
 import com.metamatrix.dqp.client.ResultsFuture;
 import com.metamatrix.dqp.internal.datamgr.ConnectorID;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.AtomicRequestMessage;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.message.RequestMessage;
@@ -220,6 +221,7 @@
                 	info.setSessionToken(holder.dqpWorkContext.getSessionToken());
                 	info.setConnectorBindingUUID(arm.getConnectorBindingID());
         			info.setNodeID(arm.getAtomicRequestID().getNodeID());
+        			info.setExecutionID(arm.getAtomicRequestID().getExecutionId());
         			results.add(info);
                 }
                 results.add(req);
@@ -349,12 +351,13 @@
      * partial results then remove the original request.
      * @throws MetaMatrixComponentException 
      */
-    public void cancelAtomicRequest(RequestID requestID, int nodeID) throws MetaMatrixComponentException {                    
-        RequestWorkItem workItem = safeGetWorkItem(requestID);
+    public void cancelAtomicRequest(AtomicRequestID requestID) throws MetaMatrixComponentException {                    
+        RequestWorkItem workItem = safeGetWorkItem(requestID.getRequestID());
         if (workItem == null) {
+    		LogManager.logDetail(LogConstants.CTX_DQP, "Could not cancel", requestID, "parent request does not exist"); //$NON-NLS-1$ //$NON-NLS-2$
         	return;
         }
-        workItem.requestAtomicRequestCancel(nodeID);
+        workItem.requestAtomicRequestCancel(requestID);
     }
     
     RequestWorkItem getRequestWorkItem(RequestID reqID) throws MetaMatrixProcessingException {

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -64,7 +64,6 @@
 import com.metamatrix.dqp.DQPPlugin;
 import com.metamatrix.dqp.exception.SourceWarning;
 import com.metamatrix.dqp.message.AtomicRequestID;
-import com.metamatrix.dqp.message.AtomicRequestMessage;
 import com.metamatrix.dqp.message.ParameterInfo;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.message.RequestMessage;
@@ -604,24 +603,20 @@
         return true;
     }
     
-    public boolean requestAtomicRequestCancel(int accessNodeID) throws MetaMatrixComponentException {
+    public boolean requestAtomicRequestCancel(AtomicRequestID ari) throws MetaMatrixComponentException {
     	// in the case that this does not support partial results; cancel
         // the original processor request.
         if(!requestMsg.supportsPartialResults()) {
         	return requestCancel();
         }
-        // Walk through all connector infos and attempt to cancel each one
-    	for (DataTierTupleSource connectorRequest : this.connectorInfo.values()) {
-            AtomicRequestMessage aqr = connectorRequest.getAtomicRequestMessage();
-            if (aqr.getAtomicRequestID().getNodeID() == accessNodeID) {
-            	connectorRequest.cancelRequest();
-            	return true;
-            }
+        
+        DataTierTupleSource connectorRequest = this.connectorInfo.get(ari);
+        if (connectorRequest != null) {
+	        connectorRequest.cancelRequest();
+        	return true;
         }
         
-    	if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) {
-    		LogManager.logDetail(LogConstants.CTX_DQP, "Connector request not queued yet. RequestID=" + requestID+ " Node id="+ accessNodeID); //$NON-NLS-1$ //$NON-NLS-2$
-    	}
+		LogManager.logDetail(LogConstants.CTX_DQP, "Connector request not found. AtomicRequestID=", ari); //$NON-NLS-1$ 
         return false;
     }
     

Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -928,8 +928,9 @@
 
 			    MMRequest request;
 			    if (info.isAtomicQuery()) {
-			    	identifierParts = new String[3];
+			    	identifierParts = new String[4];
 			    	identifierParts[2] = String.valueOf(info.getNodeID());
+			    	identifierParts[3] = String.valueOf(info.getExecutionID());
 			    } else {
 			    	identifierParts = new String[2];
 			    }

Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerRuntimeStateAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerRuntimeStateAdminImpl.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerRuntimeStateAdminImpl.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -55,6 +55,7 @@
 import com.metamatrix.common.config.api.exceptions.ConfigurationException;
 import com.metamatrix.common.config.model.BasicDeployedComponent;
 import com.metamatrix.core.vdb.VDBStatus;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.metadata.runtime.RuntimeMetadataCatalog;
 import com.metamatrix.metadata.runtime.RuntimeVDBDeleteUtility;
@@ -131,12 +132,13 @@
         String sessionID = null; 
         long requestIDLong = -1;
         int nodeID = -1;
-        
+        int executionId = -1;
         try {
             String[] identifierParts = MMRequest.buildIdentifierArray(identifier);
             sessionID = identifierParts[0];
             requestIDLong = Long.parseLong(identifierParts[1]);
             nodeID = Integer.parseInt(identifierParts[2]);
+            executionId = Integer.parseInt(identifierParts[3]);
         } catch (NumberFormatException e) {
             throwProcessingException("ServerRuntimeStateAdminImpl.Invalid_Source_Request_Identifier", new Object[] {identifier, Request.DELIMITER}); //$NON-NLS-1$
         } catch (ArrayIndexOutOfBoundsException e) {
@@ -145,8 +147,7 @@
         
             
         try {
-            RequestID requestID = new RequestID(sessionID, requestIDLong);
-            getQueryServiceProxy().cancelQuery(requestID, nodeID);
+            getQueryServiceProxy().cancelQuery(new AtomicRequestID(new RequestID(sessionID, requestIDLong), nodeID, executionId));
         }  catch(InvalidRequestIDException e) {
         	throw new AdminProcessingException(e);
         } catch (MetaMatrixComponentException e) {

Modified: trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -53,6 +53,7 @@
 import com.metamatrix.core.MetaMatrixRuntimeException;
 import com.metamatrix.dqp.DQPPlugin;
 import com.metamatrix.dqp.client.ClientSideDQP;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.service.TransactionService;
 import com.metamatrix.platform.security.api.SessionToken;
@@ -190,9 +191,9 @@
     /*
      * @see com.metamatrix.server.query.service.QueryServiceInterface#cancelQuery(com.metamatrix.dqp.message.RequestID, int)
      */
-    public void cancelQuery(RequestID requestID, int nodeID)
+    public void cancelQuery(AtomicRequestID ari)
         throws InvalidRequestIDException, MetaMatrixComponentException {
-		this.dqp.cancelAtomicRequest(requestID, nodeID);
+		this.dqp.cancelAtomicRequest(ari);
     }    
     
     /**

Modified: trunk/server/src/main/java/com/metamatrix/server/query/service/QueryServiceInterface.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/query/service/QueryServiceInterface.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/main/java/com/metamatrix/server/query/service/QueryServiceInterface.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -31,6 +31,7 @@
 import com.metamatrix.api.exception.ComponentNotFoundException;
 import com.metamatrix.api.exception.MetaMatrixComponentException;
 import com.metamatrix.api.exception.server.InvalidRequestIDException;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.platform.security.api.SessionToken;
 import com.metamatrix.platform.service.api.CacheAdmin;
@@ -60,7 +61,7 @@
     public void cancelQuery(RequestID requestID, boolean shouldRollback)
         throws InvalidRequestIDException, MetaMatrixComponentException;
     
-    public void cancelQuery(RequestID requestID, int nodeID)
+    public void cancelQuery(AtomicRequestID ari)
     throws InvalidRequestIDException, MetaMatrixComponentException;   
     
     Collection<Transaction> getTransactions();

Modified: trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -37,12 +37,14 @@
 import com.metamatrix.admin.api.exception.AdminException;
 import com.metamatrix.admin.api.objects.Request;
 import com.metamatrix.admin.api.objects.Transaction;
+import com.metamatrix.admin.objects.MMAdminObject;
 import com.metamatrix.api.exception.ComponentNotFoundException;
 import com.metamatrix.api.exception.MetaMatrixComponentException;
 import com.metamatrix.api.exception.server.InvalidRequestIDException;
 import com.metamatrix.common.comm.ClientServiceRegistry;
 import com.metamatrix.common.config.api.DeployedComponentID;
 import com.metamatrix.common.queue.WorkerPoolStats;
+import com.metamatrix.dqp.message.AtomicRequestID;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.platform.security.api.MetaMatrixSessionID;
 import com.metamatrix.platform.security.api.SessionToken;
@@ -131,16 +133,14 @@
     public void cancelQuery(RequestID requestID,
                             boolean shouldRollback) throws InvalidRequestIDException,
                                                    MetaMatrixComponentException {
-        cancelledQueries.add(buildIdentifierFromRequestId(requestID, null));
+        cancelledQueries.add(requestID.getConnectionID() + MMAdminObject.DELIMITER_CHAR + requestID.getExecutionID());
     }
-
-    /** 
-     * @see com.metamatrix.server.query.service.BaseQueryServiceInterface#cancelQuery(com.metamatrix.dqp.message.RequestID, int)
-     */
-    public void cancelQuery(RequestID requestID,
-                            int nodeID) throws InvalidRequestIDException,
-                                       MetaMatrixComponentException{
-        cancelledQueries.add(buildIdentifierFromRequestId(requestID, "" +nodeID)); //$NON-NLS-1$
+    
+    @Override
+    public void cancelQuery(AtomicRequestID ari)
+    		throws InvalidRequestIDException, MetaMatrixComponentException {
+    	cancelledQueries.add(ari.getRequestID().getConnectionID() + MMAdminObject.DELIMITER_CHAR + ari.getRequestID().getExecutionID()
+    			+MMAdminObject.DELIMITER_CHAR + ari.getNodeID() + MMAdminObject.DELIMITER_CHAR + ari.getExecutionId());
     }
 
     /** 
@@ -258,29 +258,6 @@
     public void clearCache(String name,
                            Properties props) throws MetaMatrixComponentException{
     }
-    
-    /**
-     * Build the Identifer, as an array of its parts
-     * @param requestId
-     *  
-     * @return the Identifer, as an array of its parts
-     * @since 4.3
-     */
-    private static String buildIdentifierFromRequestId(RequestID requestId, String nodeId) {
-        String connectionId = requestId.getConnectionID();
-        String executionId = Long.toString(requestId.getExecutionID());
-        
-        StringBuffer buff = new StringBuffer();
-        buff.append(connectionId);
-        buff.append(Request.DELIMITER_CHAR);
-        buff.append(executionId);
-        if ( nodeId != null ) {
-            buff.append(Request.DELIMITER_CHAR);
-            buff.append(nodeId);
-        }
-        
-        return buff.toString();
-    }
 
 	public void init(ServiceID id, DeployedComponentID deployedComponentID,
 			Properties props, ClientServiceRegistry listenerRegistry){

Modified: trunk/server/src/test/java/com/metamatrix/admin/server/IdentifierConstants.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/IdentifierConstants.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/IdentifierConstants.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -61,7 +61,7 @@
     /** 
      * @since 4.3
      */
-    final String REQUEST_1_1_1 = "1" + Request.DELIMITER + "1" + Request.DELIMITER + "1"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+    final String REQUEST_1_1_1_0 = "1" + Request.DELIMITER + "1" + Request.DELIMITER + "1" + Request.DELIMITER + "0"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
     /** 
      * @since 4.3
      */

Modified: trunk/server/src/test/java/com/metamatrix/admin/server/TestServerMonitoringAdminImpl.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/TestServerMonitoringAdminImpl.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/TestServerMonitoringAdminImpl.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -483,7 +483,7 @@
         assertEquals(2, results.size());
         
         Request request = (Request) results.iterator().next();
-        assertEquals(REQUEST_1_1_1, request.getIdentifier()); 
+        assertEquals(REQUEST_1_1_1_0, request.getIdentifier()); 
         assertEquals("1", request.getSessionID()); //$NON-NLS-1$
         assertEquals("1", request.getRequestID()); //$NON-NLS-1$ 
         assertEquals("1", request.getNodeID()); //$NON-NLS-1$ 
@@ -497,7 +497,7 @@
         results = admin.getSourceRequests(_1_1_WILDCARD);  
         assertEquals(1, results.size());
         
-        results = admin.getSourceRequests(REQUEST_1_1_1);  
+        results = admin.getSourceRequests(REQUEST_1_1_1_0);  
         assertEquals(1, results.size());
     }
     

Modified: trunk/server/src/test/java/com/metamatrix/admin/server/TestServerRuntimeStateAdminImpl.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/TestServerRuntimeStateAdminImpl.java	2009-05-11 19:40:52 UTC (rev 906)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/TestServerRuntimeStateAdminImpl.java	2009-05-11 20:34:38 UTC (rev 907)
@@ -105,9 +105,9 @@
         //positive case
         assertTrue(FakeQueryService.cancelledQueries.isEmpty());
         
-        admin.cancelSourceRequest(REQUEST_1_1_1);  
+        admin.cancelSourceRequest(REQUEST_1_1_1_0);  
         
-        assertTrue(FakeQueryService.cancelledQueries.contains(REQUEST_1_1_1)); 
+        assertTrue(FakeQueryService.cancelledQueries.contains(REQUEST_1_1_1_0)); 
         
         
         




More information about the teiid-commits mailing list