видя много CLOSE_WAIT с охтп 3.81 - PullRequest
0 голосов
/ 28 января 2019

видит множество соединений CLOSE_WAIT в Ubuntu, когда я выполняю приведенную ниже команду, где 20919 - это pid tomcat.Много ли сокетов в состоянии CLOSE_WAIT вызывает большое количество открытых файлов?

sudo lsof -p 20919 |grep CLOSE_WAIT

ниже приведен код для закрытия клиентских запросов

    OkHttpClient.Builder builder = new OkHttpClient.Builder();
    builder.connectTimeout(30, TimeUnit.SECONDS);
    builder.readTimeout(30, TimeUnit.SECONDS);
    builder.writeTimeout(30, TimeUnit.SECONDS);
    OkHttpClient client = builder.build();

    String webServiceEndPoint = url;
    Response response =null;
    if (!url.matches("^(http|https)://.*$")) {
        webServiceEndPoint = backendConfig.getWebServiceUri().concat(url);
    }

    Request request = new Request.Builder()
            .url(webServiceEndPoint)
            .method(method, getRequestBody(requestContext, method))
            .headers(buildHeaders(headerBuilder))
            .build();

    try {
        response = client.newCall(request).execute();
        String responseBody = response.body().string();
        if (response.isSuccessful()) {
            if (isJsonObject(responseBody)) {
                callback.onSuccess(JsonObjectBuilder.fromString(responseBody));
            } else if (isJsonArray(responseBody)) {
                callback.onSuccess(JsonObjectBuilder.arrayfromString(responseBody));
            } else {
               // logger.debug("couldn't determine response type [response : {}]", responseBody);
                callback.onSuccess(responseBody);
            }
        } else {
            callback.onError(responseBody, new SimpleStatusLine(response.code(), ""));
        }
        if(response!=null)response.body().close();
    } catch (Exception e) {
        callback.onFailure(e);
    }finally{
        LOG.debug("finally cleaning rsources");
        if(response!=null)response.body().close();
        client.connectionPool().evictAll();
    }

Это, похоже, не очищает состояние CLOSE_WAIT.Я использую Tomcat 8 с Охттп 3.8.1

...