В последнее время SMTP-сервер, на который настроен биллинг, иногда вешается.
Беда в том, что в след за ним может повешаться и сам биллинг: если в этот момент было незакрытое соединение с почтовым сервером, то поток вешается, а дальше забиваются все остальные потоки, ожидающие его.
Сначала это произошло с радиусом, теперь - с шедулером.
Вот как-то так выглядит повисший тред:
Код:
"Thread-7" prio=10 tid=0x00007f0780658000 nid=0x1562 runnable [0x00007f078450e000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:106)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x00007f07956461e0> (a java.io.BufferedInputStream)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:84)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1742)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1523)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453)
at javax.mail.Service.connect(Service.java:291)
- locked <0x00007f0795646348> (a com.sun.mail.smtp.SMTPTransport)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at javax.mail.Transport.send0(Transport.java:190)
at javax.mail.Transport.send(Transport.java:120)
at bitel.billing.server.util.MailMsg.sendMessage(MailMsg.java:131)
at bitel.billing.server.util.MailMsg.sendMessage(MailMsg.java:110)
at bitel.billing.server.admin.errorlog.AlarmSender.run(AlarmSender.java:217)
Понятно, что проблема тут не в коде биллинга, но может кто-нибудь может подсказать решение?
гугление ничего конкретного не дало:
https://forums.oracle.com/forums/thread ... ID=2216740