[asterisk-users] Asterisk Realtime unixODBC timeout?

Tilghman Lesher tilghman at mail.jeffandtilghman.com
Fri Jan 11 18:39:10 CST 2008


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



More information about the asterisk-users mailing list