use of org.teiid.jdbc.EnhancedTimer.Task in project teiid by teiid.
the class TestEnhancedTimer method testRemove.
@Test
public void testRemove() {
EnhancedTimer ct = new EnhancedTimer("foo");
SimpleCancelTask sct = new SimpleCancelTask();
Task tt = ct.add(sct, 20000);
Task tt1 = ct.add(sct, 20000);
assertTrue(tt.compareTo(tt1) < 0);
Task tt2 = ct.add(sct, 10000);
assertEquals(3, ct.getQueueSize());
tt.cancel();
tt1.cancel();
tt2.cancel();
assertEquals(0, ct.getQueueSize());
}
use of org.teiid.jdbc.EnhancedTimer.Task in project teiid by teiid.
the class StatementImpl method execute.
private ResultsFuture<ResultsMessage> execute(final RequestMessage reqMsg, boolean synch) throws SQLException, TeiidSQLException {
this.getConnection().beginLocalTxnIfNeeded();
this.currentRequestID = this.driverConnection.nextRequestID();
// Create a request message
if (this.payload != null) {
reqMsg.setExecutionPayload(this.payload);
} else {
reqMsg.setExecutionPayload(this.getMMConnection().getPayload());
}
reqMsg.setDelaySerialization(true);
reqMsg.setCursorType(this.resultSetType);
reqMsg.setFetchSize(this.fetchSize);
reqMsg.setRowLimit(this.maxRows);
reqMsg.setTransactionIsolation(this.driverConnection.getTransactionIsolation());
reqMsg.setSync(synch && useCallingThread());
// Get connection properties and set them onto request message
copyPropertiesToRequest(reqMsg);
reqMsg.setExecutionId(this.currentRequestID);
ResultsFuture.CompletionListener<ResultsMessage> compeletionListener = null;
if (queryTimeoutMS > 0 && (!synch || this.driverConnection.getServerConnection().isLocal())) {
final Task c = cancellationTimer.add(cancelTask, queryTimeoutMS);
compeletionListener = new ResultsFuture.CompletionListener<ResultsMessage>() {
@Override
public void onCompletion(ResultsFuture<ResultsMessage> future) {
c.cancel();
}
};
}
ResultsFuture<ResultsMessage> pendingResult = null;
try {
pendingResult = this.getDQP().executeRequest(this.currentRequestID, reqMsg);
} catch (TeiidException e) {
throw TeiidSQLException.create(e);
}
if (compeletionListener != null) {
pendingResult.addCompletionListener(compeletionListener);
}
return pendingResult;
}
Aggregations