新建 JDBC 连接池:添加连接池可选设置
另请参见
“新建文件”向导的此页面用于定义 JDBC 连接,以便在其中修改池设置、事务隔离以及连接验证的缺省值。最好保留这些设置的缺省值,以后在连接池属性窗口中修改它们。
可以在此屏幕中修改以下设置:
池设置
池中包含一组物理数据库连接。当应用程序请求连接时,则从池中删除该连接;当应用程序释放连接时,则将该连接重新放回到池中。
- 稳定池大小。一个整数值,表示任意给定时刻池中所具有的连接数。通常,这是池中的最小连接数。
- 最大池大小。一个整数值,表示池中所具有的最大连接数。
- 最长等待时间。一个整数值,表示最长等待时间(以毫秒为单位)。
- 池大小调整数量。在连接池收缩至最小池大小时,会分批调整其大小。此数值表示池大小调整批次中的连接数。批量过大可能会延迟连接的循环使用,而批量过小可能会降低效率。
- 空闲超时(秒)。一个整数值,表示最大空闲超时长度(以秒为单位)。这是连接在池中保持空闲状态的时间量。持续空闲超过此时间的连接将被关闭。
事务隔离
由于很多用户通常会同时访问数据库,因此当一个事务尝试读取数据时,另一个事务可能正在更新相同的数据。事务隔离级别定义了正在更新的数据对其他事务的可见程度。有关隔离级别的详细信息,请参见数据库供应商的文档。
- 事务隔离。从下拉列表中选择以下某个选项:“JDBC 驱动程序缺省值”、“读取未提交数据”、“读取已提交数据”、“可重复读取”和“可序列化”。
- 保证隔离级别。设置为 "true" 或 "false"。如果设置为 "true",则从池中提取的所有连接具有相同的隔离级别。例如,如果上次使用时以编程方式更改了连接的隔离级别(使用 con.setTransactionIsolation),此机制会将状态改回指定的隔离级别。
连接验证
在将连接传递给应用程序之前,应用服务器可能会对连接进行验证。如果数据库由于网络故障或数据库服务器崩溃而无法使用,应用服务器可通过验证自动重新建立数据库连接。对连接进行验证会产生额外的开销,并且使性能略微下降。
- 需要连接验证。设置为 "true" 或 "false"。如果设置为 "true",则在将连接发送到应用程序之前,应用服务器将对其进行验证。在实施验证时,应用服务器可自动恢复因网络或数据库服务器故障而失败的数据库连接。
- 验证方法。从下拉列表中选择验证方法。共有三种验证方法:自动提交、meta 数据和表。
- 自动提交和 meta 数据。应用服务器通过调用 con.getAutoCommit() 和 con.getMetaData() 方法来验证连接。然而,由于可能会缓存这些调用的结果,因此它们并非总能提供可靠的验证。
- 表。应用程序使用以下查询语句来查询指定的数据库表:select (count *) from <表名>。该表必须存在且可访问,但可以不包含任何行。不要使用行数过多的现有表或已频繁访问过的表。
- 表名称。这是连接验证表的名称。如果选择表作为验证方法,请设置表名称。
- 停止所有连接。设置为 "true" 或 "false"。如果设置为 "true",并且单个连接失败,应用服务器将关闭池中的所有连接,然后重新建立这些连接。如果设置为 "false",仅重新建立个别连接。
- 非事务连接。设置为 "true" 或 "false"。如果设置为 "true",则不会自动在事务上下文中列出和删除连接。当事务仍在进行时(在事务提交之前),可以使用非事务连接查询数据库。非事务连接不会自动返回到池,并且需要由应用程序明确关闭。缺省值为 "false"。
- 允许非组件调用方。设置为 "true" 或 "false"。如果设置为 "true",则非 Java EE 组件(EJB 和 Servlet 以外的组件)可以远程访问连接池。返回的连接将自动列在从事务管理器获取的事务上下文中。缺省值为 "false"。
- 另请参见
- 定义连接池
- 选择数据库连接
- 添加连接池属性
法律声明