一:解决数据源一段时间后不可用问题前的观察和分析:
1.1.开始时连接池各项属性的配置信息:
初始容量: 最大容量: 容量增长: 语句高速缓存类型:
语句高速缓存大小:
1 要在创建连接池时创建的物理连接数。更多信息...
此连接池可容纳的最大物理连接数。更多信息...
将新连接添加到连接池时创建的连接数。更多信息...
用于维护存储在语句高速缓存中的预定义语句的算法。更多信息... 存储在高速缓存中的预定义语句和可调用语句的数量。(这样可能会提高服务器性能。)更多信息...
301LRU20 高级
保留时测试连接
使 WebLogic Server 能够在将连接提供给客户机之前对连接进行测试。(要 求指定“测试表名称”。)更多信息... WebLogic Server 对未用连接进行测试的间隔秒数。(要求指定“测试表名称”。) 未通过测试的连接将被关闭,
然后将它们重新打开以重新建立有效的物理连接。如果测试再次失败, 则此连接将被关闭。更多信息... 测试物理数据库连接时使用的数据库表名。指定“测试频率”和启用“测试
保留的连接数”时需要此名称。更多信息... 测试频率:
120 测试表名称:
SQL SELECT 1 FROM DUAL信任空闲池连接的秒数: 收缩频率:
初始化 SQL:
10 在将连接传送到应用程序之前或定期连接测试过程期间, WebLogic Server
相信连接仍然有效并将跳过连接测试时使用连接的秒数。更多信息... 在收缩为满足需要而增大了的连接池前需等待的秒数。更多信息...
900 要执行用于初始化新建物理数据库连接的 SQL 语句。以 SQL 后跟一个空格 作为语句的开头。更多信息... 重试创建连接的频率:
0 建立数据库连接尝试的间隔秒数。更多
信息...
创建每个物理数据库连接前的延迟秒数。此延迟支持不能快速连续处理多个
连接请求的数据库服务器。更多信息...
保留连接处于不活动状态的秒数, 该时间过后 WebLogic Server 将收回该
连接并将其释放回连接池。更多信息...
等待保留数据源的连接池中的连接时会阻塞线程的最大并发连接请求数。更 多信息...
保留连接池中的连接的调用超时之前经过的秒数。更多信息...
登录延迟:
0 非活动连接超时:
0 最大等待连接数: 连接保留超时:
语句超时:
2147483647 10-1连接池配置信息重要修改点:
1.
初始容量: 最大容量: 容量增长: 60 605调整此参数是为了提升数据源的性能,在数据源创建之初,直接创建60个可用的数据库链
接,以防止在oracle服务器端在一个数据库实例zmddb下,默认提供最大150个数据库链接可供使用,而由于在同一个zmddb数据库实例下,我们有两个用户zmdswoa和zmdswbgscms,也就是说假如zmdswbgscms应用程序使用了140个数据库链接,并且没有得到合理的释放,那么zmdswoa应用程序所使用的数据源中即使配置了60个最大容量的数据库链接,但是,初始容量为1,那么也就是需要时才创建新的数据库链接放入数据源的池中,那么如果oracle服务端,已经没有可用的数据库连接了,zmdswoa对应的数据源将无法创建可用链接。所以,初始容量和最大容量根据zmdswoa的实际情况,直接设置为60,一开始创建数据源时就占用60个,最大限度的保证了zmdswoa应用程序中数据库链接的可用链接数量,防止受到其他同一个zmddb数据库实例下其他用户zmdswbgscms的可用数据库链接竞争。 至于容量增长:由1调整至5,是为了增加并发性,因为创建数据库链接需要有一定的延迟,如果增大这个数字,会在并发情况下,增强获得数据库连接的可靠性和速度,获得更好的性能。 1.
重试创建连接的频率: 30 调整此参数是为了在连接池自动加载或维护时,如果在一定时间内不断的重新创建正确的可用的数据库链接,30秒来限定创建连接的超时时间,也就是30秒之内,会不断的尝试创建正确的可用链接。 2.
连接保留超时: 30 调整此参数是为了在并发情况下,如果一定的时间内无法获得数据库链接,则暂时等待,并不直接返回NullPointerException,而保留连接池中的连接的调用超时之前经过的秒数,设置为30秒,也就是说,在请求链接之后,30秒之内,会不断的尝试从数据源中返回正确可用的数据库链接给调用方,直到正确返回,否则在30秒内会持续保留。 3.
非活动连接超时: 100 保留连接处于不活动状态的秒数, 该时间过后 WebLogic Server 将收回该连接并将其释放回连接池,这样,有利于更加合理的调度数据库链接资源,增加数据源中可利用数据库链接的数量,以保证在一定的时间内,数据源更大的服务能力和并发能力,并通过100秒这个显示的时间限定,在到了时间之后,自动回收不活跃的数据库链接到数据源中,这样,减少了数据库链接泄露和无可用数据库链接发生的可能性。
1.2.在部署界面中,监视JDBC各项数据情况:
从这个界面,可以获得应用程序在一定时间内的数据库最大使用量,和并发量,和健康度(泄露链接计数,可用数,不可用数等),观察各个数据源的现状。
从这个界面,可以监视weblogic中Server实例AdminServer的服务情况,如一般信息,健康状况,通道,性能,线程,计时器,工作量,安全,默认存储,JMS,SAF,JDBC,JTA等,而我们需要关注的主要是一般信息,健康状况,性能,线程,JDBC这几项。 特别说明:
(1)weblogic在不修改的情况下,默认的可执行线程数为15,
(2)weblogic数据源在不修改的情况下,默认数据源的最大容量为15,初始容量为1,容量增长为1.
1.3 用zmdswoa的身份登录数据库客户端,并观察当前的会话情况:
SID,代表了oracle服务器端生成的数据库连接的唯一标示数字,按照SID排序,可以看出当前数据库链接的使用量,因为oracle的SID是从1开始分配的。用户名,代表了连接该数据库实例zmddb的用户名,以此可以判断出当前各个应用程序链接数据库和数据库使用情况。