Chinaunix首页 | 论坛 | 博客
  • 博客访问: 382785
  • 博文数量: 80
  • 博客积分: 2682
  • 博客等级: 少校
  • 技术积分: 907
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-16 09:55
文章分类

全部博文(80)

文章存档

2012年(80)

分类: 系统运维

2012-04-12 11:25:21

java.net.SocketException: Error in poll for fd=117, revents=32
at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:131)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

BEA-101083出现在客户端请求往服务器端发送请求数据的时间内没有结束。HttpCompleteMessageTimeout默认值为60秒,最大值为480秒。如果没有设定,会取server---->Protocols---->General中的CompleteMessageTimout值(general中配置适合于所有协议,包括Http, T3, IIOP等)。如果两个都没有设定,那么weblogic server会将该值设定为:CompleteMessageTimeoutTrigger. CLEANUP_TRIGGER_TIMEPERIOD_LOW=2secs。

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

BEA-101083通常是因为客户端发送的请求数据不能在HttpCompleteMessageTimeout内完成,常见的两种情况是:性能很差的网络环境、黑客攻击(连续的向服务器写入数据,但每次写入很少的数据,例如,10bytes/secs或更少)。客户端数据读取超时是通过SocketMuxer.TimeoutTrigger实现的。这个trigger同时还负责IdleTimeout(KeepAlive的HttpConnection的Duration,默认为30秒)。要解决BEA-101083,主要是解决解决网络性能问题,另外就是加强网络安全管理,防止黑客攻击。最后在说一下CompleteMessageTimeout设定,weblogic admin console上提示改设定是动态的,即不需要重启,但实际并不是这样的。如果该设定是要解决BEA-101083,那么它是动态的,不要重启。
阅读(5038) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~