Javamail在超时时没有完全关闭套接字
通过javamail发送邮件时,会打开一个到smtp服务器的套接字。现在,我们得到了这样的情况:当连接仍处于活动状态且javamail正在等待服务器时,邮件服务器的连接断开(垃圾邮件扫描花了几秒钟)。因此,TCP连接从未真正关闭,客户端陷入僵局。
因此我们决定使用javamails超时,这有效 - 客户端在指定的时间后抛出异常。但是,tcp连接未正确关闭(netstat -np仍将连接显示为“ESTABLISHED”)。只有在我调用System.gc()之后,套接字才会关闭。
这是一个问题,因为在抛出任何OOM异常之前保证gc(),但是在达到FD限制之前没有...
这可以以某种方式被规避或者这是javamail中的错误吗?
受影响的系统:Linux(debian lenny),Sun JDK 1.6.0.20(-XXUseSSE = 3),javamail 1.4.3
没有找到相关结果
已邀请:
1 个回复
壤欠攻混