PUSH-000183: обработчик не оставил свободного места в буфере
Я продолжаю видеть следующее предупреждение и трассировку стека в журнале сервера и хотел бы знать, что идет не так и как это исправить. Я проверил обозначение PUSH-000183, но оно говорит только: "В канале сообщений произошла ошибка связи".
2016-04-20 13:37:42.452|WARN|Diffusion: InboundThreadPool Thread_1|PUSH-000183|Message channel error: 'NIOBufferedChannel@571714020[connected local=/10.96.130.21:8070 remote=/10.96.1.36:24832] : Closed(UNEXPECTED_ERROR) ServerInboundTask@542477fd HTTPConnectionHandler@2641ae33[partial request - more expected]: handler left no space in buffer ' caused by 'ServerInboundTask@542477fd HTTPConnectionHandler@2641ae33[partial request - more expected]: handler left no space in buffer'.|com.pushtechnology.diffusion.io.message.MessageChannelException
com.pushtechnology.diffusion.io.message.MessageChannelException: ServerInboundTask@542477fd HTTPConnectionHandler@2641ae33[partial request - more expected]: handler left no space in buffer
at com.pushtechnology.diffusion.io.nio.NIOBufferedChannel.logClosingException(NIOBufferedChannel.java:647)
at com.pushtechnology.diffusion.io.nio.NIOBufferedChannel.logAndClose(NIOBufferedChannel.java:613)
at com.pushtechnology.diffusion.io.nio.AbstractReadSelector$InboundTask.close(AbstractReadSelector.java:410)
at com.pushtechnology.diffusion.io.nio.AbstractReadSelector$InboundTask.run(AbstractReadSelector.java:351)
at com.pushtechnology.diffusion.threads.FastThreadPool$PoolWorker.run(FastThreadPool.java:783)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalStateException: ServerInboundTask@542477fd HTTPConnectionHandler@2641ae33[partial request - more expected]: handler left no space in buffer
at com.pushtechnology.diffusion.io.nio.AbstractReadSelector$InboundTask.run(AbstractReadSelector.java:324)
Это только для клиентов, подключающихся с использованием XHR, или это также повлияет на веб-сокеты?
1 ответ
Это происходит, когда клиент отправляет на сервер сообщение, размер которого превышает настроенный размер входного буфера в файле Connectors.xml.
Он отключит клиента, который затем может повторно подключиться, если он был настроен для этого. Это может произойти с любым клиентом независимо от транспорта (XHR, Websockets и т. Д.).
Вам нужно будет увеличить размер входного буфера в Connectors.xml, чтобы он соответствовал наибольшему ожидаемому сообщению. Например, если вы отправляете сообщения размером до 256 КБ, вы можете использовать следующую конфигурацию:
<socket-conditioning>
<!-- If this value is less than max-message-size defined in
Server.xml, it will be
overwritten by the latter. -->
<input-buffer-size>256k</input-buffer-size>
<!-- Other config... -->
</socket-conditioning>