gpt4 book ai didi

java - 从 Tomcat : No buffer space available 发送 SMTP 消息时出错

转载 作者:行者123 更新时间:2023-11-28 22:44:43 25 4
gpt4 key购买 nike

我在服务器上运行 Tomcat7(现在它是一个虚拟机,但应该配置为无限连接)。

我与 SMTP 服务器以及 facebook 服务器有连接。我的流量约为 250 次/分钟。

我正在运行 djabberd,平均时间大约有数百个连接用户。

有时我得到:

javax.mail.MessagingException: Could not connect to SMTP host: xxx.xxx.xxx.xxx, port: xxxxx;
nested exception is:
java.net.SocketException: No buffer space available
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at xxxxxxxxxxxxxxxx.controllers.EmailManager.sendEmail(EmailManager.java:151)

或连接到 facebook 服务器时出现同样的错误。

netstat -n | wc -l 
348

Tomcat 可以接受 acceptCount="1024"连接。

我应该在哪里调查?

[更新 1]

发送电子邮件:

Context envContext = (Context) initContext.lookup("java:/comp/env");
session = (javax.mail.Session) envContext.lookup("mail/emailSession");

MimeMessage message = new MimeMessage(session);
//....
Transport.send(message);

配置:

<resource-ref>
<description>
JNDI javamail session resource reference
</description>
<res-ref-name>mail/emailSession</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>

Facebook 连接:

FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
User user = facebookClient.fetchObject("me", User.class);

最佳答案

什么操作系统? Linux?您可能达到了客户端套接字最大数量的限制,没有无限连接这样的东西。在您的应用程序的某个地方您没有关闭连接,或者您只是打开了太多连接。 “太多”可能比您想象的要低很多,因为它受到进程可以打开的文件描述符的最大数量的限制。如果您运行的是 Linux,请查看 http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

关于java - 从 Tomcat : No buffer space available 发送 SMTP 消息时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com