进入WebLogic后台,配置数据库连接池。因为我的项目数据库是ORACLE,那就以Oracle的配置作为示例:
我的示例weblogic是8.x,其他版本都同理,找到参数后即可
进入后台后,单击左边的mydomain—>Services—>JDBC—>Connection Pools
新建我就不说了,在我的文章里面有weblogic的数据源连接create
9.x的要解锁,那就先解锁。点击你想设置的数据源的名称进去。进去后点击上面的菜单Connections
看到参数设置了吧。
Initial Capacity:100 (初始化容器的连接数)
Maximum Capacity:1000 (容器中最大的连接数1000,如果超过/还没到1000就会报超出最大连接的错误,原因你的Oracle安装数据库的时候其池没设置大小,现在你也可以设置。设置方法:找到Oracle的init.ora文件这个文件一般在oracle/admin/数据库SID/pfile里面。找到 large_pool_size这一句,把这一句删除,那就不受限制了。注意:没受限制的情况下不要调这个参数太大了,35000就OK了,太大的时候数据库会承受不起)
Capacity Increment:15 (一次增加多少个connection)
Statement Cache Size:50 (缓存大小)
按下下面的Advanced Options "Show",设置详细的配置
下面是JNDI的自动回收设置,比较重要,调几个重要的参数,其他的默认
Test Frequency:3600(测试频率,这个会消耗资源。这个看你的项目需要,一般代码写得比较好的可以设置长点时间)
把下面三个都打上勾。通过测试,发现连接没关的就会被回收(详细说明可以看下面的参数说明)
Test Reserved Connections
Test Created Connections
Test Released Connections
Inactive Connection Timeout:60(无效连接超时!这个会在指定的时间内,回收无效连接)
网上有些人说设置这些参数后一定的时间会出现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是必需的
连接属性参数说明来源于网上,大家从你项目角度设置
最后别忘记点最下面的APPLY按钮