2012-08-23 303 views
0

我正在寫一個應用程序,它會定期聯繫很多網站(在他們的所有者請求)。爲此,我希望能夠調整Java的DNS緩存。我似乎無法找到任何地方:Java DNS緩存大小

  1. 的默認最大緩存大小

  2. 如何改變這種

任何想法?

謝謝。

編輯:我很關心緩存越來越大和運行內存

+1

它沒有最小或最大大小,它具有條目TTL。請參閱[網絡屬性](http://docs.oracle.com/javase/6/docs/technotes/guides/net/properties.html#nct)。 – EJP

回答

0

的Java僅委派給操作系統。你在使用什麼操作系統?

更新:這其實並不完全正確。 Sun JVM維護自己的解析主機名緩存。默認情況下,緩存中的項目將永遠存在,但您可以向下調整TTL。當然,這個緩存不會在JVM調用中持續存在;在那種情況下,我的第一句話就是。

+0

此外,TTL似乎不起作用。 –

+0

@Pangea - 我自己從未使用過;發佈後,我記得InetAddress確實有內部的東西,所以看看。然而,我不認爲這是OP所需要的。 – parsifal

+0

這是我正在查看的InetAddress內部緩存。 – Jonathan

0

我已經通過implementation中的InetAddress緩存走了,我敢肯定,其實沒有一個緩存限制。我猜設計師從來沒有設想過一個客戶端可以訪問這麼多的主機,這會導致我們耗盡內存。