Вызвано: java.net.SocketException: Software caused connection abort: socket write error [closed]

Я запускаю JSP на Oracle 11g, Weblogic 10.3.4. У меня установлено 2 управляемых сервера и сервер администратора Oracle.

Я сталкиваюсь с ошибкой, когда периодически в лог-файле 2 управляемых сервера и админ-сервера появляется java.net.SocketException: Software caused connection abort: socket write error. Приложение может работать 2 дня без появления этой ошибки или она может появляться несколько раз за день. Нагрузка на сервер одинаковая каждый день.

Когда возникает эта ошибка, сервер просто перестает принимать соединения и не может получить доступ к приложению. Даже если я попытаюсь получить доступ к приложению через localhost, я не смогу получить доступ к JSP-страницам и будет показан статус 503 http, но затем я смогу получить доступ к статической HTML-странице. Я не смогу получить доступ к странице консоли администратора Oracle 11g Weblogic. Когда я смотрю на журнал сервера администратора, он показывает, что управляемые серверы отключены от сервера администратора и наоборот.

Волшебным образом приложение может восстановиться самостоятельно, и приложение снова может получить доступ, или мне нужно перезапустить сервер, так как перезапуск службы приложения не работает.

FTP-соединения, к которым подключено приложение, также закрыты.

Я могу выполнить ping и telnet к порту сервера. Журнал событий, похоже, не оставляет никакой информации. Мы запустили wireshark, чтобы посмотреть трафик пакетов, и кажется, что порт приложения отправляет пакеты RST, ACK на балансировщик нагрузки.

Любая помощь будет высоко оценена. Если вам понадобится дополнительная информация, не стесняйтесь спрашивать меня.

Exception Trace

A-000000> <[Error] GetPageContentTag: pageContext flush error, exception in doEndTag {java.net.SocketException: Программное обеспечение вызвало прерывание соединения: ошибка записи сокета}>

3
задан 3 January 2013 в 04:03
2 ответа

На стороне сервера есть что-то, что создает плохую связь между сокетами, и это может проявляться периодически, потому что время от времени его следует вызывать, но давайте не будем ничего предполагать и устранять неполадки вместо этого.

Удалите весь пользовательский код из Weblogic, посмотрите, сохраняется ли проблема, если нет, то вам не нужны никакие пакеты обновления Weblogic. Ваш следующий шаг - собрать весь настраиваемый код, поместить его в вашу Eclipse IDE, разместить несколько точек останова в подозрительных местах (поиск любых фрагментов кода, которые создают сокеты или вызывают API-интерфейсы, которые могут это сделать) и настроить аргументы JVM вашего управляемого сервера ( Environment> Server> YourManagedServer> вкладка Remote Start) следующим образом: -Xdebug -Xrunjdwp: transport = dt_socket, address = 1044, server = y, suspend = n

Теперь запустите свой Weblogic AdminServer и подождите, пока проблема не проявится, он должен открыть интерфейс DEBUG в Eclipse. Удачной отладки :)

Подробнее здесь: http://www.eclipsezone.com/eclipse/forums/t53459.html

* Очевидно, вы не делаете этого в своей среде PROD (только если вы можете поиграть с ней в выходные или в нерабочее время ), так что будьте осторожны.

-1
ответ дан 3 December 2019 в 08:28

Ответ на этот вопрос в StackOverflow здесь.

В основном он указывает на проблему в сети.

0
ответ дан 3 December 2019 в 08:28

Теги

Похожие вопросы