Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 数据库选项 » 数据库选项简介 » 按字母顺序排列的选项列表

 

request_timeout 选项 [数据库]

控制单个请求可以运行的最长时间。此选项可用于防止连接长时间消耗大量服务器资源。

允许值

整数,0 到 86400(一天),以秒为单位

缺省值

0

注释

当此选项设置为 0 时,请求不超时。

如果请求花费的时间大约超出 request_timeout 秒(挂钟时间而非 CPU 时间),则该请求会中断,并会为用户返回一个错误。返回的错误为 SQLE_REQUEST_TIMEOUT:[请求因超时而中断]。如果请求被阻塞,并且 blocking_timeout 选项设置为 0,则在返回阻塞错误(例如 SQLE_LOCKED:[用户 '%1' 锁定了 '%2' 中的行])之前,该请求最多可保持阻塞 request_timeout 秒。

不允许使用用户和公共值 1 到 14。如果连接花费的时间很长(例如,由于复杂的登录过程),则这样做会防止将用户锁在数据库服务器之外。

此选项由数据库客户端和 HTTP/HTTPS 请求两者使用。请注意,在存储过程或 HTTP/HTTPS 请求中设置该选项对当前请求没有影响,因为已使用请求开始时的选项值。

设置 request_timeout 公共选项时应小心,因为这可能会使具有长时间运行的请求的应用程序(例如 dbvalid、dbbackup 和 dbunload)失败。此外,设置 request_timeout 时,不使用大量服务器资源但能被其他用户阻塞的应用程序也可能失败。解决此类问题的一个方法是,仅对某些应用程序根据连接的 APPINFO 值在登录过程中设置相应 request_timeout 选项。

如果每个请求计算速度都很快(例如在读取包含很多行的结果集时),则设置此选项可能不会防止应用程序使用大量服务器资源。

另请参见