<T> FutureWork<T> addWork(Callable<T> callable, CompletionListener<T> listener, int priority) { FutureWork<T> work = new FutureWork<T>(callable, priority); work.setRequestId(this.requestID.toString()); WorkWrapper<T> wl = new WorkWrapper<T>(work); work.addCompletionListener(wl); work.addCompletionListener(listener); synchronized (queue) { if (totalThreads < dqpCore.getUserRequestSourceConcurrency()) { dqpCore.addWork(work); totalThreads++; wl.submitted = true; } else { queue.add(wl); LogManager.logDetail(LogConstants.CTX_DQP, this.requestID, " reached max source concurrency of ", dqpCore.getUserRequestSourceConcurrency()); //$NON-NLS-1$ } } return work; }
<T> FutureWork<T> addWork(Callable<T> callable, CompletionListener<T> listener, int priority) { FutureWork<T> work = new FutureWork<T>(callable, priority); work.setRequestId(this.requestID.toString()); WorkWrapper<T> wl = new WorkWrapper<T>(work); work.addCompletionListener(wl); work.addCompletionListener(listener); synchronized (queue) { if (totalThreads < dqpCore.getUserRequestSourceConcurrency()) { dqpCore.addWork(work); totalThreads++; wl.submitted = true; } else { queue.add(wl); LogManager.logDetail(LogConstants.CTX_DQP, this.requestID, " reached max source concurrency of ", dqpCore.getUserRequestSourceConcurrency()); //$NON-NLS-1$ } } return work; }
<T> FutureWork<T> addWork(Callable<T> callable, CompletionListener<T> listener, int priority) { FutureWork<T> work = new FutureWork<T>(callable, priority); work.setRequestId(this.requestID.toString()); WorkWrapper<T> wl = new WorkWrapper<T>(work); work.addCompletionListener(wl); work.addCompletionListener(listener); synchronized (queue) { if (totalThreads < dqpCore.getUserRequestSourceConcurrency()) { dqpCore.addWork(work); totalThreads++; wl.submitted = true; } else { queue.add(wl); LogManager.logDetail(LogConstants.CTX_DQP, this.requestID, " reached max source concurrency of ", dqpCore.getUserRequestSourceConcurrency()); //$NON-NLS-1$ } } return work; }
@Test public void testConfigurationSets() { assertEquals(1, core.getMaxActivePlans()); assertEquals(2, core.getUserRequestSourceConcurrency()); }
protected void processMore() throws BlockedException, TeiidException { if (!doneProducingBatches) { synchronized (queue) { while (!queue.isEmpty() && totalThreads < dqpCore.getUserRequestSourceConcurrency()) { WorkWrapper<?> w = queue.removeFirst(); dqpCore.addWork(w.work);
protected void processMore() throws BlockedException, TeiidException { if (!doneProducingBatches) { synchronized (queue) { while (!queue.isEmpty() && totalThreads < dqpCore.getUserRequestSourceConcurrency()) { WorkWrapper<?> w = queue.removeFirst(); dqpCore.addWork(w.work);
protected void processMore() throws BlockedException, TeiidException { if (!doneProducingBatches) { synchronized (queue) { while (!queue.isEmpty() && totalThreads < dqpCore.getUserRequestSourceConcurrency()) { WorkWrapper<?> w = queue.removeFirst(); dqpCore.addWork(w.work);
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
request.setPreParser(this.config.getPreParser()); request.setUserRequestConcurrency(this.getUserRequestSourceConcurrency()); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); final RequestWorkItem workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
request.setPreParser(this.config.getPreParser()); request.setUserRequestConcurrency(this.getUserRequestSourceConcurrency()); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); final RequestWorkItem workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);
request.setPreParser(this.config.getPreParser()); request.setUserRequestConcurrency(this.getUserRequestSourceConcurrency()); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); final RequestWorkItem workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);