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

Weblogic81中HttpCompleteMessageTimeout相关的两个异常

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 注意:CompleteMessageTimeout是数据包,而不是整个请求的timeout时间,Weblogic81中HttpCompleteMessageTimeout相关的两个异常(2),对于BEA-101326,假如客户端请求下载一个100M的文件,剩余的数据将无法继续写入,如果数据包在t

注意:CompleteMessageTimeout是数据包,而不是整个请求的timeout时间。

对于BEA-101326,假如客户端请求下载一个100M的文件,这100M的文件将会被分解成N多TCP/IP  packets进行传送(weblogic内部为chunk,默认的chunk大小为4080bytes,chunk的大小可以通过 -Dweblogic. ChunkSize设定)。100M的文件即使在网络性能很好的情况下,也很难在60秒(CompleteMessageTimout的默认值)内完成,所以这个timeout不是针对整个reponse而言的。在weblogic实现中,每次回写数据包(Chunk)的时候,会将当前的 OutputStream register到CompleteMessageTimeoutTrigger中,这样trigger被触发的时候,它会负责检查这个数据报是否在指定的timeout内完成发送,如果没有,则BEA-101326会记入到日志中,同时会关闭到客户端的socket,剩余的数据将无法继续写入。如果数据包在timeout之前已经写完,该OutputStream会从tigger中移除,tigger不会继续检查该OutputStream

 1 static void writeChunks(Chunk header,Chunk c, OutputStream os, int size, boolean chunkXfer) throws IOException {
 2       try {
 3             trigger.register(os);
 4             if (chunkXfer)
 5                     writeChunkTransfer(header,c, os);
 6             else
 7                      writeChunkNoTransfer(header, c, os, size);
 8       } finally {
 9             trigger.unregister(os);
10      }
11}

上一页  1 2 3 4  下一页

Tags:Weblogic HttpCompleteMessageTimeout 相关

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