2015-07-09 7 views
0

Я начал работать на нерезидентном сервере на порту 18095, и он работал нормально, через несколько дней внезапно заметил, что он потребляет больше процессора, и когда я проверяю журнал, после непрерывной записи в журналеjava.io.IOException: Неверный дескриптор файла Jetty 9.2.10.v20150310

2015-07-08 13:25:48.606:WARN:oejs.ServerConnector:[email protected]@1f02fde {HTTP/1.1}{0.0.0.0:18095}: 
java.io.IOException: Bad file descriptor (errno:4009) 
     at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) 
     at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) 
     at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:377) 
     at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:500) 
     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
     at java.lang.Thread.run(Thread.java:724) 

Есть ли способ исправить это. Спасибо

ответ

1

«errno: 4009» находится вне самой Java.

Что-то в ОС (или FileSystem) препятствует принятию определенного входящего сокета.

Если вы являетесь системой unix, рассмотрите возможность оценки ваших различных значений ulimit и более подходящих значений, соответствующих вашим потребностям.

Если вы находитесь на среде Windows, не работают на Windows ME/2000 (как те, имеют долгую историю проблем виртуальной машины Java/ServerSocket)

+0

спасибо за ваш ответ, я получаю эту ошибку на л.с. -непрерывный сервер. Да, вы правы, 4009 приходят из IO, похоже, что tcp-соединение умерло после того, как сервер открывает соединение – vels4j

 Смежные вопросы

  • Нет связанных вопросов^_^