[teiid-commits] teiid SVN: r3047 - in trunk: client/src/main/java/org/teiid/jdbc and 1 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Tue Mar 29 12:02:56 EDT 2011
Author: shawkins
Date: 2011-03-29 12:02:56 -0400 (Tue, 29 Mar 2011)
New Revision: 3047
Modified:
trunk/client/src/main/java/org/teiid/client/RequestMessage.java
trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.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
Log:
TEIID-1536 refinement of thread usage sync odbc requests will use their calling thread and by-pass the max plan check
Modified: trunk/client/src/main/java/org/teiid/client/RequestMessage.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/RequestMessage.java 2011-03-28 20:16:39 UTC (rev 3046)
+++ trunk/client/src/main/java/org/teiid/client/RequestMessage.java 2011-03-29 16:02:56 UTC (rev 3047)
@@ -89,6 +89,7 @@
private long executionId;
private int transactionIsolation;
private boolean noExec;
+ private transient boolean sync;
public RequestMessage() {
}
@@ -97,6 +98,14 @@
this();
setCommands(command);
}
+
+ public boolean isSync() {
+ return sync;
+ }
+
+ public void setSync(boolean sync) {
+ this.sync = sync;
+ }
public int getFetchSize() {
return fetchSize;
Modified: trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2011-03-28 20:16:39 UTC (rev 3046)
+++ trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2011-03-29 16:02:56 UTC (rev 3047)
@@ -525,6 +525,7 @@
}
final RequestMessage reqMessage = createRequestMessage(commands, isBatchedCommand, resultsMode);
+ reqMessage.setSync(synch);
ResultsFuture<Boolean> result = execute(reqMessage);
if (synch) {
try {
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 2011-03-28 20:16:39 UTC (rev 3046)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2011-03-29 16:02:56 UTC (rev 3047)
@@ -327,7 +327,7 @@
logMMCommand(workItem, Event.NEW, null);
addRequest(requestID, workItem, state);
synchronized (waitingPlans) {
- if (currentlyActivePlans < maxActivePlans) {
+ if (currentlyActivePlans < maxActivePlans || (!DQPWorkContext.getWorkContext().useCallingThread() && requestMsg.isSync())) {
startActivePlan(workItem);
} else {
if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) {
@@ -358,7 +358,7 @@
private void startActivePlan(RequestWorkItem workItem) {
workItem.active = true;
- if (workItem.getDqpWorkContext().useCallingThread()) {
+ if (workItem.getDqpWorkContext().useCallingThread() || workItem.requestMsg.isSync()) {
this.currentlyActivePlans++;
workItem.run();
} else {
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 2011-03-28 20:16:39 UTC (rev 3046)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2011-03-29 16:02:56 UTC (rev 3047)
@@ -161,7 +161,7 @@
private long processingTimestamp = System.currentTimeMillis();
public RequestWorkItem(DQPCore dqpCore, RequestMessage requestMsg, Request request, ResultsReceiver<ResultsMessage> receiver, RequestID requestID, DQPWorkContext workContext) {
- super(workContext.useCallingThread());
+ super(workContext.useCallingThread() || requestMsg.isSync());
this.requestMsg = requestMsg;
this.requestID = requestID;
this.processorTimeslice = dqpCore.getProcessorTimeSlice();
More information about the teiid-commits
mailing list