*Arkiverad* = Hantera webbserveranslutningar = Problem: Jag har ett JavaFx-program som begär en db via http. Jag stöter på problem där alla tillgängliga anslutningar till webbservern (191) förbrukas, vilket orsakar en krasch Jag försöker ta reda på varför detta händer, eftersom det verkar vara så att de faktiska anslutningarna borde vara mycket lägre. Det finns högst 40 instanser av programmet som körs åt gången Här är en typisk användningsmetod (Kotlin): fun myHTTPFunction(användare: String, phone: String, customCID: Boolean, cID: String) { val httpClient = HttpClients.createDefault() val svar: CloseableHttpResponse try { val useCID = when(customCID) { true ->"&group_alias=$cID"else ->""} val httpPost = HttpPost(PHP ADDRESS) response = httpClient.execute(httpPost) EntityUtils.consume(response.entity) prova {response.closecatch (e: Undantag) {exception.showStackTrace(e) )} prova {httpClient.closecatch (e: Exception) {exception.showStackTrace(e)} } catch(e: Exception) { exception.showStackTrace(e) } } Obs: Ursprungligen skapades bara en enda instans av HttpClients och återanvändes för metodanrop. Men när man kontrollerar anslutningar på webbservern resulterar denna metod i cirka 30 % fler anslutningar per aktiv klient. (Upp till 20 trots endast ett enda 'createDefault-metodanrop.) Att använda en metod som den bifogade koden resulterar i 1-4 anslutningar per klient, men detta kan fortfarande orsaka problem, särskilt när 20+ klienter aktiveras samtidigt. De flesta anslutningar avslutas själv efter några sekunder, men om 191-anslutningslocket träffas kommer anslutningarna inte längre att stängas och servern kraschar Enligt min uppfattning är den rekommenderade användningen av apache httpclient att använda en enda klientinstans, men detta verkar inte resultera i en enda anslutning till servern. Tankar eller något jag (förmodligen) har missat? inga kommentarer än Var den första att dela vad du tycker! == Om gemenskapen == Medlemmar Online