@Override public void updateStatus(QueryContext context) throws LensException { log.debug("GetStatus: {}", context.getQueryHandle()); if (context.getDriverStatus().isFinished()) { return; } OperationHandle hiveHandle = getHiveHandle(context.getQueryHandle()); try { // Get operation status from hive server log.debug("GetStatus hiveHandle: {}", hiveHandle); fetchLogs(hiveHandle); updateDriverStateFromOperationStatus(hiveHandle, context.getDriverStatus()); } catch (Exception e) { log.error("Error getting query status", e); handleHiveServerError(context, e); throw new LensException("Error getting query status", e); } }
@Override public void updateStatus(QueryContext context) throws LensException { log.debug("GetStatus: {}", context.getQueryHandle()); if (context.getDriverStatus().isFinished()) { return; } OperationHandle hiveHandle = getHiveHandle(context.getQueryHandle()); try { // Get operation status from hive server log.debug("GetStatus hiveHandle: {}", hiveHandle); fetchLogs(hiveHandle); updateDriverStateFromOperationStatus(hiveHandle, context.getDriverStatus()); } catch (Exception e) { log.error("Error getting query status", e); handleHiveServerError(context, e); throw new LensException("Error getting query status", e); } }
@Override public void run() { SessionState.setCurrentSessionState(state); for (int i = 0; i < 1000; i++) { try { thrDriver.updateStatus(qctx); if (qctx.getDriverStatus().isFinished()) { log.info("@@ " + handle.getHandleId() + " >> " + qctx.getDriverStatus().getState()); break; } Thread.sleep(POLL_DELAY); } catch (LensException e) { log.error("Got Exception " + e.getCause(), e); errCount.incrementAndGet(); break; } catch (InterruptedException e) { log.error("Encountred Interrupted exception", e); break; } } } });
/** * Wait for async query. * * @param ctx the ctx * @param driver the driver * @throws Exception the exception */ private void waitForAsyncQuery(QueryContext ctx, HiveDriver driver) throws Exception { while (true) { driver.updateStatus(ctx); System.out.println("#W Waiting for query " + ctx.getQueryHandle() + " status: " + ctx.getDriverStatus().getState()); assertNotNull(ctx.getDriverStatus()); if (ctx.getDriverStatus().isFinished()) { assertTrue(ctx.getDriverStatus().getDriverFinishTime() > 0); break; } System.out.println("Progress:" + ctx.getDriverStatus().getProgressMessage()); Thread.sleep(1000); assertTrue(ctx.getDriverStatus().getDriverStartTime() > 0); } }
context.setExecuteTimeoutMillis(executeTimeoutMillis); driver.executeAsync(context); while (!context.getDriverStatus().isFinished()) { Thread.sleep(1000);
driver.updateStatus(context); System.out.println("Query: " + handle + " Status: " + context.getDriverStatus()); if (context.getDriverStatus().isFinished()) { assertEquals(context.getDriverStatus().getState(), DriverQueryState.SUCCESSFUL); assertEquals(context.getDriverStatus().getProgress(), 1.0);
driver.registerForCompletionNotification(ctx, 0, listener); while (!ctx.getDriverStatus().isFinished()) { driver.updateStatus(ctx); System.out.println("Query: " + handle + " Status: " + ctx.getDriverStatus());
/** * Test connection close for failed queries. * * @throws Exception the exception */ @Test public void testConnectionCloseForFailedQueries() throws Exception { createTable("invalid_conn_close"); insertData("invalid_conn_close"); final String query = "SELECT * from invalid_conn_close2"; QueryContext ctx = new QueryContext(query, "SA", new LensConf(), baseConf, drivers); for (int i = 0; i < JDBC_POOL_MAX_SIZE.getDefaultValue(); i++) { executeAsync(ctx); driver.updateStatus(ctx); System.out.println("@@@@ QUERY " + (i + 1)); } String validQuery = "SELECT * FROM invalid_conn_close"; QueryContext validCtx = createQueryContext(validQuery); System.out.println("@@@ Submitting valid query"); executeAsync(validCtx); // Wait for query to finish while (true) { driver.updateStatus(validCtx); if (validCtx.getDriverStatus().isFinished()) { break; } Thread.sleep(1000); } driver.closeQuery(validCtx.getQueryHandle()); }
checkConfigured(); JdbcQueryContext ctx = getQueryContext(context.getQueryHandle()); if (ctx.getLensContext().getDriverStatus().isFinished()) { if (!context.getDriverStatus().isFinished()) {
checkConfigured(); JdbcQueryContext ctx = getQueryContext(context.getQueryHandle()); if (ctx.getLensContext().getDriverStatus().isFinished()) { if (!context.getDriverStatus().isFinished()) {