Мое приложение java, работает на сервере, открывает порт и подключается к устройствам через сокет. Все прогоняли до определенного момента, много соединений осталось в CLOSE_WAIT, даже если мое приложение завершит процесс в пакете, который я получаю.Netty socket generate Close_wait status
Что я заметил, так это то, что ЦП начал использовать двойной источник, открытый файл увеличивается, а число CLOSE_WAIT также увеличивается.
В проводной таблице пакет, отправленный с условием CLOSE_WAIT, мы видим, что сервер не отправил FIN клиенту.
PS: Я на убунту 14,04 испытанный сервер, я использую Нетти 3.10.1
Вот код, где я сделал Pipeline:
@Override
public ChannelPipeline getPipeline() {
ChannelPipeline pipeline = Channels.pipeline();
if (resetDelay != null) {
pipeline.addLast("idleHandler", new IdleStateHandler(GlobalTimer.getTimer(), resetDelay, 0, 0));
}
pipeline.addLast("openHandler", new OpenChannelHandler(server));
if (loggerEnabled) {
pipeline.addLast("logger", new StandardLoggingHandler());
}
addSpecificHandlers(pipeline);
if (filterHandler != null) {
pipeline.addLast("filter", filterHandler);
}
if (reinitializeHandler != null) {
pipeline.addLast("reinitialize", reinitializeHandler);
}
if (refineHandler != null) {
pipeline.addLast("refine", refineHandler);
}
if (noFilterHandler != null) {
pipeline.addLast("nofilter", noFilterHandler);
}
if (specificFilterHandler != null) {
pipeline.addLast("specificfilter", specificFilterHandler);
}
if (reverseGeocoder != null) {
pipeline.addLast("geocoder", new ReverseGeocoderHandler(reverseGeocoder, processInvalidPositions));
}
pipeline.addLast("handler", new TrackerEventHandler(dataManager));
return pipeline;
}
Приложение связывается с множеством устройств, так как я сказал, что все идет правильно до определенной точки, а это означает, что мое приложение закрыто. Также я не могу убить, потому что мое приложение взаимодействует с другим устройством, что сервер правильно закрывает соединение с ними. – EspritBat
Можете ли вы поделиться фрагментами своего кода, который отвечает за обработку клиентов? – Learner
У нас нет клиентского кода, потому что он обрабатывается устройством (GPS), у которого есть программа, сделанная нашим провайдером. Но мы знаем, что проблема исходила от нашего сервера, который SOMETIMES не закрыл соединение (по Netty) – EspritBat