WAS下使用OJDBC14.JAR的JAVA.LANG.ARRAYINDEXOUTOFBOUNDSEXCEPTION问题

最近临时被借调去JAVA项目组,LEAD一个JAVA项目。其实TEAM就两个人。呵呵。

是在一个使用opencms的website上做一些新功能的开发 。11月10日顺利的交付并部署到客户的测试环境上。结果昨天也就是11月11日客户反映说website应用无法访问了。

 

这还了得,客户的麻烦就是我们的麻烦。迅速的去查看WAS的错误日志,SystemOut的log文件。提示的是OPENCMS读取自身的一个Table时抛出了一个init org.opencms.db.CmsUserDriver的异常。咦,咋会这个样子捏,OPENCMS这么不靠谱?询问客户了解到,原来当天有做过Oracle DB的IP的改动。其他的貌似没有做过变动。

 

OPENCMS在读取Table的时候才抛出异常,说明DB是可以连结的。那么问题出在哪呢?难道DB在IP修改操作时正好OPENCMS的系统在维护自身Table的数据,从而造成了系统数据的损坏?但是用SQLDeveloper去查看数据也未发现异常。网上找到的资料也是驴唇不对马嘴。只有一篇文章标题看起来像是和我遇到的问题一样,结果点进去一看,!@#¥¥%是也不知道是法语还是德语,天知道他写了啥。不过看文章最后的回复还留着作者的几个大大的问号,估计也是没解决的。

 

客户在催,请教了其他同事也未有结果。向领导寻求帮助,领导又把球踢回来:也没别人,就你了,你是可以滴,你行滴,是要发挥主观能动性滴....

 

唉,领导不愧是领导啊。一番语重心长的话下来,虽然问题没解决,但是我又英勇的扑向了org.opencms.db.CmsUserDriver这个拦路虎。

既然OPENCMS的系统数据看起来没啥,那问题会不会出在别的地方涅?又仔细观察了log文档。注意到一个细节,WAS在启动OPENCMS应用的时候,init CmsUserDriver的时候是抛出过一个 JAVA.LANG.ARRAYINDEXOUTOFBOUNDSEXCEPTION。这下狐狸露出尾巴了。看来之前的判断有误啊,会不会是驱动的问题捏?换了个低版本的驱动,重启WAS,NND,激动人心的画面终于出来了。激动啊,激动啊,同志们~~~

 

但这是为啥捏,最后在网上找到了答案。原来是IBM的一个已知的BUG。Oracle  10g的Driver在运行在1.4.2地版本JDK的WAS时的一个BUG。IBM提供了一个WAS的Patch,打上就好了。

 

这么一个破BUG,真是折腾了我一把。总结:

Bug Description: JAVA.LANG.ARRAYINDEXOUTOFBOUNDSEXCEPTION at oracle.jdbc.driver.T4CPreparedStatement.doOall8 T4CPreparedStatement.java

Problem Cause:The problem is caused when JIT compilation of methods results in a memop being generated for the first argument to size verification quads. This cannot be specifically made out from the external JAVA code. The problem is because the optimizer if free to tag either of the sources to quads as a memory operand, but the code generator expects that first argument be a non-memory operand. 

Local fix :Workaround : JITC_COMPILEOPT=NQUD_DU or JITC_COMPILEOPT=COMPILING:SKIP{oracle/jdbc/driver/T4CPreparedSta tement}{doOall8} 

 

本次发生的环境:

WAS 5.1

IBM JDK 1.4.2

ORACLE 9i 

 

来自IBM的消息:

 http://www-01.ibm.com/support/docview.wss?uid=swg1PK53402

 

转载于:https://www.cnblogs.com/foreverbeta/archive/2009/11/12/1602157.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值