weblogic故障诊断与日常维护总结
weblogic常见问题汇总

weblogic常见问题汇总bea\user_projects\domains\mydomain下可以查看日志,如果出现关闭的连接错误,可以在配置连接池的时候设置,选中测试返回的连接和请求的连接.如果经常出现内存溢出的问题话查看日志,如果出现Executethread: '7' for queue:'weblogic.kernel.default' 这样类似Executethread开头的可能是线程资源耗尽的问题,如果是24说明是对象锁没释放怎样查看weblogic 目前可用的线程数?console控制台上myserver-下面的Monitoring的tab-Performance 中的Idle Threads显示的数目就是(下面有)WebLogic Server 性能及调整:查看使用WebLogic 8.1 线程缓冲池模型性能查看:调整weblogic的使用内存修改对应的domain下面的启动脚本,比如:weblogic安装目录下对应domain的启动脚本:startWeblogic.sh,追加Windows:set MEM_ARGS=-Xms2045m -Xmx2560mUnix:MEM_ARGS="-Xms1024m -Xmx2048m"注:Xms表示最小内存,Xmx表示最大内存。
主要内容1、WebLogic服务的监控2、WebLogic性能优化3、UNIX操作命令介绍WebLogic服务的监控WebLogic的控制台console对内存的监控Console --> server --> myserver --> 右边窗口Mornitoring --> PerformanceWebLogic服务的监控Idle Threads 空闲线程数这个值不能为0,否则意味着系统无线程可用,有死机的危险.Queue Length 等待队列的长度当Idle Threads的值为0时,Queue Length会出现数值。
weblogic常见问题

A:weblogic无法启动,错误信息包含如下:<Error> <EmbeddedLDAP> <000000> <Error opening the TransactionLog: ./myserver/ldap/ldapfiles/EmbeddedLDAP.tran: Permission denied>Q:LDAP启动失败,导致的问题可能是用root账户启动了weblogic。
检查mydomain目录下myserver/ldap/ldapfiles下的文件权限,是否是weblogic用户组,如果还是无法启动,请删除.tran文件。
A:weblogic无法启动,错误信息包含如下:<Error> <Deployer> <BEA-149204> <The deployment framework was unable to register with the Data Replication Service.<Error> <Deployer> <BEA-149601> <The deployment framework was unable to resume accepting requests.>Q:问题是管理域无法与用户域通信。
查看linux系统主机名,查看/etc/hosts文件,看是否有如下一行主机记录,如果没有,请将这一行记录加入到/etc/hosts文件中。
127.0.0.1 localhost.localdomain localhost 没有这一行记录,就会导致启动失败,一般在安装系统时,设置了主机名、有两块网卡,在设置主机名时,上面的记录就没有了。
A:weblogic无法启动,错误信息如下:The WebLogic Server did not start up properly. .UnknownHostException: MyLinux: MyLinux at.InetAddress.getLocalHost(InetAddress.java:1191) atweblogic.rjvm.JVMID.setLocalID(JVMID.java:124) atweblogic.rjvm.JVMID.localID(JVMID.java:104)Q:主机包含多个IP地址,一般为配置时未更新监听地址,修改config.xml文件的listen address即可正常启动;1.WSNAT_CAT:1287: WARN: Forced shutdown of client这个问题主要可能的原因有三个:一是Client端由于长时间连接Server,但却没有作任何的请求,这时,他会被断掉;二是由于Server在处理Client的请求时,发生超时引起的;三是由于在处理Client发起的事务时,超过tpbegin所制定的时间,也会报告这个信息。
Weblogic集群多播配置故障排除

Weblogic集群多播配置故障排除使用IP 多播时,群集中的WebLogic Server 实例可以共享一个IP 地址和端口号。
此功能使得群集的所有成员可被视为一个实体,并且使得群集成员能够互相通信。
下列部分提供了对IP 多播配置问题进行故障排除的建议:验证多播地址和端口配置识别网络配置问题使用MulticastTest 实用工具调整多播功能调试多播杂项问题多播配置故障排除的其他资源有关在群集中使用和配置多播的常规信息,请参阅群集配置和config.xml。
有关在控制台中配置多播地址的信息,请参阅“管理控制台联机帮助”中的多播。
验证多播地址和端口配置多播问题故障排除过程的第一步是验证您是否正确配置了多播地址和端口。
必须为每个群集正确配置多播地址。
多播地址和端口配置问题属于群集无法启动或者服务器无法加入群集的最常见原因。
对于多播地址要注意下列事项:多播地址必须是介于224.0.0.0 和239.255.255.255 之间的IP 地址,或者具有此范围IP 地址的主机名。
WebLogic Server 使用的默认多播地址是239.192.0.0。
不要使用任何x.0.0.1 多播地址,其中x介于0 和9 之间(包括0 和9)。
可能的错误由于多播配置问题经常会出现下列类型的错误:无法为群集创建多播套接口多播套接口发送错误多播套接口接收错误检查多播地址和端口要检查多播地址和端口,请执行下列操作:通过WebLogic Server 管理控制台检查群集多播地址和端口,或检查config.xml 中<cluster>元素的多播信息。
识别网络配置问题验证了多播地址和端口配置正确之后,请确定网络问题是否正在干扰多播通信。
物理连接确保网络中不存在物理问题。
验证群集中每个承载服务器的计算机的网络连接。
验证网络的所有组件是否正确连接并且运行正常,其中包括路由器和DNS 服务器。
地址冲突网络中的地址冲突可能会对多播通信造成干扰。
oracle、weblogic、TSM日常维护

ORACLE日常维护步骤1 数据库启动单实例:以oracle用户登录服务器,依次执行以下命令sqlplus “/as sysdba”startupexitRAC环境:以root用户登录数据库,依次执行以下命令进入到CRS主目录bin下:./crsctl check crs./crs_stat –t./crsctl start crs./crsctl check crs./crs_stat –tsrvctl start database -d db_name2 启动监听单实例:以oracle用户登录服务器,执行以下命令lsnrctl startRAC环境:以root用户登录服务器,执行以下命令进入到CRS主目录bin下:srvctl start listener -n instance1srvctl start listener -n instance23 检查数据库状态单实例:以oracle用户登录服务器,执行以下命令检查服务进程:ps -ef|grep "ora_"|grep -v grep结果中同一个实例至少包含ora_dbw0*、ora_lgwr*、ora_smon*、ora_pmon*、ora_ckpt*等5个进程。
检查监听状态:lsnrctl status检查实例状态:sqlplus “/as sysdba”sql>select instance_name,status,database_status from v$instance;RAC环境:检查方式与单实例基本一致,但多出检查crs状态Crs –t –v4 检查数据库告警日志以oracle用户登录,执行以下命令cd $ORACLE_BASE/oracle_sid/bdump/grep ORA- alert_sid.log|more如存在相关ORA-报错,请联系DBA进行检查处理。
5 数据库关闭单实例:以oracle用户登录,执行以下命令;Sqlplus “/as sysdba”Shutdown immediate;Exit停掉监听:lsnrctl stopRAC环境:以root用户登录服务器,进入crs安装主目录bin下停实例srvctl stop database -d db_name停CRS服务./crsctl stop crs停监听srvctl stop listener -n instance1srvctl stop listener -n instance26启停企业管理器(EM)以oracle用户登录服务器启动EM:Emctl start dbconsole关闭EM:Emctl stop dbconsole检查EM状态:Emctl status dbconsoleWeblogic 日常维护步骤1 Weblogic启动AdminServerWindows平台:进入应用域目录,双击startWebLogic.cmdLinux或Unix平台:进入应用域目录,./startWebLogic.sh2 Weblogic关闭Windows平台:进入应用域目录,双击stopWebLogic.cmd或直接点击关闭桌面上的命令行窗口;Linux或Unix平台:进入应用域目录,./stopWebLogic.sh或ps –ef |grep –i weblogic 查出进程号(pid),然后用kill -9 pid3 Server状态查询通过IE访问weblogic console,左侧目录结构树,点击环境(environment)----服务器(server):查看server状态,确保部署应用的server处于running状态。
Weblogic中间件运维经验汇总

Weblogic中间件运维经验汇总目录关于Weblogic参数调优的运维经验 (2)Weblogic性能调优的处理方法 (5)关于输电项目Weblogic安装的运维经验 (8)Weblogic回收数据库连接数配置的方法 (14)在Apache和Weblogic中分别部署静态页面的方法 (17)Weblogic Server性能调优经验 (20)WeblogicJVM堆参数设置方法 (24)关于Weblogic参数调优的运维经验报送单位:北京公司审核人:类型:业务应用关键字:GC垃圾回收1、引言为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。
2、现象描述部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。
3、处理过程停止宕机应用服务器上的Weblogic进程。
/home/weblogic/bea/user_projects/domains/pms/bin/setDomainEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下:MEM_ARGS="-Xms5248m -Xmx5248m -Xmn1536m-XX:SurvivorRatio=6-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=20-XX:+UseFastAccessorMethods-XX:+AggressiveOpts"3、修改完成后重启Weblogic服务。
4、原因分析在收到报警信息后,对后台日志进行查看,报错信息如下:Exception in thread "CBM_正常处理任务线程" ng.OutOfMemoryError: Java heap spaceatoracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868)atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045)atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316)atoracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)经过对报错日志分析,状态检修的CBM处理进程内存溢出报错,导致服务器宕机。
Weblogic中间件运维经验汇总

Weblogic中间件运维经验汇总目录关于Weblogic参数调优的运维经验 (2)Weblogic性能调优的处理方法 (5)关于输电项目Weblogic安装的运维经验 (8)Weblogic回收数据库连接数配置的方法 (14)在Apache和Weblogic中分别部署静态页面的方法 (17)Weblogic Server性能调优经验 (20)WeblogicJVM堆参数设置方法 (24)关于Weblogic参数调优的运维经验报送单位:北京公司审核人:类型:业务应用关键字:GC垃圾回收1、引言为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。
2、现象描述部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。
3、处理过程停止宕机应用服务器上的Weblogic进程。
/home/weblogic/bea/user_projects/domains/pms/bin/setDomainEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下:MEM_ARGS="-Xms5248m -Xmx5248m -Xmn1536m-XX:SurvivorRatio=6-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=20-XX:+UseFastAccessorMethods-XX:+AggressiveOpts"3、修改完成后重启Weblogic服务。
4、原因分析在收到报警信息后,对后台日志进行查看,报错信息如下:Exception in thread "CBM_正常处理任务线程" ng.OutOfMemoryError: Java heap spaceatoracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868)atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045)atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316)atoracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)经过对报错日志分析,状态检修的CBM处理进程内存溢出报错,导致服务器宕机。
Weblogic故障诊断

议程
故障诊断的模式 Thread Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
故障诊断的模式
准确描述现象:平台、版本、操作、信息 使用工具收集数据 使用工具分析数据 尝试解决问题 给出最佳解决方案 总结经验并加以重用
NEW IN_NATIVE IN_VM IN_JAVA BLOCKED ..._TRANS
议程
故障诊断的模式 Thread Core Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
工作线程
两个线程池
Socket Reader Thread Dump
Execute 线程
• 并行处理执行队列中的请求。 • 默认情况下,有15个Exceute线程。
议程
故障诊断的模式 Thread Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
当JVM崩溃时,会弹出窗口:
– Do you want to debug the problem? – 不要选择Yes/No,获取此时的Thread Dump。
Thread Dump: JDK1.5
Thread t@41: (state = BLOCKED) - ng.Object.wait(long) (Interpreted frame) - ng.Object.wait(long) (Interpreted frame) - ng.Object.wait() @bci=2, line=474 (Interpreted frame) - org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() @bci=19, line=642 (Interpreted frame) - ng.Thread.run() @bci=11, line=595 (Interpreted frame)
中间件weblogic日常维护手册-20131111

中间件日常维护手册(weblogic部分)(v 120925)目录1. 每天要维护的文档 (2)1.1 启动服务相关的几个文件 (2)1.1.1 startWebLogic.cmd/startWebLogic.sh (2)1.1.2 startManagedWebLogic.cmd/startManagedWebLogic.sh (2)1.1.3 setDomainEnv.cmd/setDomainEnv.sh (3)1.1.4 stopWebLogic.cmd/stopWebLogic.sh (3)1.1.5 stopManagedWebLogic.cmd/stopManagedWebLogic.sh (3)1.1.6 thread的监控 (3)1.1.7 JDBC监控 (4)1.1.8 检查是否生成javacore和heapdump文件 (4)1.2.weblogic配置文件config.xml (4)1.2.1 关于WebLogic 管理和config.xml 文件概述 (4)1.2.2 何时去编辑config.xml (4)1.2.3 config.xml 文件里的内容 (5)1.3 每天要维护的日志文件 (5)1.3.1 域日志(domain.log) (5)1.3.2 server.log (5)1.3.3 access.log (6)1.4 系统文件 (6)1.4.1硬盘分区使用情况 (6)1.4.2 CPU 负载情况 (6)1.4.3 内存MEMORY和SWAP使用率 (6)2.每周要维护的文档 (7)2.1 应用属性文件weblogic.xml (7)2.1.1 说明 (7)2.1.2 可配置的属性详解 (7)2.2属性文件web.xml (8)2.2.1 说明 (8)2.2.2 文件说明 (8)3.每月要维护的文件 (8)3.1 weblogic 系统文件备份 (8)3.2 定期日志删除 (8)3.3 补丁的更新 (8)1. 每天要维护的文档1.1 启动服务相关的几个文件WebLoigc 的启动是通过启动文件来完成的,包括启动管理服务器(startWebLogic)、启动被管服务器(startManagedWebLogic)、设置域环境(setDomainEnv)、关闭管理服务器(stopWebLogic)、关闭被管服务器(stopManagedWebLogic)等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间件故障诊断总结一、步骤:1、准确描述现象:客户说的和自己查看到的:平台、版本、操作、信息等。
特别是,故障前是否有做过什么操作:网络调整、设备调整、主机参数调整、配置文件修改……反正将这一切都列入排查的对象。
2、使用工具收集数据,收集配置文件、日志、dump文件等等。
3、使用分析数据,根据问题或收集的数据,使用适当的工具分析数据,当然包括了在网上和在官方支持站点搜索类似的问题的解决办法。
4、尝试解决问题,根据找到的问题点,尝试解决。
如修改错的,复原正确的;运行有问题的,适当调整运行的环境和运行的参数等等。
5、给出最佳解决方案,一般就是继续观察了。
6、总结经验并加以重用,知识积累。
二、通过前台收集基本的信息:1、重点是故障前做过的操作2、比对运行平台是否在官方的兼容性列表中,一般就是关注各个版本,特别是一些比较怪异的问题3、检查环境和参数,如能打开控制台,就在控制台中初步观察,一般进入控制台的格式是http://ip地址:端口/console如:http://192.168.0.89:7001/console/。
常用的留意点如下:A、域运行状态(域-监视-健康状况);一般为running状态,如果不是running,那这些界面就没有了。
B、服务器运行状态(域-环境-服务器),正常的为running。
C、各个server性能(JVM)状态(域-环境-服务器,点击具体的serve后进入,监视-健康状况);留意JVM 堆中当前可用的内存量。
不同的JVM,所显示的内容可能不一样,以下为sun的:D、各个server线程状态(域-环境-服务器,点击具体的serve后进入,监视-线程);一般来说,空闲线程要多;健康状况为ok如下图health状态为:Warning,这个是有线程阻塞的。
阻塞线程的内容为:####<2011-8-13 上午02时42分35秒 GMT+08:00> <Error> <WebLogicServer> <dataweb1> <dc_admin1> <[ACTIVE] ExecuteThread: '15' for queue:'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <><1313174555613> <BEA-000337> <[STUCK] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "2,492" seconds working on the request"weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@12035ed", which is more than the configured time (StuckThreadMaxTime) of "2,400" seconds. Stack trace:.SocketOutputStream.socketWrite0(Native Method) .SocketOutputStream.socketWrite(SocketOutputStream.java:97).SocketOutputStream.write(SocketOutputStream.java:141).ns.DataPacket.send(Unknown Source)E、JDBC(域-环境-服务器,点击具体的serve后进入,监视-JDBC);活动连接数合理。
F、程序EJB/Web Module(域-部署);状态为活动,健康状况为ok。
其目标关联正确G、JMS(域-服务-消息传送-JMS服务器);健康状态为ok。
4、在控制台生成dump;生成Dump Thread Stacks内容;查找queryList等关键字符,即可快速定位问题代码。
5、如果控制台打不开或无法进入,就要先看进程有没有在跑,如果进程有,但控制台或程序无法进入,一般就是有故障了,此时,可以通过相关日志进行后台分析分析。
三、后台日志分析:一般来说,新建立的环境,配置的问题多一点;已经运行的生成系统错误或bug 的可能性大点。
当出现故障时,就可以调取系统日志、中间件的日志,根据相关关键字(BEA-)网上搜索,或到官方网站对相关问题的描述进行查找。
WebLogic在启动及运行过程中会记录各种LOG信息,以帮助系统治理员对整个应用系统进行治理及维护。
1、log默认位置..\user_projects\domains\your_domain\servers\AdminServer\logs下面的AdminServer.log;access.log;domain_name.log新版的如:C:\Oracle\Middleware\user_projects\domains\base_domain\servers\Adm inServer\logs如果是重定向输出的,就看重定向输出的文件。
2、日志文件说明WebLogic SERVER运行日志假如WebLogic SERVER在启动或运行过程中有错误发生,错误信息会显示在屏幕上,并且会记录在一个LOG文件中,该文件默认名为AdminServer.log。
该文件也记录WebLogic的启动及关闭等其他运行信息。
可在Gernal属性页中设置该文件的路径及名字,错误的输出的等级等。
HTTP访问日志在WebLogic中可以对用HTTP,HTTPS协议访问的服务器上的文件都做记录,该LOG文件默认的名字为Access.log,内容如下,该文件具体记录在某个时间,某个IP地址的客户端访问了服务器上的那个文件。
127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather HTTP/1.1" 302 0127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather/index.Html HTTP/1.1" 200 176HTTP访问日志的属性可在HTTP属性页中进行设置。
DOMAIN运行日志记录一个DOMIAN的运行情况,一个DOMAIN中的各个WebLogic SERVER可以把它们的一些运行信息(比如:很严重的错误)发送给一个DOMAIN的ADMINISTRATOR SERVER上,ADMINISTRATOR SERVER把这些信息些到DOMAIN 日志中。
默认名为:domain_name.log 。
一般就看这个最多。
3、通过控制台查看或修改系统日志路径登录weblogic后台左侧菜单:Environment->Servers右侧菜单:AdminServer(admin)->logging只找到examplesServer.log、access.log配置如图:4、其他如果日志太少,里面没有记载相关信息,可参照日志文件的回滚设置。
在“滚动类型:”属性页中可以设置这些日志文件的回滚方式,当日志文件到一定得大小或过了设定的时间后,把日志信息保存到一个新的文件中。
WebLogic提供按文件大小和时间两种方式。
如下面的设置种,选择Rotation Type 为BY SIZE。
也就是当日志文件的大小达到500K时,重新写一个新的文件。
假如Rotation Type 为BY TIME,那么是每隔一段时间重新写一个新的文件。
并且对这些文件编号设置日志文件名如:_%yyyy%_%MM%_%dd%_%hh%_%mm%5、日志的处理:查看日志中输出的具体内容,再进行处理。
如:BEA-下面是一个线程阻塞的一个信息####<2011-8-13 上午03时51分46秒 GMT+08:00> <Error> <WebLogicServer> <dataweb1> <dc_admin1> <[ACTIVE] ExecuteThread: '11' for queue:'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <><1313178706712> <BEA-000337> <[STUCK] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "2,503" seconds working on the request"weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@deab5f", which is more than the configured time (StuckThreadMaxTime) of "2,400" seconds. Stack trace:四、产生hread Dump来分析问题hread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力。
虽然各个Java虚拟机thread dump打印输出格式上略微有一些不同,但是Thread dumps出来的信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。
Thread Dump特点:•能在各种操作系统下使用•能在各种Java应用服务器下使用•可以在生产环境下使用而不影响系统的性能•可以将问题直接定位到应用程序的代码行上Thread Dump能诊断的问题包括:•查找内存泄露,常见的是程序里load大量的数据到缓存•发现死锁线程•收集 Thread Dump进行 Thread Dump 的方法取决于安装挂起服务器实例的操作系统。