public AtomicRequestMessage(RequestMessage requestMessage, DQPWorkContext parent, int nodeId){ this.workContext = parent; this.requestID = new RequestID(parent.getSessionId(), requestMessage.getExecutionId()); this.atomicRequestId = new AtomicRequestID(this.requestID, nodeId, EXECUTION_COUNT.getAndIncrement()); }
public AtomicRequestMessage(RequestMessage requestMessage, DQPWorkContext parent, int nodeId){ this.workContext = parent; this.requestID = new RequestID(parent.getSessionId(), requestMessage.getExecutionId()); this.atomicRequestId = new AtomicRequestID(this.requestID, nodeId, EXECUTION_COUNT.getAndIncrement()); }
public AtomicRequestMessage(RequestMessage requestMessage, DQPWorkContext parent, int nodeId){ this.workContext = parent; this.requestID = new RequestID(parent.getSessionId(), requestMessage.getExecutionId()); this.atomicRequestId = new AtomicRequestID(this.requestID, nodeId, EXECUTION_COUNT.getAndIncrement()); }
void initialize(RequestMessage requestMsg, BufferManager bufferManager, ProcessorDataManager processorDataManager, TransactionService transactionService, TempTableStore tempTableStore, DQPWorkContext workContext, SessionAwareCache<PreparedPlan> planCache) { this.requestMsg = requestMsg; this.vdbName = workContext.getVdbName(); this.vdbVersion = workContext.getVdbVersion(); this.bufferManager = bufferManager; this.processorDataManager = processorDataManager; this.transactionService = transactionService; this.tempTableStore = tempTableStore; this.workContext = workContext; this.requestId = workContext.getRequestID(this.requestMsg.getExecutionId()); this.connectorManagerRepo = workContext.getVDB().getAttachment(ConnectorManagerRepository.class); this.planCache = planCache; }
void initialize(RequestMessage requestMsg, BufferManager bufferManager, ProcessorDataManager processorDataManager, TransactionService transactionService, TempTableStore tempTableStore, DQPWorkContext workContext, SessionAwareCache<PreparedPlan> planCache) { this.requestMsg = requestMsg; this.vdbName = workContext.getVdbName(); this.vdbVersion = workContext.getVdbVersion(); this.bufferManager = bufferManager; this.processorDataManager = processorDataManager; this.transactionService = transactionService; this.tempTableStore = tempTableStore; this.workContext = workContext; this.requestId = workContext.getRequestID(this.requestMsg.getExecutionId()); this.connectorManagerRepo = workContext.getVDB().getAttachment(ConnectorManagerRepository.class); this.planCache = planCache; }
void initialize(RequestMessage requestMsg, BufferManager bufferManager, ProcessorDataManager processorDataManager, TransactionService transactionService, TempTableStore tempTableStore, DQPWorkContext workContext, SessionAwareCache<PreparedPlan> planCache) { this.requestMsg = requestMsg; this.vdbName = workContext.getVdbName(); this.vdbVersion = workContext.getVdbVersion(); this.bufferManager = bufferManager; this.processorDataManager = processorDataManager; this.transactionService = transactionService; this.tempTableStore = tempTableStore; this.workContext = workContext; this.requestId = workContext.getRequestID(this.requestMsg.getExecutionId()); this.connectorManagerRepo = workContext.getVDB().getAttachment(ConnectorManagerRepository.class); this.planCache = planCache; }
/** * Tests whether an exception result is sent when an exception occurs * @since 4.3 */ @Test public void testPlanningException() throws Exception { String sql = "SELECT IntKey FROM BQT1.BadIdea "; //$NON-NLS-1$ RequestMessage reqMsg = exampleRequestMessage(sql); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); try { message.get(5000, TimeUnit.MILLISECONDS); } catch (ExecutionException e) { assertTrue(e.getCause() instanceof QueryResolverException); } }
@Override public void run() { try { chunkFuture = core.requestNextLobChunk(1, reqMsg.getExecutionId(), bt.getReferenceStreamId()); } catch (TeiidProcessingException e) { e.printStackTrace(); } } });
private ResultsMessage execute(String userName, int sessionid, RequestMessage reqMsg) throws InterruptedException, ExecutionException, TimeoutException, TeiidProcessingException { DQPWorkContext.getWorkContext().getSession().setSessionId(String.valueOf(sessionid)); DQPWorkContext.getWorkContext().getSession().setUserName(userName); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); assertNotNull(core.getClientState(String.valueOf(sessionid), false)); ResultsMessage results = message.get(500000, TimeUnit.MILLISECONDS); return results; } }
public void helpTestVisibilityFails(String sql) throws Exception { RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_OFF); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage results = message.get(5000, TimeUnit.MILLISECONDS); assertEquals("[QueryValidatorException]Group does not exist: BQT3.SmallA", results.getException().toString()); //$NON-NLS-1$ }
@Test public void testUsingFinalBuffer() throws Exception { String sql = "select intkey from bqt1.smalla order by intkey"; ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(2); agds.sleep = 50; RequestMessage reqMsg = exampleRequestMessage(sql); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(10, rm.getResultsList().size()); message = core.processCursorRequest(reqMsg.getExecutionId(), 3, 2); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(2, rm.getResultsList().size()); }
@Test public void testBufferReuse() throws Exception { //the sql should return 100 rows String sql = "SELECT A.IntKey FROM BQT1.SmallA as A, BQT1.SmallA as B ORDER BY A.IntKey"; //$NON-NLS-1$ String userName = "1"; //$NON-NLS-1$ String sessionid = "1"; //$NON-NLS-1$ RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName); ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(1); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(8, rm.getResultsList().size()); RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); assertEquals(100, item.resultsBuffer.getRowCount()); }
BufferManagerImpl bufferManager = (BufferManagerImpl)core.getBufferManager(); bufferManager.setProcessorBatchSize(20); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(10, rm.getResultsList().size()); message = core.processCursorRequest(reqMsg.getExecutionId(), 6, 5); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(5, rm.getResultsList().size()); message = core.processCursorRequest(reqMsg.getExecutionId(), 11, 5); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException());
@Test public void testFinalRow() throws Exception { String sql = "SELECT A.IntKey FROM BQT1.SmallA as A"; //$NON-NLS-1$ String userName = "1"; //$NON-NLS-1$ String sessionid = "1"; //$NON-NLS-1$ RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName); ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(10); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(10, rm.getResultsList().size()); RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); while(item.isProcessing()); synchronized (item) { for (int i = 0; i < 100; i++) { Thread.sleep(10); } } assertEquals(10, item.resultsBuffer.getRowCount()); }
DQPWorkContext.getWorkContext().getSession().setUserName(userName); ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(1); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); message = core.processCursorRequest(reqMsg.getExecutionId(), 9, rowsPerBatch); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); message = core.processCursorRequest(reqMsg.getExecutionId(), start, rowsPerBatch); rm = message.get(5000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); message = core.processCursorRequest(reqMsg.getExecutionId(), 9, rowsPerBatch); rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
@Test public void testLobConcurrency() throws Exception { RequestMessage reqMsg = exampleRequestMessage("select to_bytes(stringkey, 'utf-8') FROM BQT1.SmallA"); reqMsg.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_OFF); agds.setSleep(100); ResultsFuture<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); final LobThread t = new LobThread(reqMsg); t.start(); message.addCompletionListener(new ResultsFuture.CompletionListener<ResultsMessage>() { @Override public void onCompletion(ResultsFuture<ResultsMessage> future) { try { final BlobType bt = (BlobType)future.get().getResultsList().get(0).get(0); synchronized (t) { t.bt = bt; t.workContext = DQPWorkContext.getWorkContext(); t.notify(); } Thread.sleep(100); //give the Thread a chance to run } catch (Exception e) { t.interrupt(); throw new RuntimeException(e); } } }); message.get(); t.join(); assertNotNull(t.chunkFuture.get().getBytes()); }
private AtomicRequestMessage helpSetupRequest(String sql, int nodeId, QueryMetadataInterface metadata) throws Exception { DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(metadata, vdb); Command command = helpGetCommand(sql, metadata); RequestMessage original = new RequestMessage(); original.setExecutionId(id++); original.setPartialResults(true); RequestID requestID = workContext.getRequestID(original.getExecutionId()); context = new CommandContext(); context.setSession(workContext.getSession()); context.setVdbName("test"); //$NON-NLS-1$ context.setVdbVersion(1); context.setQueryProcessorFactory(new QueryProcessorFactoryImpl(dtm.getBufferManager(), dtm, new DefaultCapabilitiesFinder(), null, metadata)); workItem = TestDQPCoreRequestHandling.addRequest(rm, original, requestID, null, workContext); context.setWorkItem(workItem); AtomicRequestMessage request = new AtomicRequestMessage(original, workContext, nodeId); request.setCommand(command); request.setConnectorName("FakeConnectorID"); //$NON-NLS-1$ request.setCommandContext(context); return request; }