请教Database Time spent to doWaiting,什么意思

高级会员, 积分 999, 距离下一级还需 1 积分
最后登录在线时间51 小时威望999 金钱954 注册时间阅读权限70帖子精华5积分999UID1220
查看: 1102|
Oracle性能优化使用度量和预警
度量、预警及基线
对性能进行监视时,需要使用一些统计信息之外的特定信息。为了确定特定统计信息是否重要,则需要了解经过一段特定时间之后,该统计信息的变化量。为了具有前瞻性,则需要在存在特定条件时(例如系统响应时间达到了允许的最大值)收到通知。为了诊断性能问题,需要了解更改的具体内容。度量、预警及基线即可提供这些信息。&&
度量是累积统计信息在一段时间内的更改率。例如,每秒的物理读取数。&&
可为各种度量设置阈值,当度量的值超过阈值时,就会生成预警。&&
基线包含所存储的度量集和统计信息集。单个集称为快照。基线由两个或多个快照组成。通常,基线是在正常或可接受的操作期间捕获的,但也可以捕获任何相关时段。如果性能不正常,则可捕获其它度量集,并将其与基线进行比较。通过此方法,数据可明确地指出性能问题。
基本统计信息的限制
统计信息是对数据库中所发生事件的计数。统计信息和等待事件为原始数据。基本统计信息始终只是给定时间对应的一个值。&&
如果绘制很长一段时间内的基本统计数值,则会看到这些值一直随时间增长。该幻灯片显示了一个可能的图形示例,即从 V$SYSSTAT 性能视图中提取的 physical reads 统计信息图。如幻灯片中所示,虽然两个图的统计数值相同,但在观测期的末尾,趋势是完全不同的。可以非常清楚地看到,上图中数据库的 I/O 变化率远远大于下图中的 I/O 变化率。所以,仅查看统计数值是没有意义的。
为了更好地了解数据库行为,您不仅要查看数值,还要观察这些曲线或趋势。因此,需要计算某一时间段中的统计数值变化率,以便确定该时段内的趋势。&&
典型增量工具
基本统计信息只是自启动实例以来累积的原始数字。快照是在某一个时间点上捕获的一组统计信息。通过在不同的时间获取快照并获得值之间的差值,可获取有意义的统计数值。该差值即为增量。有几种工具可生成增量。Statspack、自动工作量资料档案库 (AWR) 和自定义脚本可生成两个快照的增量报表。
通过 AWR 和 Statspack 可保存快照集以供将来参考。这些保存的集就是统计信息基线。&&
Oracle Database 11g 解决方案:度量
Oracle 数据库服务器在正常操作期间收集基本统计信息。基本统计信息即为简单的计数。例如,对自启动以来系统中物理读取数的计数结果即为基本统计信息。&&
度量是源自基本统计信息的二级统计信息。大多数度量会跟踪 Oracle 服务器中活动的更改率。例如,系统中前 60 分钟内的平均物理读取数即为一个度量。内部组件(客户机)使用度量来监视系统运行状况,检测问题和进行自优化。易管理性监视程序进程 (MMON) 会根据相应的基本统计信息定期更新度量数据。
Oracle 数据库服务器组件使用度量来执行易管理性功能。例如,自动数据库诊断监视程序 (ADDM) 将系统中最后 60 分钟内的平均物理读取数用作输入。其它组件可能需要基于相同基本统计信息(物理读取数)的不同度量。例如,内存指导可能需要高峰时段的物理读取计数。Oracle Database 11g 支持系统、会话、文件和等待事件统计信息的度量。每个度量由一个度量编号来唯一地标识,且与一个量度名称相关联。该图列出了一些固定的视图,可访问这些视图来浏览度量数据。有关这些视图的详细信息,请参阅《Oracle Database Reference》指南。
度量的优点
保留度量的主要优点在于,在组件需要计算某些活动的更改率时,可随时使用相应的数据。
在早期版本中,要计算特定基本统计信息的更改率,则必须在运行工作量之前和之后捕获统计信息。使用度量,所需执行的全部操作就是运行工作量并选择相应的度量。
有了服务器收集的度量,服务器组件便具备了自优化和健康检查的基础。度量提供了自动内存管理和自动数据库诊断监视程序所需的性能信息。
查看度量历史记录信息&&
在某些 V$ 视图中显示了度量值,其中的这些值是非常小的时间间隔内的平均值。这些间隔可能会变化(从 15 秒到 10 分钟),这取决于度量的类别。V$ 视图中数据的快照将保留在 DBA_HIST 表中。
幻灯片列出了一些度量和 AWR 视图。&&
V$SYSMETRIC_HISTORY 显示了数据库中可用的所有系统度量值。此视图同时显示了持续时间较长(60 秒,1 小时历史记录)和持续时间较短(15 秒,仅一个间隔)的度量。
DBA_HIST_SESSMETRIC_HISTORY 显示了几个重要会话度量的历史记录。其包含 V$SYSMETRIC_HISTORY 视图的样本(快照)。
有关这些视图的详细信息和列详细信息,请参阅《Oracle Database Reference》。
使用 EM 查看度量详细资料
使用“All Metrics(所有度量)”页来查看可用于数据库的所有性能度量的列表。可从“Database(数据库)”主页上访问此页,方法是单击“Related Links(相关链接)”部分的“All Metrics(所有度量)”链接。
在“All Metrics(所有度量)”页中,可展开所有或特定度量组来查看特定度量。通过选中一个度量,即可显示该度量的页面。可查看某一特定时段内的度量值,并且可自定义此视图。相应的图形将显示该度量值的历史记录。
要从“Database(数据库)”主页上访问此页,单击“Related Links(相关链接)”部分的“All Metrics(所有度量)”。在“All Metrics(所有度量)”页中,展开“Waits by Wait Class(按等待类等待)”,然后单击“Database Time Spent Waiting(%)(等待所用的数据库时间百分比 (%))”。在“Database Time Spent Waiting(%)(等待所用的数据库时间百分比 (%))”页上,单击“Concurrency(并发性)”。
统计信息直方图
虽然度量可以使您了解特定统计信息的趋势,但它无法告知某个特定瓶颈是影响局部还是影响整个系统。例如,您可能观察到一个变化率大的度量,但这一突然变大可能只局限在系统的一个或两个会话中。在这种情况下,可能就没必要深入研究该问题了。但是,如果此突发性的增长全面影响到整个系统,则需要做进一步的调查。可通过直方图性能视图获得此信息。
如幻灯片所示,您可观察到 I/O 比率有一个突发性的增长。可将此信息与在 V$FILE_HISTOGRAM 中找到的相应 I/O 直方图关联。此视图显示基于每个文件的所有单块读取数的直方图。直方图中具有时间间隔时段,以毫秒为度量单位,从 1 毫秒到 222 毫秒(69.9 分钟)。每个时段内的值是系统等待该时间量的次数。例如,从幻灯片可看出,为了从磁盘中读取数据块,系统等待了 5,500 次,每次等待时间介于 32 到 64 毫秒之间。如果访问时间通常小于 10 毫秒,则对系统而言,这肯定是一个需要关注的问题,应当进一步研究此问题。如果在较短的等待时间段内看到较大的次数,则无需过于担心。
度量可提醒您提前注意潜在的问题。通过使用直方图进行细查,可明确地确定是否真的存在问题。
直方图视图
V$EVENT_HISTOGRAM 显示基于事件的等待次数的直方图。
V$FILE_HISTOGRAM 显示基于每个文件的所有单块读取数的直方图。&&
V$TEMP_HISTOGRAM 显示基于每个临时文件的所有单块读取数的直方图。
直方图可具有以下时间间隔:& 1 毫秒、& 2 毫秒、& 4 毫秒、& 8 毫秒……& 2^21 毫秒、 & 2^22 毫秒、&= 2^22 毫秒。&&
还可通过 Enterprise Manager 来查看该直方图统计信息。从“Performance(性能)”页,单击“Active Sessions(活动会话)”图的图例区域项,如“User I/O(用户 I/O)”,以进入“Active Sessions Waiting:User I/O(活动会话等待:用户 I/O)”页。再次单击“Active Sessions(活动会话)”图右侧的等待事件名称,以进入相应的“Histogram for Wait Event(等待事件的直方图)”页。幻灯片上显示了“Histogram for Wait Event:db file sequential read(等待事件的直方图:DB 文件连续读取)”图。
注:除非 TIMED_STATISTICS 初始化参数已设置为 TRUE(该值为默认值),否则不会填充直方图。当 STATISTICS_LEVEL 参数设置为 TYPICAL 或 ALL 时,会自动设置 TIMED_STATISTICS。
服务器生成的预警
预警是当数据库处于不理想状态且需要引起注意时发出的通知。默认情况下,Oracle 数据库会通过显示预警的 Oracle Enterprise Manager Database Control 发送预警。也可选择配置 Oracle Enterprise Manager,以向管理员发送电子邮件,报告问题状况。Oracle 数据库服务器还会在工作量资料库中保留度量和预警的历史记录。&&
预警队列是永久性的多使用者队列,可供要编写自定义预警处理程序的用户使用。
默认情况下会设置几个主要度量的阈值,如设置“Tablespace Used (%)(使用的表空间 (%))”的阈值。可为您的系统设置相关度量的阈值。如果数据库偏离正常读数且超过了这些阈值,则 Oracle Database 11g 会主动发送预警来通知您。提前通知潜在的问题,可使您迅速作出响应,并通常在用户注意到这些问题之前就解决这些问题。
一些可提前提供问题通知的重要度量有:
平均文件读取时间(厘秒)
响应时间(每一事务处理)
SQL 响应时间 (%)
等待时间 (%)
数据库控制使用模型
以下是服务器生成的预警的基本使用模型:
如果需要,可更改服务器预警度量的阈值设置。 可通过使用数据库控制或 PL/SQL 过程来实现此操作。
可通过使用数据库控制来建立通知规则(例如电子邮件地址或封锁期)。
生成预警后,数据库控制会在预警页中显示该预警。数据库控制会向已注册接收通知的管理员发送通知。
收到预警后,可根据预警中给出的建议更正问题。
注:应确保 STATISTICS_LEVEL 初始化参数设置为 TYPICAL 或 ALL。
要设置或编辑阈值,请在“Database(数据库)”主页的“Related Links(相关链接)”区域选择“Metrics and Policy Settings(度量和策略设置)”。如果要更改阈值,则输入所需的“Warning Threshold(警告阈值)”和“Critical Threshold(严重阈值)”。选择“All Metrics(所有度量)”视图,以添加阈值。数据库达到指定的值时,就会出现相应的预警。单击“Edit(编辑)”按钮以指定其它响应操作,或添加阈值到一组预警下的各个对象,如特定表空间上的已用阈值百分比。&&
收集调度指定收集的频率。可更改收集调度,但不可针对各个阈值进行。收集调度是针对度量组而设置的。单击“Collection schedule(收集调度)”以编辑该调度,或查看使用该调度而收集的度量。
“Edit(编辑)”按钮为一个图标,其形式为一支铅笔或一组铅笔。单击形式为单支铅笔的“Edit(编辑)”,可更改阈值和该度量的并发性属性。使用形式为多支铅笔的“Edit(编辑)”按钮,可添加阈值到该度量组中的各个对象,比如在各个表空间上添加不同的阈值。
创建和测试预警
还可为特定对象设置阈值。
示例:您决定要在 INVENTORY 表空间中使用的空间超过 75% 时收到严重预警。(此表空间不允许其数据文件自动进行扩展)。要创建和测试该预警,请执行以下步骤:
1.& & & & 在 Oracle Enterprise Manager 中,定位至“Tablespace(表空间)”页,然后设置所需阈值。
2.& & & & 在 SQL*Plus 中,使用 CREATE TABLE … TABLESPACE … AS SELECT … 命令将现有表复制到相关的表空间中。继续将行添加到此表中以填充表空间。
3.& & & & 在收到提示此表无法扩展的错误后,请检查“Database Instance(数据库实例)”主页以获取相关联的预警。&&
大多数预警都包含相关指导的名称,可调用该指导以获得详细建议。对于每一条相应的预警消息,数据库控制都会提供一个链接以供调用相应的指导。
注:每隔 10 分钟评估一次“表空间已满”预警。
“度量”视图和“预警”视图
启用后,MMON 会定期计算度量值并在内存中保留一小时。可通过 V$SYSMETRIC 视图和 V$SYSMETRIC_HISTORY 视图查看内存中系统级别的度量值。对于服务级别的度量,也可使用类似的视图。
只需启用 AWR 的自动快照机制,即可为所有这些度量启用磁盘度量收集。可通过 DBA_HIST_* 视图查看度量的磁盘值。度量历史记录的清除策略和其它快照数据的清除策略相同。
通过下列字典视图,可访问有关服务器预警的信息:
DBA_OUTSTANDING_ALERTS 说明 Oracle 数据库服务器认为处于未处理状态的预警。
DBA_ALERT_HISTORY 表示不再处于未处理状态的预警的有限时间内的历史记录。
DBA_THRESHOLDS 提供为该实例定义的阈值设置。
V$ALERT_TYPES 提供有关每个服务器预警类型的信息。
注:有关这些视图的详细信息,请参阅《Oracle Database Reference》指南。
查看用户定义的 SQL 度量
除了服务器计算的度量,EM 还计算其自己的度量集。“User-Defined Metrics(用户定义的度量)”页列出了用户定义的现有 SQL 度量。可查看度量数据;查看、编辑或删除度量定义;或根据现有的度量创建其他用户定义的 SQL 度量。如果未创建任何用户定义的 SQL 度量,则该列表为空。&&
可自定义 EM 度量集,并可创建自己的、由 EM 检查的度量。要创建自己的度量,请打开“User-Defined Metrics(用户定义的度量)”页并单击“Create(创建)”。该链接在“Database(数据库)”主页的“Related Links(相关链接)”部分中。
创建用户定义的 SQL 度量
通过“User-Defined Metrics(用户定义的度量)”页可定义 SQL 度量。访问此页的路径是“Database Home &“User-Defined Metrics (Related Links section) & Create(数据库主页 & 用户定义的度量(“相关链接”部分)& 创建)” 。为该度量分配一个名称,创建一条返回单个值或两列内容的 SQL 语句。在该两列中,第一列为“键”,第二列为“值”。可为每个键设置警告和严重阈值。&&
有关创建用户定义的度量的详细信息,请参阅《Oracle Enterprise Manager Advanced Configuration 10g Release 4》。
注:虽然“All Metrics(所有度量)”页中不显示用户定义的度量,但主页的“Alerts(预警)”部分会报告任何超出阈值的情况。
查看用户定义的主机度量
类似于用户定义的 SQL 度量,您也可创建并查看用户定义的主机度量。&&
可自定义 EM 度量集,并可创建自己的、由 EM 检查的度量。要创建自己的度量,请打开“User-Defined Metrics(用户定义的度量)”页并单击“Create(创建)”。该链接在“Host(主机)”主页的“Related Links(相关链接)”部分中。要定位至此页,请单击“Database(数据库)”主页上的“Hostname(主机名)”链接,然后单击“Host(主机)”页上相关链接部分中的“User-Defined Metrics(用户定义的度量)”。
创建用户定义的主机度量
通过“User-Defined Metrics(用户定义的度量)”页可定义主机度量。访问此页的路径是“Database Home & Hostname & User-Defined Metrics (Related Links section) & Create(数据库主页 & 主机名 & 用户定义的度量(“相关链接”部分)& 创建)” 。为该度量分配一个名称,并创建一条返回单个值的主机命令行语句。可在阈值部分设置警告和严重阈值。&&
注:虽然“All Metrics(所有度量)”页中不显示用户定义的度量,但主页的“Alerts(预警)”部分会报告任何超出阈值的情况。
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 400-690-3643& &备用电话: & & 邮箱:
Powered byOracle ADDM 自动诊断监视工具 介绍
- frank - ITeye技术网站
博客分类:
()数据库的一个自诊断引擎获取的数据来判断数据库中可能的问题
及之前,们已经拥有了很多很好用的性能分析工具,比如,、、、等等。这些工具能够帮助很快的定位性能问题。但这些工具都只给出一些统计数据,然后再由们根据自己的经验进行优化。::节省大量优化时间,也大大减少了系统宕机的危险。简单点说,就是收集相关的统计数据到:则根据这些数据,给出优化建议。
快照,等分钟,再做一次。查看报告,发现事件在里面。根据经验,这个事件一般可能是因为缺少索引、统计分析信息不够新、热表都放在一个数据文件上导致争用等原因引起的。根据这些经验,我们需要逐个来定位排除,比如查看语句的查询计划、查看的子段,检查热块等等步骤来最后定位出原因,并给出优化建议。但是,有了以后,它就可以根据采集到的数据直接给出优化建议,甚至给出优化后的语句。
oo负载和非负载导致的瓶颈问题o语句和对象消耗、带宽占用、潜在问题、内部通讯繁忙o和执行时间排的语句oo由于过小、书写问题、绑定大小不适应、解析失败原因引起的。ooo通过包加的锁o锁导致的过多等待时间例如锁住表了o如通过包进行管道输出o行级锁等待o不够导致的过多等待时间(大量的事务操作同一个数据块)o和事件o太小导致过多的,设置问题,过多的操作等等)导致的性能问题o进程写数据块,磁盘吞吐量不足o日至产生的速度,导致系统变慢ooooooooo环境中由于阻塞和争用导致的实例倾斜o和问题o问题o基于一段时间内的默认一小时一次可以执行分析它可以帮我们诊断在这段期间内数据库可能存在的瓶颈在这里我们将它称为 数据库服务器处理用户请求所花费的时间 处理的时间针对所有活跃的用户进程而言可以通过查询下面两个视图来获得它的值
),通过一个新的后台进程定期写到磁盘中。所以的要求比以前版本更大,一般推荐比以前大。 技术来监控它使用同样多的系统资源数据库服务器可以处理更多的用户请求也就是提高了吞吐量通过报告的问题是按照排序的 的样式来表达每个都属于以下三种类型之一三已经被自动启用通过初始化参数文件中的来控制或者缺省值是如果你将这个参数设置成很多的特性将被屏蔽
性能的评估分析在部分程度上依赖于这个这个参数的含义是读取一个数据块所花费的平均时间以微秒为单位O毫秒这是一个比较合适的值如果你的硬盘比较陈旧或者你有一个非常好的请修改这个值这个参数该怎样去正确地配置需要完成下面的步骤
估量一下读取单个数据库块所花费的平均时间这个度量应该针对随机的包括寻道的时间传统的值应该属于微秒这个区间执行设置一个时间参数如果估计的值是微秒你应该以的身份执行四来访问五相关的问题分析的方法就是运行也可以以及包只要它们被赋予了的角色5来运行包中的非常相似5包来完成六相关的视图
七.),使这个工具使用起来非常简单。下面这里介绍一下如何通过使用这个工具。
分钟左右),否则得到的报告中就会提示:
是用来设置任务参数的。是起始快照,是结束快照,是实例号,对于单实例,一般是,在环境下,可以通过查询视图得到,是数据库的唯一识别号,可以通过查询查到。可以得到优化建议结果。来得到,这个脚本的执行过程和脚本执行过程类似:
环境下,可以执行,这脚本的执行,会多出要求输入和的要求。
八.的结果与的结果大不相同。的结果给出的都是统计数据、各种事件,然后由根据这些数据给出优化建议,而的结果包含就已经是给出的优化建议了
和名字、主机名字、版本、快照范围、数据库消耗时间、多少个活动会话。
发现的问题,并给出的相应建议。在我们这个例子中总共发现个问题,下面一一解释一下。
,这是这个问题所持续的实践及其对系统的影响,它的时间是秒,和分析期间的数据库消耗时间(在第一部分中)是一样(秒),所以对系统的影响是的。,这是发现的这个问题的具体描述:在操作系统中发现有显著的虚拟内存页入页出的问题。给出的建议及其作用更改主机配置,有效。在主机的操作系统上发现了明显的页入页出,但是没有发现明显导致内存频繁换如换出的根本原因。需要仔细检查那些消耗大量虚拟内存的进程(除实例外)。此外,还可以考虑增大主机的物理内存。说明一下:我的这个实例是跑在我自己的机上,运行的同时有大量的其他消耗内存的程序(等)在运行,所以肯定有大量的内存交换存在。
语句在消耗大量数据库时间,它的影响是的。给出的建议是优化,能取得的效果。找到的块,它的是(可以通过查到)。至于如何优化语句,可以参考文档中的章节。下面的内容便是我们用来插入数据的测试语句。
发现的其他问题语句:事件占据了大量的数据库运行时间。由于发现了两条问题语句,所以这里有两个建议。次,平均每次消耗了秒。平均这个问题消耗的时间是秒。
的执行次数消耗了大量的数据库时间。它的根本原因是因为执行次数太多(次)。可见的问题检查相当全面。
,新增了很多新的事件,主要是将原先一些较含糊的事件细化了,同时将所有事件进行了归类。可以查看视图)的一些总结:、、、、、类等待事件没有显著消耗数据库时间;会话连接、断连请求没有消耗大量数据库时间;对语句的硬解析没有消耗大量数据库时间;对性能的分析是基于默认假设每次读一个数据块的时间是微秒的。
的度量数据。从用户角度看:这是从向数据库请求开始,消耗在用户等待响应上的全部时间(不包括网络响应时间);从数据库实例角度看:前台进程消耗在等待一种数据库资源(例如,读)、运行和等待释放(队列等待)的总共时间。活动会话)等待实例响应。这是实例负荷的度量指标。平均数据库负荷是由整个分析计算出来的平均负荷。通过除以分析周期时间得到。例如,分析周期时分钟,而数据库运行消耗时间是分钟,那就说明平均有个用户在等待响应。影响这一项。影响是数据库消耗时间用于处理这个问题的时间不分。假定我们所找到的这个问题完全解决,那么数据库消耗时间就会相应减少影响时间。受益这一项。如果所有建议操作得到实施,分析估计数据库消耗时间能减少受益的全部时间。
找到了有问题的SQL后我们就可以用 工具来优化该,关于的使用,请参考:
liuguidong
浏览: 42089 次
来自: 北京
chrome 版本号39
新窗口还是会被屏蔽
排一下版 太乱了
经验值得借鉴,项目还是不错的~我们公司最近也在做相关的项目,物 ...突然连接不上Oracle数据库了!能给点建议吗?!
[问题点数:100分,结帖人zzzwwwllll]
突然连接不上Oracle数据库了!能给点建议吗?!
[问题点数:100分,结帖人zzzwwwllll]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2008年10月 Oracle大版内专家分月排行榜第一2008年9月 Oracle大版内专家分月排行榜第一2008年8月 Oracle大版内专家分月排行榜第一
2008年7月 Oracle大版内专家分月排行榜第二
2005年8月 Oracle大版内专家分月排行榜第二
2013年7月 MS-SQL Server大版内专家分月排行榜第一2009年3月 Oracle大版内专家分月排行榜第一2009年2月 Oracle大版内专家分月排行榜第一
2013年9月 MS-SQL Server大版内专家分月排行榜第二2013年8月 MS-SQL Server大版内专家分月排行榜第二2009年4月 Oracle大版内专家分月排行榜第二2009年1月 Oracle大版内专家分月排行榜第二2004年10月 MS-SQL Server大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。SimpleDataSource
Class SimpleDataSource
java.lang.Object
mon.jdbc.SimpleDataSource
All Implemented Interfaces: javax.sql.DataSource
public class SimpleDataSourceextends java.lang.Objectimplements javax.sql.DataSource
This is a simple, synchronous, thread-safe database connection pool.
REQUIRED PROPERTIES
-------------------
JDBC.Driver
JDBC.ConnectionURL
JDBC.Username
JDBC.Password
Pool.MaximumActiveConnections
Pool.MaximumIdleConnections
Pool.MaximumCheckoutTime
Pool.TimeToWait
Pool.PingQuery
Pool.PingEnabled
Pool.PingConnectionsOlderThan
Pool.PingConnectionsNotUsedFor
Pool.QuietMode
(java.util.Map&props)
&&&&&&&&&&Constructor to allow passing in a map of properties for configuration
protected &void
&&&&&&&&&&&
&&&&&&&&&&Closes all of the connections in the pool
&&&&&&&&&&Getter for the average age of a connection checkout
&&&&&&&&&&Getter for the average age of overdue connections
&&&&&&&&&&Getter for the average time required to get a connection to the database
&&&&&&&&&&Getter for the average time spent waiting for connections that were in use
&&&&&&&&&&Getter for the number of invalid connections that were found in the pool
&&&&&&&&&&Getter for the number of connections that were claimed before they were returned
&java.sql.Connection
&&&&&&&&&&&
&java.sql.Connection
(java.lang.String&username,
java.lang.String&password)
&&&&&&&&&&&
&&&&&&&&&&Getter for the number of requests that had to wait for connections that were in use
&java.lang.String
&&&&&&&&&&Getter for the name of the JDBC driver class used
&java.lang.String
&&&&&&&&&&Getter for the JDBC password used
&java.lang.String
&&&&&&&&&&Getter of the JDBC URL used
&java.lang.String
&&&&&&&&&&Getter for the JDBC user name used
&&&&&&&&&&&
&java.io.PrintWriter
&&&&&&&&&&&
&&&&&&&&&&Getter for the maximum number of active connections
&&&&&&&&&&Getter for the maximum time a connection can be used before it *may* be
given away again.
&&&&&&&&&&Getter for the maximum number of idle connections
&&&&&&&&&&If a connection has not been used in this many milliseconds, ping the
database to make sure the connection is still good.
&&&&&&&&&&Getter for the age of connections that should be pinged before using
&java.lang.String
&&&&&&&&&&Getter for the query to be used to check a connection
&&&&&&&&&&Getter for the time to wait before retrying to get a connection
&&&&&&&&&&Getter for the number of connection requests made
&java.lang.String
&&&&&&&&&&Returns the status of the connection pool
&&&&&&&&&&Getter to tell if we should use the ping query
(int&loginTimeout)
&&&&&&&&&&&
(java.io.PrintWriter&logWriter)
&&&&&&&&&&&
static&java.sql.Connection
(java.sql.Connection&conn)
&&&&&&&&&&Unwraps a pooled connection to get to the 'real' connection
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
SimpleDataSource
public SimpleDataSource(java.util.Map&props)
Constructor to allow passing in a map of properties for configuration
Parameters:props - - the configuration parameters
getConnection
public java.sql.Connection getConnection()
throws java.sql.SQLException
Specified by:getConnection in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.getConnection()
getConnection
public java.sql.Connection getConnection(java.lang.String&username,
java.lang.String&password)
throws java.sql.SQLException
Specified by:getConnection in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.getConnection(java.lang.String, java.lang.String)
setLoginTimeout
public void setLoginTimeout(int&loginTimeout)
throws java.sql.SQLException
Specified by:setLoginTimeout in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.setLoginTimeout(int)
getLoginTimeout
public int getLoginTimeout()
throws java.sql.SQLException
Specified by:getLoginTimeout in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.getLoginTimeout()
setLogWriter
public void setLogWriter(java.io.PrintWriter&logWriter)
throws java.sql.SQLException
Specified by:setLogWriter in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.setLogWriter(java.io.PrintWriter)
getLogWriter
public java.io.PrintWriter getLogWriter()
throws java.sql.SQLException
Specified by:getLogWriter in interface javax.sql.DataSource
java.sql.SQLExceptionSee Also:DataSource.getLogWriter()
getPoolPingConnectionsNotUsedFor
public int getPoolPingConnectionsNotUsedFor()
If a connection has not been used in this many milliseconds, ping the
database to make sure the connection is still good.
Returns:the number of milliseconds of inactivity that will trigger a ping
getJdbcDriver
public java.lang.String getJdbcDriver()
Getter for the name of the JDBC driver class used
Returns:The name of the class
getJdbcUrl
public java.lang.String getJdbcUrl()
Getter of the JDBC URL used
Returns:The JDBC URL
getJdbcUsername
public java.lang.String getJdbcUsername()
Getter for the JDBC user name used
Returns:The user name
getJdbcPassword
public java.lang.String getJdbcPassword()
Getter for the JDBC password used
Returns:The password
getPoolMaximumActiveConnections
public int getPoolMaximumActiveConnections()
Getter for the maximum number of active connections
Returns:The maximum number of active connections
getPoolMaximumIdleConnections
public int getPoolMaximumIdleConnections()
Getter for the maximum number of idle connections
Returns:The maximum number of idle connections
getPoolMaximumCheckoutTime
public int getPoolMaximumCheckoutTime()
Getter for the maximum time a connection can be used before it *may* be
given away again.
Returns:The maximum time
getPoolTimeToWait
public int getPoolTimeToWait()
Getter for the time to wait before retrying to get a connection
Returns:The time to wait
getPoolPingQuery
public java.lang.String getPoolPingQuery()
Getter for the query to be used to check a connection
Returns:The query
isPoolPingEnabled
public boolean isPoolPingEnabled()
Getter to tell if we should use the ping query
Returns:True if we need to check a connection before using it
getPoolPingConnectionsOlderThan
public int getPoolPingConnectionsOlderThan()
Getter for the age of connections that should be pinged before using
Returns:The age
getRequestCount
public long getRequestCount()
Getter for the number of connection requests made
Returns:The number of connection requests made
getAverageRequestTime
public long getAverageRequestTime()
Getter for the average time required to get a connection to the database
Returns:The average time
getAverageWaitTime
public long getAverageWaitTime()
Getter for the average time spent waiting for connections that were in use
Returns:The average time
getHadToWaitCount
public long getHadToWaitCount()
Getter for the number of requests that had to wait for connections that were in use
Returns:The number of requests that had to wait
getBadConnectionCount
public long getBadConnectionCount()
Getter for the number of invalid connections that were found in the pool
Returns:The number of invalid connections
getClaimedOverdueConnectionCount
public long getClaimedOverdueConnectionCount()
Getter for the number of connections that were claimed before they were returned
Returns:The number of connections
getAverageOverdueCheckoutTime
public long getAverageOverdueCheckoutTime()
Getter for the average age of overdue connections
Returns:The average age
getAverageCheckoutTime
public long getAverageCheckoutTime()
Getter for the average age of a connection checkout
Returns:The average age
public java.lang.String getStatus()
Returns the status of the connection pool
Returns:The status
forceCloseAll
public void forceCloseAll()
Closes all of the connections in the pool
unwrapConnection
public static java.sql.Connection unwrapConnection(java.sql.Connection&conn)
Unwraps a pooled connection to get to the 'real' connection
Parameters:conn - - the pooled connection to unwrap
Returns:The 'real' connection
protected void finalize()
throws java.lang.Throwable
java.lang.Throwable}

我要回帖

更多关于 spent feint 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信