按下下面的Advanced Options "Show",设置详细的配置
下面是JNDI的自动回收设置,比较重要,调几个重要的参数,其他的默认
Test Frequency:3600(测试频率,这个会消耗资源。这个看你的项目需要,一般代码写得比较好的可以设置长点时间)
把下面三个都打上勾。通过测试,发现连接没关的就会被回收(详细说明可以看下面的参数说明)
Test Reserved Connections
Test Created Connections
Test Released Connections
网上有些人说设置这些参数后一定的时间会出现java.lang.OutOfMemoryError的错误
解决的方法就是调大JVM的内存,在启动时对jvm设置内存限度
通过修改commom\bin\commEnv.cmd文件来增加内存分配
修改的部分如下:
:bea
if "%PRODUCTION_MODE%" == "true" goto bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m//这些看你内存定1G的就设置=-Xms256m -Xmx512m
goto continue
:sun
if "%PRODUCTION_MODE%" == "true" goto sun_prod_mode
set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m//这个就解决了java.lang.OutOfMemoryError的错误
goto continue
将这里的内存分配修改后见效。
连接属性参数说明:
* Initial Capacity:创建连接池时所创建的数据库连接的数目。
* Maximum Capacity: 连接池中连接的最大数目。
* Capacity Increment: 连接池容量在最大容量限制范围内的增量。
* LoginDelay: 在创建每个物理数据库连接之前要延迟的秒数。
* Allow Shrinking: 将该项设置为true时,如果没有使用额外的连接,则允许连接池把容量减小到InitialCapacity。
* Shrink Frequency: 在减小连接池容量之前要等待的秒数。如果将Shrink Frequency设置为true,那么也必须将Allow Shrinking设置为true。
* Test Frequency: 数据库连接测试之间间隔的秒数。在每个Refresh Period时间间隔之后,如果设置了TestTableName,就会使用TestTableName测试未使用的数据库连接。
* Test Reserved Connections: 如果选择了这个选项,服务器会在把连接提供给客户端之前对其进行测试。
* Test Created Connections: 如果选择了这个选项,就会在创建一个JDBC连接之后和在把它添加到JDBC连接池中的可用连接列表之前,对该JDBC连接进行测试。
* Test Released Connections: 如果选择了这个选项,服务器就会在把连接返回给连接池之前对其进行测试。
* Test Table Name: 用于JDBC连接测试的数据库表名。如果指定了Test Frequency,并且选择了Test Reserved Connections、Test Created Connections或Test Released Connections,则Table Name是必需的