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 服务器 - 数据库管理 » 启动并连接到数据库 » SQL Anywhere 数据库连接

 

连接池

连接池可以提高与数据库服务器建立多个简短连接的应用程序的性能。如果对连接启用连接池,当断开连接时,连接会自动进行高速缓存且可在应用程序重新连接时重复使用。通过 ConnectionPool (CPOOL) 连接参数控制连接池。当应用程序通过同一个连接字符串进行了指定数量的连接后,连接会被加入池中。

应用程序必须通过同一个连接字符串进行五个连接,连接才能进行高速缓存。连接名可以每次不同,但所有其它连接参数都必须相同,才能重复使用被高速缓存的连接。

如果应用程序进程再次连接且存在可用于相同连接字符串的高速缓存连接,则会重复使用高速缓存的连接。连接会在 ConnectionPool (CPOOL) 连接参数所指定的时间(缺省情况下为 60 秒)内保持高速缓存状态。

如果高速缓存的连接会更改应用程序的行为,则不会被重复使用。例如,以下情况下,高速缓存的连接不会被重复使用:

  • 对于无连接时自动停止的数据库。

  • 禁用连接。

  • 数据库服务器达到连接限制。

  • 口令发生更改。

为确保连接池对应用程序是透明的,如果高速缓存连接时发生错误则会断开连接。如果在尝试重复使用高速缓存的连接时发生错误,则数据库服务器会尝试正常连接。

如果连接断开且尚未达到 CPOOL 连接参数指定的最大连接数,此连接将被放入高速缓存中。连接被重新初始化,高速缓存中的连接仍保持与数据库服务器的连通状态,即使应用程序已将其断开。连接的清除和重新初始化包括以下活动:

  • 回退所有未完成的事务。

  • 删除临时表、临时函数和变量。

  • 重置连接选项和连接计数器。

  • 递减和递增数据库服务器连接计数。如果带有高速缓存的连接的数据库服务器关闭时存在活动的连接,您不会获得通知。

  • 执行所有定义的断开连接和连接事件。

  • 执行 login_procedure 数据库选项并验证登录策略。

  • 重置连接 ID。

 将 SQL Anywhere 连接池和其它连接池产品一同使用
 连接池和只读向外扩展
 另请参见