使用“编辑连接池高级属性”页面可以指定一些属性,帮助诊断连接泄漏和提高易用性。
“编辑连接池高级属性”页面包含以下选项。
用于恢复所有设置的默认值的按钮。
连接池的名称。名称是只读字段。您只有在创建新的 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。
两次尝试创建连接之间的时间间隔(以秒为单位)。默认值为 10。仅在“创建重试尝试”值大于 0 时才使用该属性。
如果启用此选项,则仅在使用连接时,才将物理连接与逻辑连接关联。当完成事务并且结束组件方法时,对连接取消关联,这有助于重新使用物理连接。默认情况下禁用此选项。
如果启用此选项,则仅当在方法中实际使用某个资源时,才将该资源登记到事务。默认情况下禁用此选项。
如果启用此选项,则将连接与线程关联,从而当同一线程需要使用连接时,能够重复使用已与该线程关联的连接,因此不会导致产生从池中获取连接的系统开销。默认情况下禁用此选项。
如果启用此选项,则从池中选择的连接应与具有特定凭证的连接相匹配。如果连接池由具有多个用户凭证的应用程序使用,则必须启用此选项。如果管理员知道池中的连接始终同构,因此从池中选择的连接不需要由资源适配器进行匹配,则可以安全地禁用此选项。默认情况下禁用此选项。
池可以重新使用连接的次数。连接在重复使用指定的次数后将被关闭。通过限制可以重复使用连接的次数,可在应用程序没有关闭语句的情况下避免语句泄漏。值为 0 表示已禁用此属性。默认值为 0。
如果启用此选项,将要求进行连接验证,允许服务器在出现故障时重新连接。
GlassFish Server 可以通过以下方式验证数据库连接。
GlassFish Server 通过调用 con.getAutoCommit 或 con.getMetaData 方法来验证连接。
注 - 许多 JDBC 驱动程序都会高速缓存这些调用的结果。因此,使用这些调用可能无法始终提供可靠的验证。请与驱动程序供应商进行核实,以确定这些调用是否被高速缓存。
GlassFish Server 使用由“验证类名”字段中的自定义实现类指定的用户定义验证机制。
应用程序将查询指定的数据库表。表必须存在并且可以访问,但其中不必含有任何行。请勿使用包含许多行的现有表或已被经常访问的表。
用于验证的数据库表的名称。仅当“验证方法”设置为 table 时,此字段才适用。
自定义验证实现类名。仅当“验证方法”设置为 custom-validation 时,此字段才适用。提供的类名必须是 GlassFish Server 可以访问的。指定的类必须实现 org.glassfish.api.jdbc.ConnectionValidation 接口。
如果启用此选项,则 GlassFish Server 将在任何连接失败时关闭池中的所有连接并重新建立这些连接。如果禁用此选项,则仅在使用各个连接时才重新建立这些连接。默认情况下禁用此选项。
如果启用此选项,则池可由非组件调用方(如 Servlet 过滤器和第三方持久性管理器)使用。在事务结束时,容器不会自动关闭非组件调用方获取的连接。这些连接必须由调用方显式关闭。默认情况下禁用此选项。