Я новичок в Jetty и начал использовать его месяц назад как встроенный сервер в среде OSGi.В последнее время я наблюдаю несколько исключений "Broken Pipe" и "End of File".
Caused by: org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:911)[80:org.eclipse.jetty.http:7.4.1.v20110513]
at org.eclipse.jetty.server.HttpConnection.flushResponse(HttpConnection.java:753)[82:org.eclipse.jetty.server:7.4.1.v20110513]
at org.eclipse.jetty.server.HttpConnection$Output.close(HttpConnection.java:1124)[82:org.eclipse.jetty.server:7.4.1.v20110513]
at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:606)[96:org.apache.cxf.bundle:2.4.0.fuse-00-27]
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)[96:org.apache.cxf.bundle:2.4.0.fuse-00-27]
at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(AbstractHTTPDestination.java:549)[96:org.apache.cxf.bundle:2.4.0.fuse-00-27]
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)[96:org.apache.cxf.bundle:2.4.0.fuse-00-27]
... 36 more
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)[:1.6.0_14]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)[:1.6.0_14]
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)[:1.6.0_14]
at sun.nio.ch.IOUtil.write(IOUtil.java:60)[:1.6.0_14]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)[:1.6.0_14]
at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:240)[84:org.eclipse.jetty.io:7.4.1.v20110513]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:282)[84:org.eclipse.jetty.io:7.4.1.v20110513]
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:855)[80:org.eclipse.jetty.http:7.4.1.v20110513]
Первоначально я поднял linux "ulimit", но он не полностью решил проблему, за исключением частоты ошибок.Текущая нагрузка на сервер составляет около 500 запросов / сек.Мой текущий файл jetty.xml является минимальным и не указывает никакого значения пула потоков или акцептора.Просто интересно, если неправильная конфигурация вызывает проблемы, в результате чего причал отказывается от соединений.Вот что я
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="port"><Property name="jetty.port" default="8010"/></Set>
<Set name="maxIdleTime">20000</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
Я не уверен, какое значение по умолчанию Jetty использует для акцепторов или пула потоков.Я заглянул в документацию, но не смог найти ничего подходящего.
Я попытался добавить пул потоков, но возникла та же проблема.Вот запись пула потоков:
<Set name="ThreadPool">
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">30</Set>
<Set name="maxThreads">3000</Set>
</New>
</Set>
Буду признателен, если кто-нибудь сможет дать указатели на эту проблему.Я использую причал версии 7.
Спасибо