You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Miguel Oliveira <mi...@gmail.com> on 2016/09/05 14:54:34 UTC

SqlTimeOutException in JDBC Adapter

Hi,

I'm using the Apache Calcite JDBC adapter to query to Oracle database but
i'm getting some timeout exceptions when i need to query a table with many
data. How can I turn off the calcite JDBC driver timeout (setting the
timeout to zero, for example)?

Stacktrace:
Caused by: java.sql.SQLTimeoutException: ORA-01013: user requested cancel
of current operation

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:876)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(
OracleStatement.java:1175)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
OracleStatement.java:1288)
at oracle.jdbc.driver.OracleStatement.executeQuery(
OracleStatement.java:1498)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(
OracleStatementWrapper.java:406)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(
DelegatingStatement.java:208)

Best regards.

Re: SqlTimeOutException in JDBC Adapter

Posted by Julian Hyde <jh...@apache.org>.
You’re right. I suppose removing line 139 would solve your problem. We should probably add a parameter to the JDBC adapter called jdbcStatementTimeout, default “10s”, where a negative value means "don’t set a timeout” (i.e. use the driver’s default timeout) and 0 means no timeout.

Julian

> On Sep 5, 2016, at 3:19 PM, Miguel Oliveira <mi...@gmail.com> wrote:
> 
> Yes, I've tried by setting the timeout in the url driver, but without
> success. Could the problem be related with this line: https://github.com/apache/calcite/blob/857c06b6744840daac52f7a3ab7f6e0d32c90e41/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java#L139?
> 
> I've put a breakpoint in this line and this is called every time i execute
> a query. By connection is created like this: this https://github.com/apache/calcite/blob/69839c3798c8221081d80edaaca27a310ce9005e/core/src/test/java/org/apache/calcite/test/CalciteAssert.java#L1117.
> 
> 2016-09-05 18:56 GMT+01:00 Julian Hyde <jh...@apache.org>:
> 
>> Does the Oracle JDBC driver support timeout as one of the parameters in
>> the URL?
>> 
>> Julian
>> 
>>> On Sep 5, 2016, at 7:54 AM, Miguel Oliveira <
>> migueloliveira1990@gmail.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I'm using the Apache Calcite JDBC adapter to query to Oracle database but
>>> i'm getting some timeout exceptions when i need to query a table with
>> many
>>> data. How can I turn off the calcite JDBC driver timeout (setting the
>>> timeout to zero, for example)?
>>> 
>>> Stacktrace:
>>> Caused by: java.sql.SQLTimeoutException: ORA-01013: user requested cancel
>>> of current operation
>>> 
>>> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
>>> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
>>> at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
>>> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
>>> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
>>> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
>>> at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
>>> at oracle.jdbc.driver.T4CStatement.executeForDescribe(
>> T4CStatement.java:876)
>>> at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(
>>> OracleStatement.java:1175)
>>> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
>>> OracleStatement.java:1288)
>>> at oracle.jdbc.driver.OracleStatement.executeQuery(
>>> OracleStatement.java:1498)
>>> at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(
>>> OracleStatementWrapper.java:406)
>>> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(
>>> DelegatingStatement.java:208)
>>> 
>>> Best regards.
>> 
>> 


Re: SqlTimeOutException in JDBC Adapter

Posted by Miguel Oliveira <mi...@gmail.com>.
Yes, I've tried by setting the timeout in the url driver, but without
success. Could the problem be related with this line: https://github.com/
apache/calcite/blob/857c06b6744840daac52f7a3ab7f6e
0d32c90e41/core/src/main/java/org/apache/calcite/runtime/
ResultSetEnumerable.java#L139?

I've put a breakpoint in this line and this is called every time i execute
a query. By connection is created like this: this https://github.com/
apache/calcite/blob/69839c3798c8221081d80edaaca27a
310ce9005e/core/src/test/java/org/apache/calcite/test/
CalciteAssert.java#L1117.

2016-09-05 18:56 GMT+01:00 Julian Hyde <jh...@apache.org>:

> Does the Oracle JDBC driver support timeout as one of the parameters in
> the URL?
>
> Julian
>
> > On Sep 5, 2016, at 7:54 AM, Miguel Oliveira <
> migueloliveira1990@gmail.com> wrote:
> >
> > Hi,
> >
> > I'm using the Apache Calcite JDBC adapter to query to Oracle database but
> > i'm getting some timeout exceptions when i need to query a table with
> many
> > data. How can I turn off the calcite JDBC driver timeout (setting the
> > timeout to zero, for example)?
> >
> > Stacktrace:
> > Caused by: java.sql.SQLTimeoutException: ORA-01013: user requested cancel
> > of current operation
> >
> > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
> > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> > at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
> > at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
> > at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
> > at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> > at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
> > at oracle.jdbc.driver.T4CStatement.executeForDescribe(
> T4CStatement.java:876)
> > at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(
> > OracleStatement.java:1175)
> > at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
> > OracleStatement.java:1288)
> > at oracle.jdbc.driver.OracleStatement.executeQuery(
> > OracleStatement.java:1498)
> > at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(
> > OracleStatementWrapper.java:406)
> > at org.apache.commons.dbcp.DelegatingStatement.executeQuery(
> > DelegatingStatement.java:208)
> >
> > Best regards.
>
>

Re: SqlTimeOutException in JDBC Adapter

Posted by Julian Hyde <jh...@apache.org>.
Does the Oracle JDBC driver support timeout as one of the parameters in the URL?

Julian

> On Sep 5, 2016, at 7:54 AM, Miguel Oliveira <mi...@gmail.com> wrote:
> 
> Hi,
> 
> I'm using the Apache Calcite JDBC adapter to query to Oracle database but
> i'm getting some timeout exceptions when i need to query a table with many
> data. How can I turn off the calcite JDBC driver timeout (setting the
> timeout to zero, for example)?
> 
> Stacktrace:
> Caused by: java.sql.SQLTimeoutException: ORA-01013: user requested cancel
> of current operation
> 
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
> at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:876)
> at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(
> OracleStatement.java:1175)
> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
> OracleStatement.java:1288)
> at oracle.jdbc.driver.OracleStatement.executeQuery(
> OracleStatement.java:1498)
> at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(
> OracleStatementWrapper.java:406)
> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(
> DelegatingStatement.java:208)
> 
> Best regards.