`

weblogic数据库连接池相关参数说明

阅读更多

比较容易混淆的参数解释

 

1:Inactive Connection Timeout

这个参数很重要,是10以后的版本新加的,9版本没有,一般情况建议不要开启该参数,即使开启也尽可能要把数值设置大些,比如1800秒等。这个字段的具体官方解释在10.3.0.0的版本如下,在XX系统中实际反映的情况是,如果该参数设置为30(即:30S)的话,在大并发下会出现weblogic认为的leaked的连接,而且这时weblogic就会强制关闭这些连接回收,导致后续的应用获取连接时报connection has alreadly been closed的异常,但如果把该参数禁用(设为0s),用同样的大并发测试则一切正常,当连接池连接都被用时,连接请求会等待,超时会报取不到连接的异常,这些都是正常连接池的表现,这时在monitor中也没有出现显示Leaked 的连接。所以猜测Inactive Connection Timeout参数如果开启的话应该会影响weblogic的Leaked连接数的判断方式,这个回头做下试验。。。

 

 

Automatically Recovering Leaked Connections

A leaked connection is a connection that was not properly returned to the connection pool in the data source. To automatically recover leaked connections, you can specify a value for Inactive Connection Timeout on the JDBC Data Source: Configuration: Connection Pool page in the Administration Console. When you set a value for Inactive Connection Timeout, WebLogic Server will forcibly return a connection to the data source when there is no activity on a reserved connection for the number of seconds that you specify. When set to 0(the default value), this feature is turned off.

See the JDBC Data Source: Configuration: Connection Pool page in the Administration Console or see “ JDBCConnectionPoolParamsBean” in the WebLogic Server MBean Reference for more details about this option.

Note that the actual timeout could exceed the configured value for Inactive Connection Timeout. The internal data source maintenance thread runs every 5 seconds. When it reaches the Inactive Connection Timeout (for example 30 seconds), it checks for inactive connections. To avoid timing out a connection that was reserved just before the current check or just after the previous check, the server gives an inactive connection a “second chance.” On the next check, if the connection is still inactive, the server times it out and forcibly returns it to the data source. On average, there could be a delay of 50% more than the configured value.

 

2:connection reserve timeout

注意这个参数不是连接从连接池里取出以后用来执行SQL等其它操作时的生命周期时间,而是当从连接池取连接时如果池里的连接目前都正在被使用且池里的连接数已经达到上限时,这个取连接动作的超时时间,在这个时间内会一直等着,超过这个时间就会报a Connection Unavailable SQL Exception,如果不设置这个时间,那么出现连接达到上限还要取连接时会立即报a Connection Unavailable SQL Exception。具体看下面官方文档的解释:

 

 

Enabling Connection Requests to Wait for a Connection

JDBC data sources have two attributes that you can set to enable connection requests to wait for a connection from a data source: Connection Reserve Timeout (ConnectionReserveTimeoutSeconds) and Maximum Waiting for Connection (HighestNumWaiters). You use these two attributes together to enable connection requests to wait for a connection without disabling your system by blocking too many threads.

See the JDBC Data Source: Configuration: Connection Pool page in the Administration Console or see “ JDBCConnectionPoolParamsBean” in the WebLogic Server MBean Reference for more details about these options.

Also see “ Enable connection requests to wait for a connection” in the Administration Console Online Help.

 

Connection Reserve Timeout

When an application requests a connection from a data source, if all connections in the data source are in use and if the data source has expanded to its maximum capacity, the application will get a Connection Unavailable SQL Exception. To avoid this, you can configure the Connection Reserve Timeout value (in seconds) so that connection requests will wait for a connection to become available. After the Connection Reserve Timeout has expired, if no connection becomes available, the request will fail and the application will get aPoolLimitSQLException exception.

If you set Connection Reserve Timeout to -1, a connection request will timeout immediately if there is no connection available. If you set Connection Reserve Timeout to 0, a connection request will wait indefinitely. The default value is 10 seconds.

See “ Enable connection requests to wait for a connection” in the Administration Console Online Help.

官方连接

http://docs.oracle.com/cd/E12840_01/wls/docs103/jdbc_admin/index.html

 

--------------------------------------------------------------------------------------------------------------------------------

 

 

相关文档链接

http://middleware123.com/weblogic/docs100/perform/jdbctuning.html

 

http://topic.csdn.net/u/20080528/10/41c3e928-fddf-442f-bb32-969579d02ce3.html

 

 

 

Servers--JDBC--Data Sources--在右边点击相应的数据源--选择Configuration下面的Connection Pool选项卡(这里是该数据源的连接池具体配置)

1.URL:

这里配置的是数据库的连接字符串   如:jdbc:oracle:thin:@10.4.44.21:1521:airsm

2.Drive Class Name:

这里配置的是数据库的驱动类 如:oracle.jdbc.OracleDriver

3.Properties:

这里配的是哪一个用户使用该数据源 如:user=aires

4.Initial Capacity:

这里配的是初始化时的连接数(可配置如下:最小值: 0 ,最大值: 2147483647)

5.Maximum Capacity:

连接池中接点服务器连接的最大数目,不要设置连接池的Initial Capacity和Maximum Capacity为一样的数。这可能会导致出现两个Oracle的节点服务器,一个的CPU占用已经达到99%-100%,而另外一个服务器还是10%左右的情况(导致接点服务资源分配不均)

6.Capacity Increment:

连接池容量在最大容量限制范围内的增量(每次增加的连接数)(可配置如下:最小值0 最大值2147483647)

7.Statement Cache Type prepared statements:

缓存的策略有如下两个选项:

LRU:LRU算法在有新的语句到来时,将最不经常被用得语句调整出缓存

FIXED:FIXED算法为先进先出的算法

8.Statement Cache Size

宏语句设定的静态缓存,大小由JDBC连接池配置时指定,调整这个数值的大小,有利于提高系统的效率(可配置如下:最小值0 最大值1024)

下面还有一些高级配置:

1.Test Table Name 

这里是在我们配数据源的过程中weblogic自动给我们配上的默认为SQL SELECT 1 FROM DUAL作用是在每次连接前对该连接先进行测试,该选项可以不配置

2.

Seconds to Trust an Idle Pool Connection:

该参数设置的是已经被使用的连接在多长时间内再次被使用不需要测试该连接(单位:秒)

3.Inactive Connection Timeout: 

当application取得connection后,在所设定的时间内没有执行任何的动作,则此connection会被归还到connection pool(单位为:秒)

最小值: 0 最大值: 2147483647

4.Maximum Waiting for Connection

假如connection pool的connection都被application使用,当有新的request需要使用connection时,所等待connection的时间(单位为:秒)

5.Connection Reserve Timeout:

连接保留超时时间相当于session,如过在web.xml和weblogic中同时配置,服务器会以web.xml文件中的配置为准,忽略weblogic中同时配置,(单位为:秒)

6.Statement Timeout:

限制connection执行SQL statement的时间(最小:-1 最大:2147483647)(单位为:秒,为-1时则不受限制)

7.Pinned-To-Thread(启用需谨慎,对于并发量大的不推荐)

启用后:当application关闭connection后,connection并无会回到connection pool,而是被keep在thread里,因此假如application在同一个thread又需要使用connection时,可以马上取得

特点:不受限' Maximum Capacity'参数

启用前须确认系统可以承受大量的connection

8.Remove Infected Connections Enabled

启用后:当application关闭connection后,WebLogic Server会自动重新建立一个新的connection,并放回到connection pool

 

 

使用 Pinned-To-Thread 属性提高性能

要将应用程序保留数据源中数据库连接耗费的时间缩到最短,以及避免线程争用数据库连接,可将 Pinned-To-Thread 属性添加到数据源的“连接属性”列表中,然后将其值设置为 true

启用 Pinned-To-Thread 后,在应用程序首次使用某个执行线程保留连接时,WebLogic Server 会将数据源中的一个数据库连接固定到此线程。应用程序使用完该连接并调用 connection.close()(此方法在其他情况下将把连接返回数据源)时,WebLogic Server 将把该连接留给执行线程,不会将其返回数据源。当应用程序随后使用同一执行线程请求连接时,WebLogic Server 将提供该线程已保留的连接。当多个线程尝试同时保留一个连接时,该数据源上不会发生锁定冲突,对于尝试保留有限个数的数据库连接中同一个连接的线程,也没有冲突。

注意: 在此版本中,Pinned-To-Thread 功能对多数据源、Oracle RAC 和 IdentityPool 无效。如果出现连接故障,或连接标识不匹配,则这些功能依赖于将连接返回连接缓冲池后再重新将其获取的能力。

请参阅“管理控制台联机帮助”中的JDBC 数据源: 配置: 连接缓冲池

 

分享到:
评论

相关推荐

    详解:WebSphere中流行数据库连接池的配置

    WebSphere中流行数据库连接池的配置 本文介绍WebSphere下Oracle、SQL Server、Sybase、MySQL数据库连接池的配置方法,并给出相应调用连接池的示例。相对于Weblogic,WebSphere连接池的配置要稍微复杂一些,因为缺少...

    weblogic10.3性能优化参数配置

    一、Weblogic服务程序设置: 1、设置JDK内存: 2、设置线程数: 3、Weblogic数据库连接池连接数设置: 4、Weblogic的服务设置[配置\优化]:

    学生成绩管理系统 源码

    采用jsp+servlet+javabean,jsp负责少量的页面处理,以servlet为主。 ...详细介绍了jdbc的常用api以及数据库中的表的级联。...commons-collections.jar,commons-dbcp-1.1.jar,commons-pool-1.1.jar 数据库连接池

    JDBC 3.0数据库开发与设计

    4.7.1 连接池数据源(Connection PoolDataSource) 4.7.2 连接池处理事件 4.7.3 三层环境下的连接池操作 4.7.4 连接池和DataSource实现 4.7.5 包含连接池的数据源配置 4.7.6 池连接对象对于语句的重新利用 ...

    LyBBS『凌云论坛』系统

    对数据库我们采用了数据库连接池,用户可以在配置文件中配置不同的连接池或者不使用连接池,对表操作也采用了预处理、批处理、事务处理等多种方式,用户可以在配置文件中配置数据库连接参数,包括连接数,超过连接数...

    weblogic平台J2EE调优策略

    2.3.1 调整连接池配置 2.4 WEB调优 2.4.1 调整WEB应用描述符 2.5 JMS调优 2.6 EJB调优 2.6.1 调整pool和cache 2.6.2 优化事务隔离级别和事务属性 2.6.3 其他一些小技巧 第三章 数据库调优 3.1.1 Oracle性能优化 ...

    J2EE经典案例设计与实现

    案例7:J2EE访问WebLogic中的数据连接池 案例8:简单的登录程序 案例9:数据分页显示 案例10:网上投票系统 案例11:在浏览器内运行SQL命令 案例12:实现全文检索 案例13:JSP与MySQL创建留言本 案例14:会员管理...

    性能调优文档_自动化测试

    该文档为在性能测试过程中对一些中间件的调优,如对tomcat的JVM、连接器、线程数等,中创中间件的JVM、连接数、日志级别调整,weblogic的...同时包括数据库连接池的调优,Apache集群、oracle参数、linux参数调优等等。

    JSP高级编程

    本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...

    Loadrunner报错日志

    需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数最大值...

    jsp servlet 入门学习资料-新手一看就懂

    11.1 JDBC2.0和JDBC数据库连接池 11.1.1 JDBC2.0新功能概述 11.1.2 结果集增强功能 11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件...

    JSP高级教程

    11.1 JDBC2.0和JDBC数据库连接池 11.1.1 JDBC2.0新功能概述 11.1.2 结果集增强功能 11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件...

    jsp从入门到高级编程

    11.1 JDBC2.0和JDBC数据库连接池 11.1.1 JDBC2.0新功能概述 11.1.2 结果集增强功能 11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件...

    java面试题

    52.8. 有几种开源的数据库连接池: 29 53. 描述一下JVM加载class文件的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP? 30 54.2. Socket在哪里呢? 31 54.3. Socket是什么呢? 32 54.4. socket的实现步骤...

    java高效学习之路-过来人经验

    Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    71. 配置数据连接池和数据源(Tomcat)? 72. 点击图1变为图2? 73. JSP中显示图片的方法之一? 74. int转为Integer的方法? 75. 请求jsp页面禁止缓存方法? 76. select选中其中的值自动到一个文本框? 77. JSP连接数据库?...

    JAVA上百实例源码以及开源项目源代码

     Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] ...

Global site tag (gtag.js) - Google Analytics