У меня есть приложение, размещенное и запущенное на Tomcat, которое уже несколько месяцев находится в хорошем состоянии.В последнее время не было никаких изменений в конфигурации tomcat или каких-либо других связанных с окружающей средой изменений, таких как версия Java на компьютере или сама война.Также нет внезапного или быстрого увеличения нагрузки на сервер, так как это изолированная среда.В последние несколько дней вызовы от клиента к серверу кладут трубку, и трассировка на сервере показывает:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
java.net.SocketInputStream.read(SocketInputStream.java:171)
java.net.SocketInputStream.read(SocketInputStream.java:141)
com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1525)
com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:3274)
com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:4433)
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:386)
Да, может быть реализация Read Timeout для предотвращения зависаниячто приведет к Исключению Тайм-аута Сокета и предотвратит зависание клиента.Но возникает вопрос, каковы все возможные причины , заставляющие Socket Read ждать бесконечно ?
Попытка добавить время чтения, которое вызывает огромное количество исключений наконец клиента и причина сбоев.Любая помощь по каким причинам Socket Read не возвращает и ждет бесконечно?