WEB开发网
开发学院软件开发Java Weblogic81中HttpCompleteMessageTimeout相关的两... 阅读

Weblogic81中HttpCompleteMessageTimeout相关的两个异常

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: BEA-101326通常跟网络性能有关系(60秒内,4k的数据无法发送完成),Weblogic81中HttpCompleteMessageTimeout相关的两个异常(3),首要解决方法就是调优网络,从weblogic方面来看,客户端数据读取超时是通过SocketMuxer.TimeoutTri

BEA-101326通常跟网络性能有关系(60秒内,4k的数据无法发送完成),首要解决方法就是调优网络。从weblogic方面来看,我们可以通过调整如下两个参数来解决这个问题,但这不是解决问题的关键。

1:增加HttpCompleteMessageTimeout,最大值为480秒

2:减小weblogic.ChunkSize

至于BEA-101083,通常是因为客户端发送的请求数据不能在HttpCompleteMessageTimeout内完成,常见的两种情况是:性能很差的网络环境、黑客攻击(连续的向服务器写入数据,但每次写入很少的数据,例如,10bytes/secs或更少)。客户端数据读取超时是通过SocketMuxer.TimeoutTrigger实现的。这个trigger同时还负责IdleTimeout(KeepAlive的 HttpConnection的Duration,默认为30秒)。

 1   /*package*/ final int checkTimeout(long idleTimeout, long msgTimeout) {
 2     int status = OKAY;
 3     long interval;
 4     synchronized (this) {
 5       
 6       if (messagePending()) {
 7         if (msgTimeout <= 0) return OKAY;
 8         /*
 9         *get time left for reading message from client. When SocketMuxer begins reading packets 
10         *from http connection. System.currentTimeMills() is recorded info SocketInfo as lastMessageReadingStartedTimeMillis
11         *and in getMessageIntervalMillis(), it returns (System.currentTimeMills() - info.lastMessageReadingStartedTimeMillis)
12         *If reading finishes in time, SocketMuxer will set messagePending to false.
13         */ 
14         interval = getMessageIntervalMillis(msgTimeout);
15         if (interval <= msgTimeout) return OKAY;        
16         status = MSG_TIMEOUT;
17       } else {
18            //idle timeout is checked here
19       }
20       //for MuxableSocketHttp, ms.requestTimeout() is always true, i.e., timeout affects such connection
21       if (!ms.requestTimeout()) return OKAY;
22       setCloseOnly();
23     }
24     return status;
25   }

上一页  1 2 3 4  下一页

Tags:Weblogic HttpCompleteMessageTimeout 相关

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接