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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 编程 » HTTP Web 服务 » 将 SQL Anywhere 用作 HTTP Web 服务器 » 在 HTTP Web 服务器中管理 Web 服务

 

Web 服务的连接池

每个公开了 Web 服务的数据库都可以访问数据库连接池。池用用户名进行分组,从而在给定 USER 子句下定义的所有服务共享同一个连接池组。

第一次执行查询的服务请求必须经历优化阶段才能建立执行计划。如果计划可以高速缓存并重新使用,则可以为后续执行跳过优化阶段。HTTP 连接池通过尽可能地重新使用数据库连接中的计划高速缓存来利用它们。每个服务都维护自己要优化重用的连接列表。然而,在负载高峰期间,服务会在同一连接用户组中挪用使用最少的连接。

随着时间推移,给定的连接可以获得高速缓存的计划,这些计划能够为多个服务的执行优化性能。有关高速缓存计划设置的详细信息,请参见max_plans_cached 选项

在连接池中,给定服务的 HTTP 请求会尝试从池中获取数据库连接。与 HTTP 会话不同,池中的连接可以通过重置连接范围环境(例如连接范围变量和临时表)来清除。

就授权而言,存放在 HTTP 连接池中的数据库连接不计为使用中的连接。从池中获取连接时,它们将计为授权连接。当 HTTP 请求在从池中获取连接时,如果超过了许可的限制,将返回 503 Service Temporarily Unavailable 状态。

当定义为 AUTHORIZATION OFF 时,Web 服务只能使用一个连接池。有关详细信息,请参见CREATE SERVICE 语句 [HTTP Web 服务]CREATE SERVICE 语句 [SOAP Web 服务]

当数据库和连接选项出现变动时,池中的数据库连接不会更新。

 另请参见