В основном у меня есть веб-сервис JAW-WS.Я звоню это миллионы раз, в пакетном режиме, из внешнего приложения.После примерно 20 миллионов звонков приложение вылетает с ошибкой ниже.Я попытался обновить версию Java, пытаясь на разных машинах и все то же самое.
Произошло неустранимое переполнение стека.
В среде выполнения Java обнаружена фатальная ошибка:
EXCEPTION_STACK_OVERFLOW (0xc00000fd) при pc = 0x7c90e8e5, pid= 9396, tid = 9000
Версия JRE: 6.0_29-b11 Java VM: Java HotSpot (TM) Клиентская виртуальная машина (20.4-b02 смешанный режим, совместное использование windows-x86) Проблемный кадр: C [ntdll.dll +0xe8e5]
Файл отчета об ошибке с дополнительной информацией сохраняется как: U: hs_err_pid9396.log
Если вы хотите отправить отчет об ошибке, посетите: http://java.sun.com/webapps/bugreport/crash.jsp
Я прочитал, что EXCEPTION_STACK_OVERFLOW
вызвано рекурсивной или вложенной функцией, которая не возвращает корректно.Я не думаю, что это проблема моего случая, так как у меня есть только один звонок, который выполняет некоторую работу и возвращает.Глупый вопрос, но есть ли способ очистки стека, может быть, я могу делать это каждые x часов?
Мне удалось получить чистую установку сервера 2008 и последней JRE.когда я запускаю одно и то же приложение на этой машине, я получаю следующее сообщение.Я уверен, что лучше смотреть на эту ошибку, чем на последнюю, так как это живая коробка, на которой будет развернуто приложение.Спасибо
28 декабря 2011 14:34:58 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrap
perClass
INFO: Dynamically creating request wrapper Class Professional
Services.jaxws.CleanResponse
28-Dec-2011 14:34:58 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWra
pperClass
INFO: Dynamically creating response wrapper bean Class Professional
Services.jaxws.CleanResponse
Exception in thread "Thread-4" java.lang.OutOfMemoryError: unable to create new
native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(Unk
nown Source)
at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source)
at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source)
at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)