WebLogic问题分析常用方法及技巧剖析

合集下载

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安装配置及常见问题

weblogic安装配置及常见问题

weblogic安装配臵及常见问题在安装、配臵WEBLOGIC时,主要有以下几个方面的配臵和问题:一、JSP的设臵1。

weblogic.properties文件中的设臵在PROPERTIES文件中对于JSP进行设臵:# Set up WebLogic JSP propertiesweblogic.httpd.register.*.jsp=\weblogic.servlet.JSPServletweblogic.httpd.initArgs.*.jsp=\pageCheckSeconds=1,\compileCommand=c:/jdk1.3/bin/javac.exe,\workingDir=C:/weblogic/myserver/classfiles,\encoding=gb2312(或GBK),\verbose=true2。

查看JSP生成的JAVA代码在上边的配臵中,到workingDir指定的目录下查找相应目录下的JAVA文件。

在测试JSP时,如果出现编译问题,由于报错位臵不精确,因此经常需要查看相应的JAVA源文件,以便找到真正的问题所在3。

手工编译JSP的方法运行setEnv.sh;java weblogic.jspc your.jsp二、SERVLET的设臵1。

如何进行SERVLET的登记?#用于进行servlet的登记weblogic.httpd.register.test_servlet=doctor.servlets.test_servlet weblogic.httpd.register.test1_servlet=doctor.servlets.test1_servlet weblogic.httpd.register.test2_servlet=doctor.servlets.test2_servlet2。

如何不登记一个SERVLET,而直接测试该SERVLET首先在weblogic.properties文件中登记weblogic.httpd.register.servlets=weblogic.servlet.ServletServlet然后在浏览器中键入:http://host:7001/servlets/your_package/your.class3。

WebLogic应用典型问题分析和解决

WebLogic应用典型问题分析和解决
务器 的 硬件 性 能? J EE的 J 2 VM 内存 堆 应 该如 何 设 置 ,
配 置越 大越 好 。但事 实 上还 是 有一 些手 段 和依 据来 进行 判 断 ,帮 助 我们 设置 一 个 尽可 能 优化 的值 。首先 J VM 内存 堆 的设 置并 非越 大 越好 ,加 大 内存 本身 是不 能 改变应 用性 能 的 。在进 行 内存设 置调 优之 前 ,必 须先 讲述 下 J v 中 aa
内。因此 可 以综合 这两 点来 考虑 单 台应 用服 务器 设 置几 个
We L g c S r e 例 比较 合 适 。 b o i e v r实
维0 sc 一 表示 GC进行本 次垃 圾 回收所 消 耗 .0 0 0 eS
的时 间 。
W e L gc 以近 乎线 性地 提高 线程数 。线程数 越 多 ,花 b o i可
费 在 线程 切 换 的时 间也 就 越 多 ;线 程 数越 小 ,CPU可 能 无法 得到 充分 的利 用 。为获 取一 个理 想 的线 程数 ,需要 经 过反 复的 测试 。可 以 以 2 P 个数 为基 准进 行调 整 ( 5 CU X 最 好每 个 C PU小于 5 0个 线程 ) 。当 空闲线 程较 少 ,CP U利 用 率较 低时 ,可 以适 当增加 线程 数 的大 小。
中 ,积 累的 一些 经验和 解决 方 法。
回 收 ,以释 放 内存保 障 应用健 康 运 行 。改变 内存设 置 的 目
2 We L gc S r e b o i e v r及内存堆的设置
2 1依 据 C U和 R M设置 S r r . P A ev 实例 e

个 W e Lo i C u e 群 中的 S v r 以 部署 在 b g c l s r集 ee 可

weblogic常见问题

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中间件常见问题

1Weblogic9.2 在linux下启动很慢打开setDomainEnv.sh 增加-Djava.security.egd=file:/dev/zero修改参数为JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/zero"2Windows x64 jrockit 启动3000M 报OutOfMemoryng.OutOfMemoryError: class allocation, 153359080 loaded, 154140672 footprint JVM@check_alloc(src/jvm/model/classload/classalloc.c:118). 19416 bytes通过修改启动内存,设置4G以上3后台日志出现以下报错User <anonymous> does not have permission on weblogic.management.home to perform lookupoperation1、网上找到的解决方案是:打开weblogic控制台,点击你部署工程的那个domain,在右边主页的下面有一个“View Domain-wide Security Settings”连接,点开它,看看复选框“Anonymous Admin Lookup Enabled”前面是没选的,把它勾上。

2、使用了1中的解决方案还是报这个错误,经过高手提醒后发现原因:如果一个weblogic.xml中包含以下的内容:<container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor>这个配置的意思是使weblogic优先加载应用WEB-INF/lib下面的jar包。

weblogic部署常见问题

weblogic部署常见问题

weblogic部署常见问题weblogic.xml是可以选的,可以不要,除非你需要先加载web-inf/lib文件。

weblogic.xml主要配置web容器的一些属性,比较JSP编译时间间隔、编译路径等web.xml是配置整个应用工程的属性,如servlet 等JSP乱码:在你工程目录下面的/WEB-INF里面有一个weblogic.xml这个文件里有字符集设置(这个weblogic.xml文件是你在使用weblogic对自己的这个WEB工程进行发布时,通过向导一步一步进行参数设置之后,自动生成的)。

weblogic.xml里的字符集设置为:/*UTF-8就我个人成功部署的经历说说我的部署心得。

/doc/9018782586.html,/s/blog_4745d 1c1010171av.html1.部署出错。

部署出错常见问题就是,web.xml不规范。

web.xml不规范将直接导致部署不成功!weblogic对web.xml检查非常严格,大部分能在tomcat下调试成功的,在weblogic下不一定会成功。

原因是,tomcat不能算是一个服务器所以检查相对不够严格。

注意这里说的tomcat指的是5.5及以下。

tomcat6在整个结构上有了一定的改变,部分tomcat5.5能通过的,在tomcat6下并不一定成功!所以出错后,应当根据提示检查下web.xml书写是否规范。

部署不成功的另一种问题,JRE版本不对应。

换句话说就是服务器上的JDK低于你开发环境中的JDK,导致的版本出错。

这个是比较郁闷的,通常情况下有两种建议:其一,最好的办法是将服务器上的JDK升级至官方最高版本。

这样做的好处是,不用担心版本问题,另外新版本通常支持新的特性,对开发也有很大的帮助。

其二,将本地的JDK和服务器上的JDK控制在同一个版本。

这样就不用担心版本不对应。

下面说下问题出现以后的解决方法,通过MyEclipse的项目属性->JRE设置->添加新的JRE->让项目的使用新添加的JRE。

Weblogic问题汇总

Weblogic问题汇总

Weblogic问题汇总1. weblogic unable to get file lock问题在项⽬使⽤过程中,⾮正常结束Weblogic进程导致Weblogic⽆法启动,出现以下错误:<BEA-141281> <unable to get file lock, will retry解决⽅法:1)第⼀步,杀死锁定AdminServier.lok的进程通过 fuser -u ⽂件名找出占⽤⽂件的进程PID,然后杀死即可。

fuser -udomains/XXX_domain/servers/AdminServer/tmp/AdminServer.lok*******/AdminServer.lok 4657kill 46572)第⼆步,删掉Domain下所有的*.lok⽂件domains/XXX_domain/edit.lokdomains/XXX_domain/config/config.lokdomains/XXX_domain/servers/AdminServer/tmp/AdminServer.lokdomains/XXX_domain/servers/AdminServer/data/ldap/ldapfiles/EmbeddedLDAP.lok3)第三步,删掉Domain下所有的*.DAT⽂件find servers/ -name "*.DAT"2.Authentication denied: Boot identity not valid问题当weblogic密码发⽣修改或变动可能会导致此问题解决⽅法:⽅案⼀:检查对应server下是否有security⽬录及boot.properties⽂件没有的的话增加相应⽬录和⽂件,⽂件内容可参考AdminServer,修改为对应的weblogic明⽂⽤户名及密码,⾸次启动成功后会⾃动加密删除domains/XXX_domain/servers/XXX-Server/data/ldap⽬录⽅案⼆:删除boot.propertiesdomains/XXX_domain/servers/XXX-Server/security/boot.propertiesdomains/XXX_domain/servers/XXX-Server/data/ldap。

weblogic日常维护总结与故障诊断

weblogic日常维护总结与故障诊断

中间件故障诊断总结一、步骤:1、准确描述现象:客户说的和自己查看到的:平台、版本、操作、信息等。

特别是,故障前是否有做过什么操作:网络调整、设备调整、主机参数调整、配置文件修改……反正将这一切都列入排查的对象。

2、使用工具收集数据,收集配置文件、日志、dump文件等等。

3、使用分析数据,根据问题或收集的数据,使用适当的工具分析数据,当然包括了在网上和在官方支持站点搜索类似的问题的解决办法。

4、尝试解决问题,根据找到的问题点,尝试解决。

如修改错的,复原正确的;运行有问题的,适当调整运行的环境和运行的参数等等。

5、给出最佳解决方案,一般就是继续观察了。

6、总结经验并加以重用,知识积累。

二、通过前台收集基本的信息:1、重点是故障前做过的操作2、比对运行平台是否在官方的兼容性列表中,一般就是关注各个版本,特别是一些比较怪异的问题3、检查环境和参数,如能打开控制台,就在控制台中初步观察,一般进入控制台的格式是如:。

常用的留意点如下: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]ExecuteThre ad:'15'forqueue:(self-tuning)'><<WLSKernel>><><><BEA-000337><[STUCK]Execut eThread:'19'forqueue:(self-tuning)'hasbeenbusyfor"2,492"secondsworkingonth erequestwhichismorethantheconfiguredtime(StuckThreadMaxTime)of"2,400"secon ds.Stacktrace:Method)Source)E、JDBC(域-环境-服务器,点击具体的serve后进入,监视-JDBC);活动连接数合理。

weblogic中间件常见问题

weblogic中间件常见问题

1Weblogic9.2 在linux下启动很慢打开setDomainEnv.sh 增加-Djava.security.egd=file:/dev/zero修改参数为JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/zero"2Windows x64 jrockit 启动3000M 报OutOfMemoryng.OutOfMemoryError: class allocation, 153359080 loaded, 154140672 footprint JVM@check_alloc(src/jvm/model/classload/classalloc.c:118). 19416 bytes通过修改启动内存,设置4G以上3后台日志出现以下报错User <anonymous> does not have permission on weblogic.management.home to perform lookupoperation1、网上找到的解决方案是:打开weblogic控制台,点击你部署工程的那个domain,在右边主页的下面有一个“View Domain-wide Security Settings”连接,点开它,看看复选框“Anonymous Admin Lookup Enabled”前面是没选的,把它勾上。

2、使用了1中的解决方案还是报这个错误,经过高手提醒后发现原因:如果一个weblogic.xml中包含以下的内容:<container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor>这个配置的意思是使weblogic优先加载应用WEB-INF/lib下面的jar包。

WebLogic应用部署及常见问题

WebLogic应用部署及常见问题

WebLogic应用部署及常见问题一、应用部署1.1登录(默认域账号密码:weblogic/weblogic)1)服务器启动后,打开Web控制台首页,点击右上方“Start theAdministration Console”,进入控制台登录页面,如下图所示2)输入用户名口令,默认为weblogic/weblogic1.2建立数据源1)进入控制台首页后,选择服务 / JDBC / 数据源,如下图所示2)在“更改中心”面板中,点击“锁定并编辑”按钮,这时右边窗口中的“新建”按钮被激活,如图所示3)点击“新建”按钮,进入“新建JDBC数据源”4)根据下表以及下图所示填写和选择相关项:5)点击下一步,进入“事务选择”,保持默认即可项:7)点击下一步,进入“测试数据库连接”,如图所示:8)点击下一步,进入“选择目标”,保持默认即可:9)点击“完成”,进入如下所示界面,此时新建的数据源“SGCCData Source”已经列在右边表格当中,等待激活更改10)点击“更改中心”面板中的“激活更改”按钮,使之生效,至此数据源建立完毕。

1.3发布应用1)进入控制台首页后,选择部署,如下图所示2)在“更改中心”面板中,点击“锁定并编辑”按钮,这时右边窗口中的“安装”按钮被激活,如图所示3)点击“安装”按钮,进入“安装应用程序助手”4)在位置列表中提供的驱动器列表中,选择具体的应用程序所在路径,进入如下界面,选择一个应用进行部署,下面以“cell”为例,依次图示部署应用的各个步骤5)在接下来的界面中,选择“将此部署安装为应用程序”6)点击下一步,进入到“可选设置”,保持默认不用更改7)点击下一步,检查选项并单击“完成”8)单击完成后,进入如下界面,等待激活9)点击“激活更改”后,显示如下界面10)再次选择“部署”,在部署列表中,选中刚才发布的cell应用,在“启动”下拉菜单中单击“为所有请求提供服务”11)接下来系统显示确认界面,点击“是”12)请求发送后,进入如下提示界面,可以看到在部署应用列表中,刚才发布的应用cell状态一栏,已经显示为“活动”13)点击名称“cell”,在“cell的设置”中,单击tab页“测试”,在这里提供了测试cell应用程序的测试点cell部署成功(注意先要成功部署dbnetgrid)应用二、常见问题:2.1‘600’second问题1)后台报错如下图:类似报错“which is more than theconfigured time <StruckThreadMaxTime> of “600”seconds”2)登录http://ip:3000/console3)点击“环境”—“服务器”后:4)点击“AdminServer(管理)”:5)点击“超载”:6)选择“锁定并编辑”,修改“最长线程阻塞时间”,如果报错中为“600”,则修改为>600即可。

07_WebLogic Server运行常见问题

07_WebLogic Server运行常见问题
BEA Weblogic Server 8.1 运行常见问题
WebLogic Server挂起
问题描述
出现如下情况时怀疑服务器挂起:
服务器不响应新的请求。 请求超时。
请求处理的时间越来越长(其最终结果可能是挂起)。
通常,服务器挂起不会表现为服务器崩溃,但服务器挂起之后可能会崩溃
©2003 BEA Systems, Inc. | 9
…打开文件过多
发生问题的原因
这些异常指出操作系统 (OS) 资源问题和操作系统与 JVM 进程用完文 件描述符的原因。 在几个并发用户连接到服务器之后通常会发生此问题。Java 打开许多 文件,以便读取运行应用程序所必需的类。大量应用程序会使用许多 文件描述符,这会导致缺乏新的文件描述符。同样,每个新的套接字 都需要一个描述符。客户端和服务器通过 TCP 套接字进行通信。在与 服务器建立连接时,每个浏览器的 http 请求都使用 TCP 套接字。
…内存不足/内存泄漏问题
对于本地 OOM 问题
收集下列信息:
-verbosegc 输出,通过它可监视 java 堆使用量。这样将有助于了解此应用程序的 java 内存要求。 定期记录进程虚拟内存大小,从启动应用程序时起直到 JVM 用完本地内存。这样将 有助于了解此进程是否确实达到该操作系统的大小限值。
发生问题的原因
服务器挂起有多种原因。一般而言,服务器挂起是因为缺少某种资源。缺少资源会阻止 服务器响应服务请求。例如,由于故障(死锁)或者大量请求的缘故,可能没有任何可 用的执行线程来完成工作,所有执行线程都被占用或忙于处理以前的请求。
©2003 BEA Systems, Inc. |
2
...WebLogic Server挂起

Qing_WebLogic Server 12c 一些常见问题和解决方案

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的话,直接后台启动。

weblogic10性能优化及相关技巧

weblogic10性能优化及相关技巧

weblogic10性能优化及相关技巧WebLogic10常见性能优化及相关技巧目录一、中文字符集的加载方法 (2)二、服务启动缓慢的解决方法 (3)三、文件损坏造成无法启动服务的解决方法 (3)四、打开文件数的优化 (4)五、虚拟机内存的优化 (5)六、连接池的优化 (5)七、服务节点访问超时的优化 (8)八、服务节点访问线程数的优化 (10)九、部署应用程序的优化 (10)十、日志的优化 (11)十一、清空输出日志nohup.out的方法 (13)十二、通过管理控制台对weblogic10运行情况进行监测 (13)十三、windows下weblogic控制台运行日志输出到文件 (15) 十四、忘记weblogic管理控制台密码的处理方法 (16)一、中文字符集的加载方法加载中文字符集的必要性:1、解决某些情况下服务无法启动(启动需要读取含中文的xml)。

2、解决应用程序运行异常(程序运行需要中文字符集的支持)。

3、方便查看相关系统运行日志。

一般在linux或aix操作系统上会出现中文字符集的问题加载方法:Linux操作系统修改域目录下xxx_domain/bin/setDomainEnv.sh文件,在文件中增加内容export LANG=zh_CN.GBK例如:IBM Aix操作系统修改域目录下xxx_domain/bin/setDomainEnv.sh文件,在文件中的java_options中增加内容:-Ddefault.client.encoding=GBK -Dfile.encoding=GBK nguage=Zh -Duser.region=CN例如:注意:要使上述修改方法有效,前提是linux/Aix操作系统安装时需要安装中文字符集,系统规划时要跟硬件集成商进行说明。

二、服务启动缓慢的解决方法有些时候我们在启动应用服务的时候,启动特别慢,有时慢到需要好几个小时,这实际是JVM在Linux/Aix下的bug,是由于服务想调用一个随机函数但取不到造成的。

WebLogic问题分析常用方法及技巧剖析

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面试的知识点1. 介绍WebLogicWebLogic是一款由Oracle开发的Java EE应用服务器,它提供了企业级的可靠性、可扩展性和高性能。

WebLogic支持多种开发技术和标准,包括Java EE、SOA、Web 2.0等,广泛应用于企业级应用的开发和部署。

2. WebLogic的特性•高可用性和可靠性:WebLogic提供了分布式架构和集群支持,能够实现高可用性和可靠性的应用部署。

•可扩展性:WebLogic支持水平和垂直扩展,可以根据需要增加服务器节点或增强服务器的资源。

•高性能:WebLogic使用了高效的JVM和优化的网络通信,能够提供卓越的性能表现。

•安全性:WebLogic提供了强大的安全功能,包括身份认证、权限控制和数据加密等。

•容器管理:WebLogic提供了对Java EE容器的完整管理和监控,方便开发人员进行应用程序的开发和调试。

•集成能力:WebLogic支持与其他系统和应用的无缝集成,包括数据库、消息队列和企业服务总线等。

3. WebLogic的架构WebLogic的架构包括以下几个关键组件: - 域(Domain):一个域是WebLogic 的基本管理单位,它包含了一组关联的服务器和资源。

每个域都有一个域配置文件,用于定义域中的服务器、集群、数据源等。

- 服务器(Server):WebLogic服务器是WebLogic域的基本运行单元,可以独立工作,也可以作为集群的一部分。

服务器可以分为管理员服务器和托管服务器两种类型。

- 集群(Cluster):集群是一组WebLogic服务器的逻辑组合,通过负载均衡和故障恢复实现高可用性和可伸缩性。

集群中的服务器共享会话数据和应用程序状态。

- 数据源(Data Source):数据源用于管理数据库连接池,在应用程序中使用JNDI查找数据源,可以提高数据库访问的性能和效率。

- 部署(Deployment):部署是指将应用程序或模块文件发布到WebLogic服务器上的过程。

64位weblogic安装部署以及常见问题解决

64位weblogic安装部署以及常见问题解决

64位weblogic11g安装部署以及常见问题解决方案目录(一) 安装 (1)在Windows 64位操作系统安装Weblogic的注意事项 (3)(二) 部署运行 (3)1. 包引入错误 (3)2.乱码现象 (3)3.mime-typeType配置问题 (4)4.应用不存在 (4)5.ClassNotFoundException: org.hibernate.hql.ast.HqlToken (4)6.weblogic部署war包action不能访问问题解决方法[There is no Action mapped fornamespace / and action name] (5)ng.StackOverflowError (5)(一)安装我们在64位的服务器上为提高性能要安装64位的weblogic。

经常在网上看到有人问,weblogic有64位的么?weblogic需要破解么?weblogic有专门的64位版本,这里安装的是weblogic11g,也就是10.3.6版本,12c的版本安装应该类似。

weblogic从bea被oracle收购后,不需要破解,就只有授权。

什么意思呢?就是说从oracle官网上下载的weblogic 就是全功能版本,不管是集群还是其他,功能没有任何限制。

但是如果要用于商业环境,必须要向oracle买license,当然可以偷偷的用,那就是盗版,侵权,有一天oracle可以告的破产……。

1、下载64位weblogic,打下这个地址::// oracle/technetwork/middleware/ias/downloads/wls-main-097127.html,在这里可以看到除了mac os X操作系统外,其他系统的64位都是同一个版本,wls1036_generic.jar。

如下列图,weblogic的下载需要注册一个oracle官网的帐号。

2、下载64位JDK,我们下载的文件wls1036_generic.jar文件里面不包括JDK,如有可能, 请尽量在Windows/Linux平台下使用JRockit虚拟机,下载地址::// oracle/technetwork/middleware/jrockit/downloads/index.html。

【转】Weblogic挂起、宕机问题分析及优化

【转】Weblogic挂起、宕机问题分析及优化

【转】Weblogic挂起、宕机问题分析及优化出处: /entry/id/2d66195f2b556337012b55bc34a500b1.htmlWeblogic挂起、宕机问题分析及优化1) 中间件weblogic简介1.略2) weblogic挂起1.表现现象∙服务器不在响应请求,页面很久还打不开∙请求超时∙请求处理的时间越来越长通常,服务器挂起不会表现为服务器崩溃,进入控制台查看server实例状态,仍然是RUNNING状态,进到请求队列里面查看,发现空闲执行线程没有了,如下图:查看server状态:访问WebLogic中文博客查看所有队列:访问WebLogic中文博客⒉分析服务器挂起的原因⑴ webloigc各线程队列工作原理Execute Queueweblogic.admin.HTTP: 供与管理控制台的通信用weblogic.admin.RMI: 管理服务器和被管理服务器上都有这个队列,它是供管理的交通之用weblogic.kernel.Default: 执行队列线程weblogic.kernel.System: weblogic自用访问WebLogic中文博客即ListenThread传入àsocket reader线程池(本地性能包) à执行线程池,对每个server做threaddump的时候正常可以看到如下图线程信息,如果没有看到socket reader或者是ListenThread,那么这个server工作是不正常的,此时server可能处于fail状态访问WebLogic中文博客访问WebLogic 中文博客 ListenThread负责响应所有请求,然后传入给socket reader 线程,Socket Reader 线程接受来自监听线程队列的传入请求,并将该请求放入执行线程队列,执行线程负责执行具体任何。

上面其中任何一个环节工作不正常均有可能造成挂起的现象。

Weblogic常见问题-sy

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常见问题-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等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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文件分析,要灵活运行相关信息。

相关文档
最新文档