您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > WebLogic问题排除概览
WebLogic问题排除概览问题排除概览问题排除概览问题排除概览孟和孟和孟和孟和技术咨询顾问大中华区渠道及联盟部以下内容旨在概述产品的总体发展方向。此信息仅供参考,不可纳入任何合同。此信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。此处所述有关Oracle产品的任何特性或功能处所述有关Oracle产品的任何特性或功能的开发、发布以及相应的日程安排均由Oracle自行决定。议程议程议程议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断议程议程议程议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断通过通过通过通过Guardian能做什么能做什么能做什么能做什么????•OracleGuardian:•就像是WLS的杀毒软件或者病毒扫描器•检查域的常见配置问题和运行时问题,并针对性的提供建议的解决方案•包括图形化界面和命令行方式•也可以监控运行于WLS之上的其他Oracle产品•有Oracle支持账户的用户可以免费使用•可以使售后服务Case自动创建使用使用使用使用Guardian•在如下的场景可以使用Guardian对域进行评估:•域创建并配置之后•作为开发环节之一,在部署到生产系统之前•在打过WLS补丁之后•在系统中引入或者对其它第三方软件进行升级后••生产系统可以进行周期性的评估•在压力测试中,对域进行评估Guardian工作架构工作架构工作架构工作架构安装安装安装安装Guardian代理代理代理代理•WLS安装会自带Guardian代理(以war包的形式)•可以手动将代理部署到所有服务器,或者使用管理控制台的快捷方式部署•当Oracle支持部门发布新版本代理后,对其进行更新或重新部署重新部署收集数据收集数据收集数据收集数据•在评估过程中,Guardian代理会收集如下类型数据:•JMX(包括配置和运行时数据)•应用部署描述符设置•JVM系统属性•JRockitJVM运行时的统计数据•JRockitJVMGuardian客户端安装客户端安装客户端安装客户端安装•从Oracle支持站点下载Guardian客户端的安装介质•需要用到JVM1.5或更新的版本•启动Guardian,并且选择workspace位置,该位置将存储用户偏好和评估数据Guardian用户界面用户界面用户界面用户界面激活激活激活激活Guardian对域的管理对域的管理对域的管理对域的管理•激活域的过程:•在Workspace中注册域信息•利用代理生成初始化的域Inventory创建域创建域创建域创建域Inventory•域的Inventory是:•域配置快照(包括服务器、应用、数据源等)•在每次域评估之前自动生成•也可以手动生成,用来开Case特征模式及特征包特征模式及特征包特征模式及特征包特征模式及特征包SignaturePatterns&SignatureBundles•特征模式(SignaturePatterns):•域评估数据的某种潜在问题模式的标识•由Oracle支持部门创建•也有不同的严重层次(Info,Warning,Critical等等)•特征包(SignatureBundles)•特征包(SignatureBundles)•带有相似特征的SignaturePatterns的集合•可以作为一个单元被评估更新特征库更新特征库更新特征库更新特征库•通过如下方式更新Guardian的最新特性和特征模式:•运行UpdateWizard•从支持站点下载文件,手动安装对域进行评估对域进行评估对域进行评估对域进行评估1.选择要评估的域2.选择要测试的特征模式评估结果评估结果评估结果评估结果生成生成生成生成SR((((SupportRequest))))•可以用Guardian生成文件附在支持Case中•生成的car文件包括:•所选择的特征模式的详细信息•域Inventory和评估结果•域配置文件(可选)•域配置文件(可选)•服务器的日志文件(可选)议程议程议程议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断OutofMemory•当JVM没有足够的内存执行任务时,会触发java.lang.OutOfMemoryError•当没有更多内存可以分配时•或空闲的内存有太多碎片,无法利用时•可能不足的内存类型有:•可能不足的内存类型有:•Native(物理内存)•Heap(堆内存)•特定Java内存代(例如,permanet)对对对对OutofMemory的响应的响应的响应的响应•JVM会发送error到标准输出流和错误输出流•WLS会将应用程序没有处理的Java异常和错误都输出到服务器日志•Out-of-Memory和类似的系统错误不应该由应用程序直接处理接处理•如果应用程序发生错误,会给客户端返回错误信息(例如HTTP500)•如果WLS子系统发生错误,则服务器处于不稳定状态,需要重启内存泄漏内存泄漏内存泄漏内存泄漏•内存泄漏:•最常见的引发Out-of-Memory错误的原因•在Java中,内存泄漏并不常发生(相对传统语言)•内存泄漏的原因是当对象不再被需要时,没有显式声明,进而没有被垃圾回收处理•常见的场景有:•太大的缓存造成内存泄漏•太多使用HTTP会话,导致内存泄漏•对数据库操作结束时,没有正常关闭数据集及数据连接•动态类加载问题JVM错误日志错误日志错误日志错误日志•该日志文件通常包括如下类型的信息:•操作系统错误消息•JVM版本•硬件和操作系统参数•系统环境变量••堆和垃圾回收汇总•线程汇总JVM工具类型工具类型工具类型工具类型•大多数的JVM诊断工具可以归为如下两大类:•代理•在JVM里面运行•可以通过JVM命令行属性使能或配置•周期性触发或在特定情况下触发••客户端工具•与JVM通信并提取数据的外部进程•可以使用图形化界面或命令行接口JRockitFlightRecorder概念概念概念概念•JRockitR28版本的新添特性•JRockitJVM中的“循环缓冲”存储诊断数据•时刻缓冲•新的数据进入缓冲,旧的数据溢出•与JRMC的预集成•代替原来的JRMCRuntimeAnalyzer和FlightRecordingNewDataTime•代替原来的JRMCRuntimeAnalyzer和LatencyAnalyzer•接近零开销•收集的数据本身就是JVM使用的数据•数据除了来自于JVM的事件,也可以是其他事件提供者•WebLogicServer(WLDF)•FusionMiddleware(DMS)FlightRecordingOldDataTimeDCC1Slide25DCC1IfixedthecoloronthisDavidCabelus,2010-5-5•适合使用JRockitFlightRecorder的场景?•提供正在运行的生成系统的诊断信息•捕获导致故障问题的最新活动信息进行分析•捕获各个层次的事件JVM,WLS,DMS,…•可以使用JRMCGUI进行在线和离线分析•JRockitdumps捕获crash相关信息进行辅助分析JRockitFlightRecorder使用场景使用场景使用场景使用场景•JRockitdumps捕获crash相关信息进行辅助分析•不适合使用JRockitFlightRecorder的场景?•大事件负载和大事件规模•长时间事件分析•不作为Debug日志或服务器日志的代替品WebLogic诊断框架与诊断框架与诊断框架与诊断框架与JFR的集成的集成的集成的集成WLDFEvents触发触发触发触发JFR写缓冲写缓冲写缓冲写缓冲•WLS事件可以传播到JFR–可以把WLS数据在JFR中进行统一的展示,进行黑盒和性能分析–来自所有数据源的事件(JVM,WLDF,DMS)可以进行统一分析•JFR文件与WLDFWatchrule/diagnosticimage的集WLDF触发触发触发触发JFR写缓冲写缓冲写缓冲写缓冲在在在在DiagImage中捕获中捕获中捕获中捕获JFRrule/diagnosticimage的集成–可以基于Watchrule捕获事件–RADAR-Diagnosticimage可以触发JFR文件生成;JFR文件包含在WLDFdiagnosticimage中–包含所有事件生成器生成的全部的JFR数据JRMC图形界面的图形界面的图形界面的图形界面的FlightRecorder数据数据数据数据JavaStackTrace•列出和描述程序中特定语句的方法调用序列•清晰的给出程序中各个层次的调用关系•包括源代码的行数,除非在编译时显式的删除了这些行信息JavaThreadDump•ThreadDump提供程序中正在运行的线程的快照,包括:•当前状态(运行、阻塞、等待……)•当前的StackTraceThreadDump信号量信号量信号量信号量•触发WLS实例的ThreadDump•通过管理控制台或者WLST脚本•在UNIX系统,可以通过发送QUIT信号量触发•在Windows系统,可以通过发送Break信号量触发•通过其他JVM工具•JVM管理控制台对管理控制台对管理控制台对管理控制台对JVM的监控的监控的监控的监控配置配置配置配置WLS低内存检测低内存检测低内存检测低内存检测防患于未然•服务器可以根据某些特定的阈值来识别此类情况,并将服务器的状态标记为WARNING•包括的阈值有:•包括的阈值有:•LowMemoryGCThreshold(判断内存低的GC阈值)•LowMemoryGranularityLevel(判断内存低的粒度级别)•LowMemorySampleSize(判断内存低的样例大小)•LowMemoryTimeInterval(判断内存低的时间间隔)JVMCrash•虽然JVM非常稳定,但极少数情况JVM本身也会出错,进而导致服务器Crash•根据JVM和出差类型的不同,会生成日志或corefile•CoreFile:•虚拟机出错时,进程内存的二进制数据快照•虚拟机出错时,进程内存的二进制数据快照•由NativeCode出错而触发(例如JVM、NativeWLS库,Native数据库驱动等)•可使用操作系统工具查看•可根据操作系统设置进行禁用或跟踪分析JVMCrash行为行为行为行为•大多数的JVM在Crash时,支持额外选项:•暂停执行,进行最后的threaddump,或使用操作系统的调试工具•执行自定义脚本议程议程议程议程•Guardian•JVM层面的问题诊断•Java应用程序及服务器层面问题诊断Java异常处理概念异常处理概念异常处理概念异常处理概念•异常会给出JVM、WLS或应用程序的问题所在•CheckedException是可恢复的问题,应该被捕获并且在应用程序代码中进行处理•UncheckedException或者error:•是底层系统问题•是底层系统问题•通常不需要应用程序处理•通常WLS会捕获该类问题,并作为error输出到日志客户端类库错误客户端类库错误客户端类库错误客户端类库错误•远程EJB/JMS客户端通常需要在类路径中引用WLS客户端Jar文件•远程EJB客户端通常需要访问到生成的EJB客户端类或stubs(这些内容通常被打包到jar文件中)•客户端找不到需要的WLS客户端jar包,或者找到老版•客户端找不到需要的WLS客户端jar包,或者找到老版本的jar包,或者EJB客户端jar包找不到都会引起运行时错误使用使用使用使用jarbuilder为客户端应用生成为客户端应用生成为客户端应用生成为客户端应用生成wlfullclient.jar•解决办法:•使用jarbuilder生成wlfullclient.jar•具体操作:•cdC:/beahome/wlserver_10.3/server/lib•java–jarwljarbuilder.jar//createswlfullclient.jarwhichcontainsallthe
本文标题:WebLogic问题排除概览
链接地址:https://www.777doc.com/doc-4579941 .html