Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
控制单个请求可以运行的最长时间。此选项可用于防止连接长时间消耗大量服务器资源。
整数,0 到 86400(一天),以秒为单位
0
当此选项设置为 0 时,请求不超时。
如果请求花费的时间大约超出 request_timeout 秒(挂钟时间而非 CPU 时间),则该请求会中断,并会为用户返回一个错误。返回的错误为 SQLE_REQUEST_TIMEOUT:[请求因超时而中断]。如果请求被阻塞,并且 blocking_timeout 选项设置为 0,则在返回阻塞错误(例如 SQLE_LOCKED:[用户 '%1' 锁定了 '%2' 中的行])之前,该请求最多可保持阻塞 request_timeout 秒。
无法将范围 1 至 14 中的值指定为用户选项或 PUBLIC 选项,但是可指定为临时选项。如果连接花费的时间很长(例如,由于复杂的登录过程),则这样做会防止将用户锁在数据库服务器之外。
此选项由数据库客户端和 HTTP/HTTPS 请求两者使用。请注意,在存储过程或 HTTP/HTTPS 请求中设置该选项对当前请求没有影响,因为已使用请求开始时的选项值。
设置 request_timeout 公共选项时应小心,因为这可能会使具有长时间运行的请求的应用程序(例如 dbvalid、dbbackup 和 dbunload)失败。此外,设置 request_timeout 时,不使用大量服务器资源但能被其他用户阻塞的应用程序也可能失败。解决此类问题的一个方法是,仅对某些应用程序根据连接的 APPINFO 值在登录过程中设置相应 request_timeout 选项。
如果每个请求计算速度都很快(例如在读取包含很多行的结果集时),则设置此选项可能不会防止应用程序使用大量服务器资源。