On Thursday 10 January 2008 16:52:11 Norman Franke wrote:
> How does one get asterisk to timeout realtime request via res_odbc to
> unixODBC? I've set timeouts as appropriate for freetds (which
> unixODBC is using.) However, it doesn't seem to work. It takes over 3
> minutes to timeout a connection and queries never seem to timeout, so
> a channel waiting on a query never terminates.
>
> I did notice that res_odbc.c never sets a timeout on the query using
> something like this:
>
> SQLSetStmtAttr( hstmt, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER)10, 0 );
>
> Has anyone tested this? Is it just failing for FreeTDS connections?
> (I don't have anything else.)
I'm hesitant to implement a timeout like this without making the value
settable by the user in some way, and there isn't a good way to do that
from the res_odbc level (especially since some queries, especially from
func_odbc, could take a good period of time). The right place to set
statement attributes like this would be in the prepare callback, which is
a little better, because the timeout can be adapted to the particular
query which is being executed (shorter for realtime, longer for custom
queries).
--
Tilghman
___
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users