`

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 数据源: 配置: 连接缓冲池

 

分享到:
评论

相关推荐

    weblogic连接池配置数据库断掉重连的问题

    在这个主题中,我们将详细讨论 Weblogic 连接池配置数据库断掉重连的问题,包括连接池配置的基本概念、断掉重连机制的原理、配置参数的解释等。 一、连接池配置的基本概念 在 Weblogic 中,连接池配置是指将多个...

    weblogic配置sql数据连接池

    3. 配置连接池参数:在创建的数据源配置页面,找到“连接池”部分,这里可以设置以下关键参数: - 最小连接数:定义连接池最小保持的连接数量,即使没有活动的连接,也会保留这个数量。 - 最大连接数:定义连接池...

    weblogic+Oracle数据库连接池的配置

    ### WebLogic与Oracle数据库连接池配置详解 #### 一、WebLogic Server 7.0 + Oracle JDBC Pool/DataSource配置步骤 在进行WebLogic Server 7.0与Oracle数据库的连接池配置时,需要确保以下几个方面的正确设置: #...

    在WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试.pdf

    ### WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试 #### 摘要 本文档旨在探讨如何在WebLogic Platform 8.1控制台中设置Oracle 9i、SQL Server、JDataStore等数据库的连接池,并介绍如何在实际应用中...

    weblogic数据源连接池

    4. 配置连接池参数:在数据源配置页面,可以设置连接池的大小,如最小连接数、最大连接数、初始连接数等。此外,还可以配置连接超时、空闲连接存活时间等参数,以优化连接池的使用效率。 5. 配置JNDI名称:为数据源...

    数据库连接池技术及其在WeblogicServer中的配置

    ### 数据库连接池技术及其在WeblogicServer中的配置 #### 引言 在现代Web应用开发中,数据库作为数据存储的核心组件,其访问性能直接影响着整个应用系统的响应时间和稳定性。传统上,通过JDBC(Java Database ...

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

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

    论WebSphere中流行数据库连接池的配置.doc

    总之,配置WebSphere中的数据库连接池需要对WebSphere管理控制台、JDBC驱动和数据库连接参数有深入理解。通过遵循上述步骤,你可以有效地配置和管理Oracle、SQL Server、Sybase和MySQL的连接池,提升你的应用程序的...

    数据库连接池原理

    数据库连接池原理是现代软件开发中提升性能和资源管理的关键技术之一,特别是在Web应用系统中。传统的JDBC访问数据库的方式存在资源浪费和效率低下的问题,每次数据访问都需要建立、打开、使用和关闭数据库连接,这...

    数据库连接池技术在分布式系统中的应用研究.pdf

    在本文中,作者才让卓玛通过使用WebLogic技术实现了数据库连接池技术,并对其用法进行了说明。WebLogic是一个流行的应用服务器平台,它提供了一套完整的中间件解决方案。利用WebLogic中的连接池技术,可以在WebLogic...

    weblogic与oracle数据库通过连接池连接及测试代码

    以上内容覆盖了 WebLogic 与 Oracle 数据库连接的基本原理、连接池配置参数详解以及使用 Java 进行连接测试的具体方法,并简要介绍了 JSF 1.2 在 MyEclipse 中的配置流程。希望这些信息能够帮助您更好地理解和操作 ...

    Java jdbc数据库连接池总结.doc

    Java JDBC数据库连接池是Java应用程序与数据库交互的重要优化手段,旨在提高数据库访问效率和资源利用率。在传统的JDBC操作中,每次请求都需要建立和关闭数据库连接,这不仅耗时,还可能导致系统资源的过度消耗,...

    Java_jdbc数据库连接池总结

    Java JDBC数据库连接池总结 Java JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,它允许应用程序通过编写Java代码来与各种数据库进行交互。在Web应用程序中,由于B/S架构的普及,Java JDBC...

    webLogic8配置连接池步骤

    在WebLogic8中配置连接池和JMS组件是部署和管理Java应用程序的关键步骤,特别是对于那些依赖于数据库和消息传递服务的应用。以下是详细的配置过程: 1. **配置JDBC连接池**: - 首先,通过访问`...

    数据库连接池的原理机制

    数据库连接池是现代应用程序中广泛使用的技术,它优化了数据库资源的管理,提高了系统的效率和稳定性。本文将详细探讨数据库连接池的原理机制,以及它在处理并发、多数据库、事务处理、连接分配与释放以及配置与维护...

    Weblogic JDBC 数据源配置和详细参数说明

    Weblogic JDBC 数据源配置和详细参数说明 一、JDBC 概述 ...本文详细介绍了 Weblogic 8.1 中 JDBC 数据源的配置和详细参数说明,包括连接池、数据源、JDBC 驱动程序设置、配置 JDBC 连接池等内容。

    基于JDBC的数据库连接池技术研究与应用

    【标题】:“基于JDBC的数据库连接池技术研究与应用” 【描述】:本文主要探讨了在Java环境中,如何利用JDBC和数据库连接池技术来优化Web应用程序对数据库的访问,以提高系统性能和资源利用率。 【标签】:JDBC, ...

    JDBC数据库连接池总结.pdf

    【JDBC数据库连接池总结】 在Java开发中,JDBC(Java Database Connectivity)是用于连接应用程序和数据库的关键技术。JDBC提供了一套API,使得开发者能够以标准的方式编写数据库交互代码。然而,直接使用JDBC在高...

    javajdbc数据库连接池总结.pdf

    Java JDBC 数据库连接池是一种优化数据库访问效率的技术,它解决了传统JDBC模式中频繁创建和关闭数据库连接导致的性能问题。随着互联网技术的发展,B/S架构的3层开发模式成为主流,Java的Servlet+JSP+JavaBean技术因...

Global site tag (gtag.js) - Google Analytics