`
JAVA天地
  • 浏览: 658201 次
  • 性别: Icon_minigender_1
  • 来自: 太原
文章分类
社区版块
存档分类
最新评论

YL电厂WAS系统错误诊断日志分析

阅读更多

WAS系统垮了,客户疯了,又有事情做了!!!

分析了日志文件
Native_stderr.log
Native_stdiut.log
Server1.pid
Startserver.log
Stopserver.log
Systemerr.log
Systemout.log
PS: 由于对log文件的收集没有加-trace参数,所以得到的信息比较有限,希望以后兄弟们能够提交日志文件的时候能够记得加这个参数。
虽然比较有限,但是还是可以看到一些端倪:
通过分析SystemOut.log日志文件,可以得出以下信息:
************ Start Display Current Environment ************
WebSphere Platform 5.0 [BASE 5.0.1 ptf1M0313.03]running with process name oasvr\oasvr\server1 and process id 4460
Host Operating System is Windows 2000, version 5.0
Java version = J2RE 1.3.1 IBM Windows 32 build cn131-20030329 (JIT enabled: jitc), Java Compiler = jitc, Java VM name = Classic VM
was.install.root = d:\ibm\WebSphere\AppServer
user.install.root = d:\ibm\WebSphere\AppServer
Java Home = d:\ibm\WebSphere\AppServer\java\jre
ws.ext.dirs = d:\ibm\WebSphere\AppServer\java/lib;d:\ibm\WebSphere\AppServer/classes;d:\ibm\WebSphere\AppServer/classes;d:\ibm\WebSphere\AppServer/lib;d:\ibm\WebSphere\AppServer/lib/ext;d:\ibm\WebSphere\AppServer/web/help;d:\ibm\WebSphere\AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime
Classpath = d:\ibm\WebSphere\AppServer/properties;d:\ibm\WebSphere\AppServer/properties;d:\ibm\WebSphere\AppServer/lib/bootstrap.jar;d:\ibm\WebSphere\AppServer/lib/j2ee.jar;d:\ibm\WebSphere\AppServer/lib/lmproxy.jar
Java Library path = d:\ibm\WebSphere\AppServer\java\bin;.;C:\WINNT\system32;C:\WINNT;d:\ibm\WebSphere\AppServer\bin;d:\ibm\WebSphere\AppServer\java\bin;d:\ibm\WebSphere\AppServer\java\jre\bin;D:\ibm\WebSphere MQ\Java\lib;d:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;D:\j2sdk1.4.2_09\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;D:\ibm\WebSphere MQ\bin;D:\ibm\WebSphere MQ\WEMPS\bin;C:\Program Files\IDM Computer Solutions\UltraEdit-32;D:\ibm\WebSphere MQ\bin;D:\ibm\WebSphere MQ\java\bin;D:/ibm/WebSphere MQ/WEMPS\bin
WebSphere Application Server Base Version 5.0.1,平台版本0313.03,
该版本对应JDK:1.3.1.07(SR4)
OASVR可以推测其运行环境是一个J2EE的OA平台,just in time 已经打开
系统环境变量中使用了WebSphere MQ,根据路径可以判断不是WAS自带message,因此对应MQ版本应该为CSD07,从路径中可以看到使用了2个Oracle9iR2实例,一个对应的JRE:1.1.8;一个对应的JRE:1.3.1.应用部署是在jdk1.4.2.09。
另外报错误:
[07-4-19 9:56:33:328 CST]
6130d48d SessionFactor W net.sf.hibernate.impl.SessionFactoryObjectFactoryCould not bind factory to JNDI
[07-4-19 9:56:33:344 CST]
6130d48d SessionFactor W net.sf.hibernate.impl.SessionFactoryObjectFactoryTRAS0014I: 下列异常已记录 javax.naming.OperationNotSupportedException: The operation on the context "java:env" cannot be completed.All contexts under java:comp/env are environment contexts and are read-only.
[07-4-19 9:56:34:422 CST]
6130d48d SharedPool I J2CA0086W: 在本地事务包含边界中使用的资源 jdbc/ylrun 的可分享连接
[07-4-19 9:56:34:906 CST]
6130d48d WSRdbDataSour u Database version is Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
[07-4-19 9:56:34:906 CST] 6130d48d
WSRdbDataSour u JDBC Driver version is 9.2.0.1.0
信息:WAS数据源版本:Oracle 9.2.0.7.0 64bit
采用了数据挖掘组件,其中Jserver版本9.2.0.7.0
JDBC驱动9.2.0.1.0(目前看不到是type2还是type4驱动)
错误:不能绑定JNDI
解决办法:
可以通过log看到应用中使用了hibernate数据持久化技术、结合Startserver.log、Stopserver.log、Systemerr.log、Systemout.log此错误是配置文件的问题,如果hibernate配置文件有session_factory_name这个变量,<session-factory name="foo"> 会试图将一个SessionFactory实例以foo为名bind到jndi上,而有的application container不支持jndi绑定。把这个变量去掉即可。把引用代码也要修改:
大致改成这样:
SessionFactorysf=newConfiguration().configure()
.buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
WAS确实可以不需要自己写程序来进行绑定,也可以由Hibernate自己在运行期进行动态绑定。但是如果使用Hibernate自己的运行期绑定的话,有一个悖论,就是只有在Hibernate被初次调用进行初始化的时候,才会将SessionFactory的实例绑定到JNDI上去,那么意味着,在首次调用Hibernate之前,JNDI上是没有SessionFactory实例的,所以你必须在所有的其它程序通过JNDI获得SessionFactory实例之前,运行某个程序对Hibernate进行初始化,把SessionFactory实例绑定到JNDI上。如果是纯Servlet/JSP应用的话,可以配置一个load-up=1的servlet进行Hibernate的初始化,如果是混合EJB,Servlet/JSP的应用,就无法保证在程序被调用前对Hibernate进行初始化,因此对于WebSphere来说,最保险的解决办法就是建立一个StartUp类,确保WAS一启动,就对Hibernate进行初始化。
错误:java:env命名异常,报错误TRAS0014Ijava.lang.ClassNotFoundException: cn.com.info21.power.runlog.action.TestAction
解决办法:
查看class情况,该错误可能由以上错误引起。
分析日志system.out_07.04.19_09.51.59.log
[07-4-19 9:29:49:422 CST]
7ac9d17d Helpers W NMSV0610I:
javax.naming.Context 实现中抛出 NamingException。详细信息如下:
上下文实现:com.ibm.ws.naming.java.javaURLContext
上下文方法:createSubcontext(String)
上下文名称:java:comp/env
目标名称:hibernate
其它数据:
异常堆栈跟踪:javax.naming.OperationNotSupportedException: The operation on the context "java:env" cannot be completed
错误NMSV0610I
依然是env的原因,如果报该错误号,但上下文com.ibm.ws.naming.jndicos.CNContextImpl 的话,那么需要注意J2C问题了。一般这样的问题是应用是EJB 1.1规范进行开发的,而部署到WAS5上面的时候,连接遵从J2C的数据源就会出现这样的错误,解决办法看我以前写的一个EJB移植问题文档。
[07-4-18 9:19:57:031 CST] 1f7a20d0 SystemErr R java.net.SocketException: Connection reset by peer: socket closed
[07-4-19 9:32:23:328 CST] 7e02d14f WebGroup E SRVE0026E: Servlet 错误]-[Connection reset by peer: socket write error]:java.net.SocketException: Connection reset by peer: socket write error
错误:SRVE0026E,servlet错误,Socket写入错误
类似这种错误,我以前解决了一个更加怪异的。WAS5+SQLSERVER2000SP4采用ODBC数据源连接时,不出现这种错误,而采用JDBC则出现这种错误.解决办法:不使用SP4,使用SQL SERVER SP3A即可解决。
SRVE0026E错误,请升级WAS补丁到5.1即可解决数据库访问并发释放连接、socket写入错误等问题
错误:在本地事务边界中使用资源连接分享,报错误J2CA0086W
解决办法:
系统报告“J2CA0086W”是为了警告用户,应用程序正在一个本地交易(而不是全局交易)中使用共享连结,例如按照如下的方式使用了数据库的连接:
get con1; //建立一个新的连接con1
use con1; //使用con1
get con2; // 一个新的连接con2被建立。
// 再此处我们不能使用con1,因为它还没有被关闭
use con2;
close con1;
close con2;
解决这个问题的方法是打补丁PQ80044,打完这个补丁以后,“J2CA0086W”的警告将不会对于每一次连接都在日志中产生,而是对于每一个连接池产生一次。这个补丁已经被添加到WAS fix 5.0.2.3中,所以,也可以通过打补丁包WAS fix 5.0.2.3解决该问题。
注释:我的思路:
1、由于配置的是Oracle JDBC Thin Driver,所以只能开一个连接,启动一个事务,关闭事务.但是由于应用中统计等功能比较多,出现打开一个连接,启动一个事务,又打开一个连接(报错),关闭事务的情况,所以想把JDBC改成Oracle JDBC Thin Driver (XA)可以实现打开一个连接,启动事务,又打开一个连接,启动事务,关闭事务,关闭事务的机制.
2、WAS5默认是2步事务提交、也就是在insert以后需要COMMIT才能提交
3、还有就是在组装时,注意下要配置资源引用(名称jdbc/cceaoa3ds类型javax.sql.DataSource认证container,IBM扩展中的隔离级别:可提交事务读).Oracle JDBC Thin Driver (XA) 是用作分布式事务的,对于这个CASE,由于都部署在一台机器上,用Oracle JDBC Thin Driver 即可
4、websphere 5.x 对事物管理有个 bug,如果用 struts 需要在 action 与 jsp 之间 close transaction.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics