*Zarchiwizowane* = Zarządzanie połączeniami z serwerem WWW = Problem: Mam aplikację JavaFx, która wysyła żądania do bazy danych przez http. Sporadycznie napotykam problemy, w których wszystkie dostępne połączenia z serwerem WWW (191) są wykorzystywane, co powoduje awarię Próbuję ustalić, dlaczego tak się dzieje, ponieważ wydaje się, że rzeczywiste połączenia powinny być znacznie niższe. Jednocześnie może działać maksymalnie 40 instancji aplikacji Oto typowa metoda użycia (Kotlin): fun myHTTPFunction(user: String, phone: String, customCID: Boolean, cID: String) { val httpClient = HttpClients.createDefault() val response: CloseableHttpResponse try { val useCID = when(customCID) { true ->"&group_alias=$cID"else ->""} val httpPost = HttpPost(ADRES PHP) response = httpClient.execute(httpPost) EntityUtils.consume(response.entity) try {response.closecatch (e: wyjątek) {exception.showStackTrace(e )} spróbuj {httpClient.closecatch (e: wyjątek) {exception.showStackTrace(e)} } catch(e: wyjątek) { wyjątek.showStackTrace(e) } } Uwaga: Pierwotnie utworzono tylko jedną instancję HttpClients i ponownie wykorzystano ją do wywołań metod. Jednak podczas sprawdzania połączeń na serwerze WWW ta metoda daje około 30% więcej połączeń na aktywnego klienta. (Do 20 pomimo tylko jednego wywołania metody „createDefault”). Użycie metody takiej jak załączony kod skutkuje 1-4 połączeniami na klienta, ale nadal może to powodować problemy, szczególnie gdy jednocześnie aktywowanych jest ponad 20 klientów. Większość połączeń kończy się samoczynnie po kilku sekundach, ale jeśli limit połączenia 191 zostanie osiągnięty, połączenia nie będą już zamykane, a serwer ulegnie awarii Według mojego zrozumienia zalecanym użyciem Apache httpclient jest wykorzystanie pojedynczej instancji klienta, ale wydaje się, że nie skutkuje to pojedynczym połączeniem z serwerem. Myśli lub coś, co (prawdopodobnie) przegapiłem? brak komentarzy Bądź pierwszą osobą, która podzieli się swoją opinią! == O społeczności == Członkowie Online