可以在程序运行后设置Java网络缓存吗?

时间:2014-04-04 17:26:39

标签: java caching networking

Amazon's developer guide个人应该在文件java.security中设置网络缓存TTL(设置为60秒)

networkaddress.cache.ttl=60

或以编程方式通过

java.security.Security.setProperty("networkaddress.cache.ttl" , "60");

我的问题是,在代码运行后更改TTL是否安全。 AWS的指南没有指定任何效果。必须在第一次DNS查找之前设置此属性下注吗?程序运行后的任何时候都会生效?等

Oracle documentation定义了该属性,但似乎没有指定如何安全地设置它。

我认为完全研究的唯一方法是阅读围绕这个值的源代码,但确实应该有更好的文档。还在寻找。

1 个答案:

答案 0 :(得分:0)

你可能很好。 Inet类包括方法

public static synchronized void setIfNotSet(int newPolicy) {
    /*
     * When setting the new value we may want to signal that the
     * cache should be flushed, though this doesn't seem strictly
     * necessary.
     */
    if (!propertySet) {
        checkValue(newPolicy, cachePolicy);
        cachePolicy = newPolicy;
    }
}

这似乎旨在设定新政策。 checkValue方法确保您不会将政策作为安全措施,您在这种情况下不会这样做,所以没关系。

(我还在研究它的用途,想要更明确的东西。)