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)等。
Qing_WebLogic Server 12c 一些常见问题和解决方案
2015/1/12Qing_WebLogic Server 12c 一些常见问题和解决方案file:///C:/Users/Qing/Desktop/Qing_WebLogic%20Server%2012c%20%E4%B8%80%E4%BA%9B%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%92%8C%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html 1/1Qing_WebLogic Server 12c 一些常见问题和解决方案-1、Windows里面安装VMware虚拟机Linux,Linux下安装一个WebLogic Server 12c,启动domain域之后,外部主机无法访问此Domain域,但是可以ping通。
原因是因为Linux防火墙。
解决方案:停止防火墙:server iptables stop 最佳解决方案:实际应用中,我们最好不要停止防火墙,但是我们可以开放一个端口:打开/etc/sysconfig/iptables,加入一条-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT然后重启防火墙:/etc/init.d/iptables restart0、在linux里面启动WebLogic,之后直接关掉终端忘记按Ctrl+c关掉,会直接关掉这个WebLogic Server 12c 解决方案:杀掉进程,再启动备注:启动不要使用./startWebLogic.sh,应该使用nohup >nohup .out ./startWebLogic.sh 2>&1 & PS:nohup.out可以使其他文件名字使用nohup的命令可以后台打开这个脚本文件,不挂断的运行,从而不会因为你不小心关闭这个文件而导致的各种问题。
需要注意的是,因为我们启动WebLogic需要输入AdminServer的密码,而使用nohup的话,直接后台启动。
weblogic故障处理(BEA-000362)
weblogic故障处理(BEA-000362)文章分类:Java编程由于weblogic所在磁盘空间不足,导致weblogic运行日志无法读写到本地磁盘,weblogic宕机,重新启动无效,抛出以下异常:####<2011-2-15 上午11时32分57秒 CST> <Critical> <WebLogicServer> <liaoning8dfbce1> <AdminServer> <Main Thread> <<WLSKernel>> <> <> <1297740777470> <BEA-000362> <Server failed. Reason:There are 1 nested errors:weblogic.diagnostics.lifecycle.DiagnosticComponentLifecycleException: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileatweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(Archiv eLifecycleImpl.java:44)atweblogic.diagnostics.lifecycle.DiagnosticFoundationService.start(Diag nosticFoundationService.java:107)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileat weblogic.store.io.file.Heap.getNextRecoveryFile(Heap.java:794)at weblogic.store.io.file.Heap.recover(Heap.java:706)at weblogic.store.io.file.FileStoreIO.recover(FileStoreIO.java:585) at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:94)atweblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl. java:350)atweblogic.store.PersistentStoreManager.createFileStore(PersistentStore Manager.java:202)atweblogic.diagnostics.archive.DiagnosticStoreRepository.getStore(Diagn osticStoreRepository.java:61)atweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(ArchiveLifecycleImpl.java:42)... 4 moreCaused by: java.io.IOException: Error reading from file, 已到文件结尾。
weblogic日常维护总结与故障诊断
中间件故障诊断总结一、步骤: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);活动连接数合理。
WebLogic问题分析常用方法及技巧剖析
WebLogic问题分析常用方法及技巧说明:该文档专门针对WebLogic10.3怎么查问题、定位问题及日常维护中的一些小技巧,该文档适合对WEB应用程序有一定认识、对WebLogic 有一定了解,对当前主机环境熟悉,对Aix命令有一定基础的相关人员。
其它非法人员切记在不了解的情况下做任何修改,执行任何命令,以此带来的任何问题及影响概不负责。
一、日常监控1、集群负载监控1.查看集群内各Server的单独访问地址,是否能正常访问,Server访问地址后面有统一说明,常见的无法访问原因有:a.Server没有启动(提示Service not available),启动Server即可;b.应用程序是否为Active(提示403或404),update或start即可;c.应用程序已经是Active,Server也RUNNING仍无法访问,则可以通过应用程序的Monitoring查看各Server上的运行情况,查看对应Server的*.out日志,通常情况下是应用程序更新有问题导致的;2.查看Proxy Server的线程数,根据应用程序根路径名可以定位是哪个具体的Server或集群,若有队列吞吐量为0的情况说明集群没有实现分发(需要分析Proxy的web.xml 文件,看看对应的servlet(即应用程序根路径))是否有如下配置:<servlet><servlet-name>Ngboss</servlet-name> #该名称必需要有对应的servlet-mapping<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class><init-param><param-name>WebLogicCluster</param-name><param-value>10.131.39.75:7101|10.131.39.76:7101 #IP及端口是否配置正确,顺序是否正确</param-value></init-param><init-param><param-name>CookieName</param-name><param-value>NGBOSS_JSESSIONID</param-value> #该名称必需与应用程序的weblogic.xml里配置的CookieName一致</init-param><init-param><param-name>wl-dispatch-policy</param-name><param-value>ngboss</param-value></init-param> #该段配置是用来对集群分发,配合它才能实现集群的分发,param-value即servlet 的访问名称</servlet>............<servlet-mapping><servlet-name>Ngboss</servlet-name> #该名称必需要有对应的servlet <url-pattern>/*</url-pattern></servlet-mapping>3.查看应用程序的Monitoring的Session,根据各Server上的在线Session数即可判断集群是否实现负载,常见的无法负载原因有:a.集群内存在已挂死的Server(查看各Server的*.out日志即可);b.Proxy的web.xml配置错误,如IP、端口、CookieName、servlet名等;c.应用程序发布的target是不是在集群;2、Server内存、队列、线程数监控1. 1.进入对应的Server监控页,查看Performance的Java 内存、Threads的队列及线程数、JDBC连接数等3、WTC监控1.Service->WTCServer->Ctrl是否connected4、JDBC监制1.查看连接的总体情况,看看是否有未释放的连接,查看时要多次刷新页面看看Java内存是否可以正常回收、队列及线程数是否有居高不下、JDBC是否有长时间不释放(这种情况下需要DBA配合分析)5、日志监控1.定期查看server/logs和logs/xxx_error.log出现的错误日志6、JMS监制1.Interoperability->WTC Servers->Connected是否为true7、后台进程监控1.用命令ps –ef | grep $ServerName,看进程是否存在,ServerName列表可参看Server访问地址里的访问根路径名二、问题分析定位必杀技1.用topas命令,查看占用CPU高的进程ID;2.然后用ps -ef | grep $ID即可看到对应的ServerName;3.然后进Console看该Server的运行状态(RUNNING),如果Server已经Down掉了可以直接通过Console启起来,记得不要把ngbossdomain/servers/$ServerName/logs下的文件删除,用作之后的日志分析4.在Console可以操作的前提下,还可以查看该Server的Dump 日志、进程的内存使用情况、队列及空闲线程、JDBC连接数等5.若Console不可操作(一般在有Server挂死的情况下),可以用命令ps -mp $ID -oTHREAD | grep R;kill -3 $ID(需要记录该命令的输出内容),执行完后会在ngbossdomain 下生成javacore文件(该文件与Console里的Dump日志内容相似),该命令可以多执行几次,生成多个javacore文件,方便之后的问题分析;如果需要重启服务可以用kill -9 $ID,执行完这个命令后该Server会自动重启,切记要先生成javacore,再kill -9;说明:通过分析某一进程的各个线程运行情况,定位问题,可以通过多种途径获取进程,如:1.根据有问题的系统模块找到对应的Server,然后用ps –ef | grep ServerName即可得到进程名2.根据WL的控制台找到对应的Server,然后用ps –ef | grep ServerName即可得到进程名三、javacore快速定位1、生成javacore文件1.通过命令ps -mp $ID -o THREAD | grep R;kill -3 $ID($ID为进程ID),即可在域目录(ngbossdomain)下生成与进程ID对应的javacore文件,主要分析*.txt文件,记下该命令的输出日志,记下着色处的数字,示例如下:2.:/ngboss/webapp $ps -mp 286906 -o THREAD | grep R;USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMANDwebapp 286906 53800 - A 90 60 245 * 242001 - - /usr/java6_64/jre/bin/java =acctmanm22 -Djava.security.policy=/bea/weblogic/server/lib/weblogic.policy-Dweblogic.management.server=http://10.200.141.23:7001-Djava.library.path=/usr/java6_64/jre/lib/ppc64/default:/usr/java6_64/jre/lib/ppc64:/usr/java6 _64/jre/lib/ppc64:/usr/java6_64/jre/lib/ppc64/default:/usr/lib:/usr/java6_64/jre/lib/ppc64/j9v m:/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/../lib/ppc64::/bea/weblogic/server/native/aix/ ppc64:/usr/lib-Djava.class.path=/bea/weblogic/server/lib/AIX-ComboPatch-Essex.jar:/bea/weblogic/server/ lib/CR370915_1030GA.jar:/bea/patch_wls1030/profiles/default/sys_manifest_classpath/webl ogic_patch.jar:/bea/patch_cie660/profiles/default/sys_manifest_classpath/weblogic_patch.jar: /usr/java6_64/lib/tools.jar:/bea/weblogic/server/lib/weblogic_sp.jar:/bea/weblogic/server/lib/ weblogic.jar:/bea/modules/features/weblogic.server.modules_10.3.0.0.jar:/bea/weblogic/serv er/lib/webservices.jar:/bea/modules/org.apache.ant_1.6.5/lib/ant-all.jar:/bea/modules/net.sf.an tcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar::/bea-Dweblogic.system.BootIdentityFile=/ngboss/webapp/ngbossdomain/servers/acctmanm22/da ta/nodemanager/boot.properties -Dweblogic.nodemanager.ServiceEnabled=true -Dweblogic.security.SSL.ignoreHostnameVerification=false-Dweblogic.ReverseDNSAllowed=false -Xms3072m -Xmx4096m -Dibm.stream.nio=true -Dfile.encoding=GBK nguage=zh -Duser.region=CN -Xgcpolicy:gencon weblogic.Server- - - 975497 R 88 141 0 - 400000 - - -说明:该命令生成当进程正在运行(状态为R)的线程日志,着色处为线程ID,将该ID用Windows自带的计算器转换成16位即可在javacore文件里找到对应的线程日志2、分析javacore定位问题1.用vi命令查看javacore*.txt文件,查找线程ID转16位的串;2.如果1查到的内容是:GC日志、Wait状态、autoLogin栈都不需要关注,只关注有带有相应模块串的异常栈信息,示例如下:3.3XMTHREADINFO "ExecuteThread: '2' for queue: 'default'" TID:0x0000000117168700,j9thread_t:0x00000001170E8160, state:CW, prio=53XMTHREADINFO1 (native thread ID:0x325063, native priority:0x5, native policy:UNKNOWN)4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1589(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1801(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalDALC(T4CMAREngine.java:2125(CompiledCode))4XESTACKTRACE at oracle/jdbc/driver/T4C8TTIrxh.unmarshalV10(T4C8TTIrxh.java:107(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4C8Oall.receive(T4C8Oall.java:654(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194(Compile d Code))4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.fetch(T4CPreparedStatement.java:1017(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java: 275(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.next(OracleResultSetImpl.java:228(Compiled Code)) 4XESTACKTRACE at weblogic/jdbc/wrapper/ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Bytecode PC:20(Compiled Code))4XESTACKTRACE at com/linkage/appframework/data/DatasetResult.<init>(DatasetResult.java:28(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1612(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1741(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1756(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryList(BaseEntity.java:246(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryListBySqlstoreParser(BaseEntity.java:566(Comp iled Code))4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/dao/QueryServerInfoDAO.queryServerInfo(Query ServerInfoDAO.java:61)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/bean/QueryServerInfoBean.queryCheckRecord(Qu eryServerInfoBean.java:74)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/page/QueryServerInfo.exportExcel(QueryServerInfo.java:170)4XESTACKTRACE at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)4.根据2即可定位到是具体应用的具体Java文件的具体方法,定位具体问题,然后再去分析该代码即可3、WADE应用javacore文件分析小技巧1、后台定位1.找到进程ID(可通过topas,或ps -ef | grep ServerName等方法),执行kill -3命令,生成javacore文件2.vi 1 生成的javacore文件,查找queryList或export关键字符,即可快速定位问题代码2、前台定位1.登录WebLogic控制台,打开有问题Server,进入Performance监控页,生成Dump ThreadStacks内容;2.查找queryList或export关键字符,即可快速定位问题代码;说明:针对javacore文件分析,要灵活运行相关信息。
Weblogic常见报错以及解决方法[转载]
Weblogic常见报错以及解决⽅法[转载]Weblogic常见报错以及解决⽅法[转载]2020-09-13 09:55:22 4109 收藏 11⽂章标签:前⾔:Oracle WebLogic中间件在⽹站部署过程中经常会使⽤到。
该产品系列的核⼼是Oracle WebLogic服务器,它是⼀个功能强⼤和可扩展的Java EE服务器。
今天整理了在运维过程中经常会遇到的各种报错以及解决⽅法,纯技术⼲货,希望能够对正在学习weblogic过程中的您提供帮助。
weblogic有两种部署⽅式,单点模式和集群模式,单点模式直接创建⼀个域,在控制台进⾏程序部署即可;⽽集群模式分为admin(管理)节点和Managed(被管理)节点,管理节点通过控制台对被管节点进⾏管理,程序部署在被管节点的集群上。
不论是单点模式,还是集群模式,常见的报错基本⼀致。
基本概念Domain :域是作为单元进⾏管理的⼀组相关的 WebLogic Server 资源。
⼀个域包含⼀个或多个 WebLogic Server 实例,这些实例可以是集群实例、⾮群集实例,或者是集群与⾮群集实例的组合。
⼀个域可以包含多个集群。
域还包含部署在域中的应⽤程序组件、此域中的这些应⽤程序组件和服务器实例所需的资源和服务。
应⽤程序和服务器实例使⽤的资源和服务⽰例包括计算机定义、可选⽹络通道、连接器和启动类。
Domain 中包含⼀个特殊的 WebLogic 服务器实例,叫做 Administration Server,这是我们配置管理Domain中所有资源的核⼼。
通常,我们称加⼊Domain中的其他实例为 Managed Server,所有的Web应⽤、EJB、Web Services和其他资源都部署在这些服务器上。
Administration Server :管理服务器是控制整个域配置的中⼼操作节点,管理服务器维护着整个域的配置并将配置分配到每个被管理服务器 Managed Server 中。
weblogic运维时经常遇到的问题和常用的配置
weblogic运维时经常遇到的问题和常⽤的配置希望这篇能把weblogic运维时经常遇到的问题、常⽤的配置汇总到⼀起。
1、配置jvm参数:⼀般在domain启动过程中会看到以下启动的⽇志信息,如下图所⽰:图中红⾊⽅框部分为启动weblogic domain的命令。
其中包括了jvm参数以及classpath信息。
【注意】java -client是由于之前建⽴的domain是开发模式的。
⽣产模式的话,这⾥执⾏的是java -server。
⾄于-client与-server的区别,⼤家去google下吧,这⾥不介绍了。
那如何修改这个配置呢?找到setDomainEnv.cmd⽂件(linux下⾯就是setDomainEnv.sh了),位置为:weblogic11\user_projects\domains\example\bin\setDomainEnv.cmd修改⽂件中的MEM_ARGS部分,相关参数配置如下:Java代码1. call "%WL_HOME%\common\bin\commEnv.cmd"2.3. set WLS_HOME=%WL_HOME%\server4.5. if "%JAVA_VENDOR%"=="Sun" (6. set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m7. set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m8. ) else (9. set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m10. set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m11. )12.13. set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%14.15. set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%16.17. if "%JAVA_USE_64BIT%"=="true" (18. set MEM_ARGS=%MEM_ARGS_64BIT%19. ) else (20. set MEM_ARGS=%MEM_ARGS_32BIT%21. )22.23. set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m24.25. set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m26.27. if "%JAVA_USE_64BIT%"=="true" (28. set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%29. ) else (30. set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%31. )32.33. set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m34.35. set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m36.37. if "%JAVA_USE_64BIT%"=="true" (38. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%39. ) else (40. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%41. )42. if "%JAVA_VENDOR%"=="Sun" (43. if "%PRODUCTION_MODE%"=="" (44. set MEM_DEV_ARGS=-XX:CompileThreshold=8000 %MEM_PERM_SIZE%45. )46. )47.48. @REM Had to have a separate test here BECAUSE of immediate variable expansion on windows49.50. if "%JAVA_VENDOR%"=="Sun" (51. set MEM_ARGS=%MEM_ARGS% %MEM_DEV_ARGS% %MEM_MAX_PERM_SIZE%52. )53.54. if "%JAVA_VENDOR%"=="HP" (55. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%56. )57.58. if "%JAVA_VENDOR%"=="Apple" (59. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%60. )61.62. @REM IF USER_MEM_ARGS the environment variable is set, use it to override ALL MEM_ARGS values63.64. if NOT "%USER_MEM_ARGS%"=="" (65. set MEM_ARGS=%USER_MEM_ARGS%66. )主要就是修改-Xms、-Xmx、-XX:PermSize、-XX:MaxPermSize的参数(视具体硬件、JVM负载情况进⾏修改)。
Weblogic常见问题-sy
Weblogic常见问题1.1Server日志里报错:Authentication for user denied1、出现该错误几种情况:1)、执行下面脚本启动受管server时报错:Authentication for user denied2)、Weblogic92选择产品模式的时候,报了一个异常,但是选择开发模式的时候却能正常1.2Weblogic12配数据源,测试连接时报错:URL:jdbc:oracle:thin:@192.168.1.149:1521:orcl连接测试失败。
IO 错误: The Network Adapter could not establish the connection<br/>oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)<br/>oracle.jdbc.driv er.PhysicalConnection.<init>(PhysicalConnection.java:546)<br/>oracle.jdbc.driver.T4CConnection.<init >(T4CConnection.java:236)<br/>oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensi on.java:32)<br/>oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)<br/>web logic.jdbc.co mmon.internal.DataSourceUtil.testConnection(DataSourceUtil.java:298)<br/>com.bea.console.utils.jdbc. JDBCUtils.testConnection(JDBCUtils.java:746)<br/>com.bea.console.actions.jdbc.datasources.createjdb cdatasource.CreateJDBCDataSource.testConnect ionConfiguration(CreateJDBCDataSource.java:474)<br/ >sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)<br/>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br/>s un.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br/>n g.reflect.Method.invoke(Method.java:597)<br/>ui.pageflow.FlowController.invok eActionMethod(FlowController.java:870)<br/>ui.pageflow.FlowController.getActi onMethodForward(FlowController.java:809)<br/>ui.pageflow.FlowController.inte rnalExecute(FlowController.java:478)<br/>ui.pageflow.PageFlowController.inter nalExecute(PageFlowController.java:306)<br/>ui.pageflow.FlowController.execut e(FlowController.java:336)<br/>ui.pageflow.internal.FlowControllerAction.execut e(FlowControllerAction.java:52)<br/>org.apache.struts.action.RequestProcessor.processActionPerform( RequestProcessor.java:431)<br/>ui.pageflow.PageFlowRequestProcessor.access $201(PageFlowRequestProcessor.java:97)<br/>...jdbc:oracle:thin:@192.168.1.149:1521:orcl@后面的主机名可以主机名、IP地址、localhost,这里我们写的是IP地址,但是Oracle11g 数据的listener.ora和tnsnames.ora里的主机名写的都是localhost,所以weblogic连接测试数据源时会报错The Network Adapter could not establish the connection等等。
Weblogic常见问题-sy
Weblogic常见问题1.1Server日志里报错:Authentication for user denied1、出现该错误几种情况:1)、执行下面脚本启动受管server时报错:Authentication for user denied2)、Weblogic92选择产品模式的时候,报了一个异常,但是选择开发模式的时候却能正常1.2Weblogic12配数据源,测试连接时报错:URL:jdbc:oracle:thin:@192.168.1.149:1521:orcl连接测试失败。
IO 错误: The Network Adapter could not establish the connection<br/>oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)<br/>oracle.jdbc.driv er.PhysicalConnection.<init>(PhysicalConnection.java:546)<br/>oracle.jdbc.driver.T4CConnection.<init >(T4CConnection.java:236)<br/>oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensi on.java:32)<br/>oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)<br/>web logic.jdbc.co mmon.internal.DataSourceUtil.testConnection(DataSourceUtil.java:298)<br/>com.bea.console.utils.jdbc. JDBCUtils.testConnection(JDBCUtils.java:746)<br/>com.bea.console.actions.jdbc.datasources.createjdb cdatasource.CreateJDBCDataSource.testConnect ionConfiguration(CreateJDBCDataSource.java:474)<br/ >sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)<br/>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br/>s un.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br/>n g.reflect.Method.invoke(Method.java:597)<br/>ui.pageflow.FlowController.invok eActionMethod(FlowController.java:870)<br/>ui.pageflow.FlowController.getActi onMethodForward(FlowController.java:809)<br/>ui.pageflow.FlowController.inte rnalExecute(FlowController.java:478)<br/>ui.pageflow.PageFlowController.inter nalExecute(PageFlowController.java:306)<br/>ui.pageflow.FlowController.execut e(FlowController.java:336)<br/>ui.pageflow.internal.FlowControllerAction.execut e(FlowControllerAction.java:52)<br/>org.apache.struts.action.RequestProcessor.processActionPerform( RequestProcessor.java:431)<br/>ui.pageflow.PageFlowRequestProcessor.access $201(PageFlowRequestProcessor.java:97)<br/>...jdbc:oracle:thin:@192.168.1.149:1521:orcl@后面的主机名可以主机名、IP地址、localhost,这里我们写的是IP地址,但是Oracle11g 数据的listener.ora和tnsnames.ora里的主机名写的都是localhost,所以weblogic连接测试数据源时会报错The Network Adapter could not establish the connection等等。
中间件weblogic日常维护手册-20131111
中间件日常维护手册(weblogic部分)(v 120925)目录1. 每天要维护的文档 (3)1.1 启动服务相关的几个文件 (3)1.1.1 startWebLogic.cmd/startWebLogic.sh (3)1.1.2 startManagedWebLogic.cmd/startManagedWebLogic.sh (3)1.1.3 setDomainEnv.cmd/setDomainEnv.sh (3)1.1.4 stopWebLogic.cmd/stopWebLogic.sh (4)1.1.5 stopManagedWebLogic.cmd/stopManagedWebLogic.sh (4)1.1.6 thread的监控 (4)1.1.7 JDBC监控 (5)1.1.8 检查是否生成javacore和heapdump文件 (5)1.2.weblogic配置文件config.xml (5)1.2.1 关于WebLogic 管理和config.xml 文件概述 (6)1.2.2 何时去编辑config.xml (6)1.2.3 config.xml 文件里的内容 (6)1.3 每天要维护的日志文件 (7)1.3.1 域日志(domain.log) (7)1.3.2 server.log (7)1.3.3 access.log (7)1.4 系统文件 (8)1.4.1硬盘分区使用情况 (8)1.4.2 CPU 负载情况 (8)1.4.3 内存MEMORY和SWAP使用率 (8)2.每周要维护的文档 (9)2.1 应用属性文件weblogic.xml (9)2.1.1 说明 (9)2.1.2 可配置的属性详解 (9)2.2属性文件web.xml (10)2.2.1 说明 (10)2.2.2 文件说明 (10)3.每月要维护的文件 (11)3.1 weblogic 系统文件备份 (11)3.2 定期日志删除 (11)3.3 补丁的更新 (11)1. 每天要维护的文档1.1 启动服务相关的几个文件WebLoigc 的启动是通过启动文件来完成的,包括启动管理服务器(startWebLogic)、启动被管服务器(startManagedWebLogic)、设置域环境(setDomainEnv)、关闭管理服务器(stopWebLogic)、关闭被管服务器(stopManagedWebLogic)等。
WEBLOGIC启动不起来的常见原因
WEBLOGIC启动不起来的常见原因今天碰到的问题⽐较怪,WEBLOGIC启动不起来的常见原因(1)多⽤户启动都去启动这个DOMAIN(2)没有正常执⾏stopWeblogic(3)内存配置参数异常⼀般还可以使⽤DOS窗⼝执⾏来检查问题,我今天碰到的是DOS⼀执⾏连DOS窗⼝都被强制关掉,机器重新启动/关闭杀毒软件/重建空DOMAIN/WEBLOGIC重新安装全⽆效,只能从根本上找原因了WEBLOGIC启动最后是⽤java去执⾏weblogic.class,并且带了⼀堆参数,我这次出现的问题是这样的其中有个标准参数是 JAVA_OPTIONS,这个参数标准初始化出来的内容如下-da -Dplatform.home=C:\bea10\WLSERV~1.0 -Dwls.home=C:\bea10\WLSERV~1.0\server -Dweblogic.home=C:\bea10\WLSERV~1.0\server -Dwli.home=C:\bea10\WLSERV~1.0\integr ation -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testC onsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\bea10\patch_wls100 0\profiles\default\sysext_manifest_classpath;C:\bea10\patch_wlw1000\profiles\def ault\sysext_manifest_classpath在我的当前环境下,最后两个参数-Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\bea10\patch_wls1000\profiles\default\sysext_manifest_classpath;C:\bea10\patch_wlw1000\profiles\default\sysext_manifest_classpath ⼀加进去,WEBLOGIC窗⼝⾃动关闭,经查看,第⼀个参数⼲脆是没设置值,第⼆个参数设置的⽬录在我本机是不存在的路径,把这两个参数去掉就能正确启动了。
案例分析---Weblogic服务启动后自动停止问题
【问题描述】
进入服务后,服务中出现“请按任意键继续”的提示,按了任意键后,服务退出。
【排查过程】
出现服务自动停止运行,可能原因有:
(1)相应数据库服务未启动;
(2)中间件weblogic有问题;
(3)已经有服务启动,之后启动的服务会自动退出。
1、检查oracle数据库服务,oracle服务已经启动
2、检查weblogic服务是否有问题,我们可以查看到重启服务时提示
有另一个服务正在运行。
3、查看任务管理器中,确实有CMD.EXE的进程,并且我们注意到,
同时有计划任务在运行,因此怀疑在任务计划中启动了服务。
查看计划任务,果然是已经启动了weblogic服务,
【解决方案】
因服务在计划任务中设置成了自动启动,因此不需要手动打开服务。
- 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 的方法取决于安装挂起服务器实例的操作系统。