环境:Linux + weblgic 8.13 + jrocie
错误情况:我们的系统运行了好几年了一直都比较稳定,最近每隔几天就要Down机一次,查了一些weblogic的日志。
下面这个错误报的特别多,2个小时之内这个错误出现700多次。从这个日志上看看不出来是我们程序的问题。请各位高手帮忙分析一下,这个错误到底是我们程序出现问题,还是weblogic本身的问题。 是什么导致的?如何解决?
Down机是不是这个错误引起的。 非常感谢,200分送上。####<2010-8-4 下午05时05分46秒 CST> <Error> <HTTP> <localhost.localdomain> <gdlvserver> <ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'> <<WLS Kernel>> <> <BEA-101083> <Connection failure.
java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at java.lang.String.substring(II)Ljava.lang.String;(Unknown Source)
at java.lang.String.substring(I)Ljava.lang.String;(Unknown Source)
at weblogic.servlet.internal.RequestParser.isUriSafe(RequestParser.java:460)
at weblogic.servlet.internal.RequestParser.getFirstLine(RequestParser.java:165)
at weblogic.servlet.internal.RequestParser.parse(RequestParser.java:181)
at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:422)
at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:286)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:718)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:668)
at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:123)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

####<2010-8-4 下午05时05分56秒 CST> <Error> <HTTP> <localhost.localdomain> <gdlvserver> <ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'> <<WLS Kernel>> <> <BEA-101083> <Connection failure.
java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at java.lang.String.substring(II)Ljava.lang.String;(Unknown Source)
at java.lang.String.substring(I)Ljava.lang.String;(Unknown Source)
at weblogic.servlet.internal.RequestParser.isUriSafe(RequestParser.java:460)
at weblogic.servlet.internal.RequestParser.getFirstLine(RequestParser.java:165)
at weblogic.servlet.internal.RequestParser.parse(RequestParser.java:181)
at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:422)
at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:286)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:718)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:668)
at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:123)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>

解决方案 »

  1.   

    关注中,建议到http://cn.forums.oracle.com/forums中发个帖子问问,有了结果,一定要写出来噢
      

  2.   

    运行两年之后的环境和原始环境是不可能完全一致的.最快的解决办法就是卸载重装Weblogic,重新发布,看是否正常.
      

  3.   

    但是像String index out of range: -6这种异常会导致服务器Down掉吗?
    我觉得是不是需要从其他可以导致服务器down掉的异常开始考虑呢.
    比如
    内存溢出等...
      

  4.   

    StringIndexOutOfBoundsException这个应该不会DOWN机的
    bea 101083好像是客户端发送的请求数据不能在HttpCompleteMessageTimeout内完成。要么你系统所在网络环境最近性能很差,如果你们的系统是在互联网上的话不排除被黑客攻击了。这个只是根据导致bea101083这个错误的原因分析出来的。
    还有就是最近抛得错太多了,log太大,内存不够了
      

  5.   

    是不是某个配置文件被无意中改动了。
    重点检查依赖server的配置。
    关注中...
      

  6.   

    貌似是JMS Server连接出了问题,确定JMS Server正常启动了吗?如果已经正常启动,检查连接JMS Server的ProviderURL是不是正确。一般在JNDI中可以找到这些配置。