Search in sources :

Example 1 with Task

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());
}
Also used : Task(org.teiid.jdbc.EnhancedTimer.Task) Test(org.junit.Test)

Example 2 with Task

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;
}
Also used : ResultsFuture(org.teiid.client.util.ResultsFuture) Task(org.teiid.jdbc.EnhancedTimer.Task) ResultsMessage(org.teiid.client.ResultsMessage) TeiidException(org.teiid.core.TeiidException)

Aggregations

Task (org.teiid.jdbc.EnhancedTimer.Task)2 Test (org.junit.Test)1 ResultsMessage (org.teiid.client.ResultsMessage)1 ResultsFuture (org.teiid.client.util.ResultsFuture)1 TeiidException (org.teiid.core.TeiidException)1