[teiid-commits] teiid SVN: r818 - in trunk/engine/src: test/java/org/teiid/dqp/internal/process and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Tue Apr 21 16:37:27 EDT 2009
Author: shawkins
Date: 2009-04-21 16:37:26 -0400 (Tue, 21 Apr 2009)
New Revision: 818
Modified:
trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedRequestWorkItem.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/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCoreRequestHandling.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestMetaDataProcessor.java
Log:
TEIID-524 fix of tracking regression
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedRequestWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedRequestWorkItem.java 2009-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedRequestWorkItem.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -93,7 +93,7 @@
@Override
protected void attemptClose() {
this.isClosed = true;
- dqpCore.logMMCommand(requestMsg, false, false, -1);
+ dqpCore.logMMCommand(this, false, false, -1);
this.dqpCore.removeRequest(this);
}
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-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -37,6 +37,7 @@
import javax.transaction.SystemException;
import javax.transaction.xa.Xid;
+import org.teiid.connector.xa.api.TransactionContext;
import org.teiid.dqp.internal.cache.CacheID;
import org.teiid.dqp.internal.cache.DQPContextCache;
import org.teiid.dqp.internal.cache.ResultSetCache;
@@ -228,8 +229,6 @@
public ResultsFuture<ResultsMessage> executeRequest(long reqID,
RequestMessage requestMsg) {
- logMMCommand(requestMsg, true, false, 0); //TODO: there is no transaction at this point
-
DQPWorkContext workContext = DQPWorkContext.getWorkContext();
RequestID requestID = workContext.getRequestID(reqID);
requestMsg.markProcessingStart();
@@ -260,6 +259,7 @@
workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);
}
+ logMMCommand(workItem, true, false, 0); //TODO: there is no transaction at this point
addRequest(requestID, workItem);
this.addWork(workItem);
@@ -452,7 +452,7 @@
markCancelled = workItem.requestCancel();
}
if (markCancelled) {
- logMMCommand(workItem.requestMsg, false, true, 0);
+ logMMCommand(workItem, false, true, 0);
} else {
LogManager.logDetail(LogConstants.CTX_DQP, DQPPlugin.Util.getString("DQPCore.failed_to_cancel")); //$NON-NLS-1$
}
@@ -499,17 +499,22 @@
}
}
- void logMMCommand(RequestMessage msg, boolean isBegin, boolean isCancel, int rowCount) {
- if(this.tracker == null || msg == null || !tracker.willRecordMMCmd()){
+ void logMMCommand(RequestWorkItem workItem, boolean isBegin, boolean isCancel, int rowCount) {
+ if(this.tracker == null || !tracker.willRecordMMCmd()){
return;
}
+ RequestMessage msg = workItem.requestMsg;
DQPWorkContext workContext = DQPWorkContext.getWorkContext();
RequestID rID = new RequestID(workContext.getConnectionID(), msg.getExecutionId());
String command = null;
- String txnID = null;
if(isBegin && !isCancel){
command = msg.getCommandString();
}
+ String txnID = null;
+ TransactionContext tc = workItem.getTransactionContext();
+ if (tc != null) {
+ txnID = tc.getTxnID();
+ }
String appName = workContext.getAppName();
// Log to request log
short point = isBegin? TrackerLogConstants.CMD_POINT.BEGIN:TrackerLogConstants.CMD_POINT.END;
@@ -549,6 +554,10 @@
TrackingService getTracker() {
return tracker;
}
+
+ void setTracker(TrackingService tracker) {
+ this.tracker = tracker;
+ }
public TransactionService getTransactionService() {
if (transactionService == null) {
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-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -361,7 +361,7 @@
if (this.processingException != null) {
sendError();
} else {
- dqpCore.logMMCommand(requestMsg, false, false, this.processor.getHighestRow());
+ dqpCore.logMMCommand(this, false, false, this.processor.getHighestRow());
}
}
@@ -710,6 +710,10 @@
return transactionContext;
}
+ void setTransactionContext(TransactionContext transactionContext) {
+ this.transactionContext = transactionContext;
+ }
+
Collection<DataTierTupleSource> getConnectorRequests() {
return new LinkedList<DataTierTupleSource>(this.connectorInfo.values());
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCoreRequestHandling.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCoreRequestHandling.java 2009-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCoreRequestHandling.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -26,6 +26,8 @@
import java.util.HashSet;
import java.util.Set;
+import org.mockito.Mockito;
+import org.teiid.connector.xa.api.TransactionContext;
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
import org.teiid.dqp.internal.process.DataTierTupleSource;
@@ -34,16 +36,14 @@
import junit.framework.TestCase;
import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.common.buffer.TupleSourceID;
import com.metamatrix.dqp.exception.SourceWarning;
import com.metamatrix.dqp.internal.datamgr.ConnectorID;
import com.metamatrix.dqp.message.AtomicRequestMessage;
import com.metamatrix.dqp.message.RequestID;
import com.metamatrix.dqp.message.RequestMessage;
+import com.metamatrix.dqp.service.TrackingService;
import com.metamatrix.platform.security.api.MetaMatrixSessionID;
import com.metamatrix.platform.security.api.SessionToken;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.processor.QueryProcessor;
import com.metamatrix.query.sql.lang.Command;
import com.metamatrix.server.serverapi.RequestInfo;
@@ -92,7 +92,7 @@
private RequestID addRequest(DQPCore rm, String sessionId, int executionId) {
RequestMessage r0 = new RequestMessage("test command"); //$NON-NLS-1$
RequestID id = new RequestID(sessionId, executionId);
- addRequest(rm, r0, id, null, null, new TupleSourceID("ts-1"), null, null, null); //$NON-NLS-1$
+ addRequest(rm, r0, id, null, null); //$NON-NLS-1$
return id;
}
@@ -119,7 +119,7 @@
DQPCore rm = new DQPCore();
RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$
RequestID requestID = new RequestID(SESSION_STRING, 1);
- RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null, new TupleSourceID("ts-1"), null, null, null); //$NON-NLS-1$
+ RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null); //$NON-NLS-1$
assertTrue(workItem.resultsCursor.resultsRequested);
}
@@ -128,7 +128,7 @@
RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$
RequestID requestID = new RequestID(SESSION_STRING, 1);
- RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null, new TupleSourceID("ts-1"), null, null, null); //$NON-NLS-1$
+ RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null); //$NON-NLS-1$
workItem.addSourceFailureDetails(getSourceFailures("Model1", "Binding1", "Warning1")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
workItem.addSourceFailureDetails(getSourceFailures("Model2", "Binding2", "Warning2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -141,10 +141,7 @@
RequestMessage requestMsg,
RequestID id,
Command originalCommand,
- QueryProcessor processor,
- TupleSourceID resultsID,
- AnalysisRecord analysisRecord,
- Collection schemas, DQPWorkContext workContext) {
+ DQPWorkContext workContext) {
if (workContext == null) {
workContext = new DQPWorkContext();
@@ -160,7 +157,7 @@
DQPCore rm = new DQPCore();
RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$
RequestID requestID = new RequestID(SESSION_STRING, 1);
- RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null, null, null, null, null);
+ RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null);
AtomicRequestMessage atomicReq = new AtomicRequestMessage(workItem.requestMsg, workItem.dqpWorkContext, 1);
DataTierTupleSource info = new DataTierTupleSource(null, atomicReq, null, new ConnectorID("connID"), workItem); //$NON-NLS-1$
@@ -174,7 +171,7 @@
DQPCore rm = new DQPCore();
RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$
RequestID requestID = new RequestID(SESSION_STRING, 1);
- RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null, null, null, null, null);
+ RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null);
AtomicRequestMessage atomicReq = new AtomicRequestMessage(workItem.requestMsg, workItem.dqpWorkContext, 1);
DataTierTupleSource info = new DataTierTupleSource(null, atomicReq, null, new ConnectorID("connID"), workItem); //$NON-NLS-1$
@@ -186,4 +183,19 @@
assertNull(arInfo);
}
+ public void testLogTxnID() {
+ DQPCore rm = new DQPCore();
+ TrackingService ts = Mockito.mock(TrackingService.class);
+ Mockito.stub(ts.willRecordMMCmd()).toReturn(true);
+ rm.setTracker(ts);
+ RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$
+ RequestID requestID = new RequestID(SESSION_STRING, 1);
+ RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null);
+ TransactionContext tc = Mockito.mock(TransactionContext.class);
+ Mockito.stub(tc.getTxnID()).toReturn("mytxnid"); //$NON-NLS-1$
+ workItem.setTransactionContext(tc);
+ rm.logMMCommand(workItem, true, true, -1);
+ Mockito.verify(ts, Mockito.times(1)).log("C.0", "mytxnid", (short)1, (short)1, null, null, null, null, null, null, -1); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -130,7 +130,7 @@
context.setVdbVersion("1"); //$NON-NLS-1$
context.setQueryProcessorFactory(new SimpleQueryProcessorFactory(bs.getBufferManager(), dtm, new DefaultCapabilitiesFinder(), null, metadata));
processor = new QueryProcessor(new FakeProcessorPlan(), context, bs.getBufferManager(), dtm);
- workItem = TestDQPCoreRequestHandling.addRequest(rm, original, requestID, null, processor, null, null, null, workContext);
+ workItem = TestDQPCoreRequestHandling.addRequest(rm, original, requestID, null, workContext);
request = new AtomicRequestMessage(original, workContext, nodeId);
request.setCommand(command);
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestMetaDataProcessor.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestMetaDataProcessor.java 2009-04-21 19:43:28 UTC (rev 817)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestMetaDataProcessor.java 2009-04-21 20:37:26 UTC (rev 818)
@@ -79,7 +79,7 @@
// Initialize components
RequestID requestID = workContext.getRequestID(1);
RequestMessage requestMsg = new RequestMessage(sql);
- TestDQPCoreRequestHandling.addRequest(requestMgr, requestMsg, requestID, command, null, null, AnalysisRecord.createNonRecordingRecord(), null, null); //$NON-NLS-1$
+ TestDQPCoreRequestHandling.addRequest(requestMgr, requestMsg, requestID, command, null); //$NON-NLS-1$
ApplicationEnvironment env = new ApplicationEnvironment();
FakeVDBService vdbService = new FakeVDBService();
More information about the teiid-commits
mailing list