使用“编辑连接池高级属性”页可以指定一些属性,以帮助诊断连接泄漏和提高易用性。
“编辑连接池高级属性”页包含以下选项。
用于将具有默认值的设置还原为其默认值的按钮。没有默认值的设置不发生更改。
连接池的名称。名称是只读字段。您只有在创建新的 JDBC 连接池时才能指定连接池名称。
以秒为单位的一段时间,经过这段时间后,将终止运行时间异常长的查询。GlassFish Server 将对创建的语句设置 QueryTimeout
。值为 -1 表示已禁用此选项。默认值为 -1。
要使用 LRU (最近最少使用) 高速缓存机制来高速缓存的语句数。如果值为 0,则将禁用语句高速缓存。默认值为 0。
每次在池中创建 (不是重复使用) 连接时要执行的 SQL 字符串。执行此字符串可以初始化连接的状态。
逗号分隔的监听程序实现类名列表,该列表指定将跟踪应用程序执行的 SQL 语句。监听程序类必须实现 org.glassfish.api.jdbc.SQLTraceListener
接口。使用监听程序可以轻松地过滤 SQL 语句的日志消息,并帮助管理员分析语句。
如果启用此选项,则应用程序将获取 Statement、PreparedStatement、CallableStatement、ResultSet、DatabaseMetaData 的包装 JDBC 对象。默认情况下启用此选项。
启用池的连接共享。默认情况下启用此选项。
指定连续请求验证连接 (最多一次) 之间的时间间隔 (秒)。将该属性设置为适当的值可以最大程度减少连接的验证请求数。默认值为 0,表示未启用该属性。
用于在连接池中跟踪连接泄漏的时间长度 (秒)。使用此字段可以检测应用程序的潜在连接泄漏。如果应用程序未在指定时间段内将连接返回到池,则假定该连接可能发生了泄漏,并将记录调用方的堆栈跟踪。如果值为 0,则表示已禁用连接泄漏跟踪。默认值为 0。
使用此字段和“泄漏回收”可以避免应用程序的潜在连接泄漏。
如果启用此选项,则泄漏的连接将在泄漏连接跟踪完成后还原到池中。默认情况下禁用此选项。
用于在连接池中跟踪语句泄漏的时间长度 (秒)。使用此字段可以检测应用程序的潜在语句泄漏。如果应用程序未在指定时间段内将语句返回到池,则假定该语句可能发生了泄漏,并将记录调用方的堆栈跟踪。如果值为 0,则表示已禁用语句泄漏跟踪。默认值为 0。
使用此字段和“语句泄漏回收”可以避免应用程序的潜在连接泄漏。
如果启用此选项,则泄漏的语句将在泄漏语句跟踪完成后还原到池中。默认情况下禁用此选项。
当创建新的连接失败后,进行尝试的次数。如果值为 0,则表示不会尝试再次创建连接。默认值为 0。
两次尝试创建连接之间的时间间隔 (秒)。默认值为 10。仅当“创建重试尝试次数”的值大于 0 时才使用此属性。
如果启用此选项,则仅在使用连接时,才将物理连接与逻辑连接关联。当完成事务处理并且结束组件方法时,对连接取消关联,这有助于重新使用物理连接。默认情况下禁用此选项。
如果启用此选项,则仅当在方法中实际使用某个资源时,才将该资源登记到事务处理。默认情况下禁用此选项。
如果启用此选项,则将连接与线程关联,从而当同一线程需要使用连接时,能够重复使用已与该线程关联的连接,因此不会导致产生从池中获取连接的系统开销。默认情况下禁用此选项。
如果启用此选项,则从池中选择的连接应与具有特定身份证明的连接相匹配。如果连接池由具有多个用户身份证明的应用程序使用,则必须启用此选项。如果管理员知道池中的连接始终同构,因此从池中选择的连接不需要由资源适配器进行匹配,则可以安全地禁用此选项。默认情况下禁用此选项。
池可以重新使用连接的次数。连接在重复使用指定的次数后将被关闭。通过限制可以重复使用连接的次数,可在应用程序没有关闭语句的情况下避免语句泄漏。值为 0 表示已禁用此属性。默认值为 0。
如果启用此选项,将要求进行连接验证,允许服务器在出现故障时重新连接。
GlassFish Server 可以通过以下方式验证数据库连接。
auto-commit
和 metadata
GlassFish Server 通过调用 con.getAutoCommit
或 con.getMetaData
方法来验证连接。
注:
许多 JDBC 驱动程序都会高速缓存这些调用的结果。因此,使用这些调用可能无法始终提供可靠的验证。请与驱动程序提供方进行核实,以确定这些调用是否被高速缓存。custom-validation
GlassFish Server 使用由“验证类名”字段中的定制实现类指定的用户定义验证机制。
table
应用程序将查询指定的数据库表。表必须存在并且可以访问,但其中不必含有任何行。请勿使用包含许多行的现有表或已被经常访问的表。
用于验证的数据库表的名称。仅当“验证方法”设置为 table
时,此字段才适用。可以从下拉列表中选择名称,或者键入名称。
定制验证实现类名。仅当“验证方法”设置为 custom-validation
时,此字段才适用。提供的类名必须可供 GlassFish Server 访问。指定类必须实现 org.glassfish.api.jdbc.ConnectionValidation
接口。可以从下拉列表中选择名称,或者键入名称。
如果启用此选项,则 GlassFish Server 将在任何连接失败时关闭池中的所有连接并重新建立这些连接。如果禁用此选项,则仅在使用各个连接时才重新建立这些连接。默认情况下禁用此选项。
如果启用此选项,则池可由非组件调用方 (例如 Servlet 过滤器和第三方持久性管理器) 使用。在事务处理结束时,容器不会自动关闭非组件调用方获取的连接。这些连接必须由调用方显式关闭。默认情况下禁用此选项。