2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
經(jīng)過(guò)調(diào)試很多事情后得到了這個(gè)問(wèn)題的答案。因?yàn)槲以谡麄€(gè)應(yīng)用程序中只創(chuàng)建一次連接。它在 IP 上的同一子網(wǎng)中工作,因?yàn)橹虚g沒(méi)有防火墻。但是,當(dāng)它移動(dòng)到不同的子網(wǎng)時(shí),由于連接關(guān)閉而出現(xiàn)此錯(cuò)誤,因?yàn)榉阑饓﹃P(guān)閉了代表較長(zhǎng)時(shí)間的連接。為了解決這個(gè)問(wèn)題,我在需要時(shí)創(chuàng)建一個(gè)連接請(qǐng)求,并池化相同的連接,這樣,如果下一個(gè)請(qǐng)求到來(lái),如果連接在連接池中可用,則使用相同的連接,否則創(chuàng)建新連接并在完成工作后關(guān)閉相同的連接。:)

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
不知道異常,錯(cuò)誤的一件事是您沒(méi)有調(diào)用close()
上的方法NamingEnumeration
,因此您正在泄漏資源。
如果它工作了一段時(shí)間,然后停止工作,這很可能是您遇到的資源耗盡異常。
NamingEnumeration<SearchResult> userResults = dirReaderctx.search(Constants.LDAP_DOMAIN_NAME,
? ? ? ? filter, controls);
if (userResults.hasMore()) {
? ? searchResult = userResults.next();
? ? userResults.close(); // <-- add this line
? ? return searchResult;
}
添加回答
舉報(bào)