

O AWS SDK para Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Definir o JVM TTL para pesquisas de nome DNS
<a name="jvm-ttl-dns"></a>

A JVM armazena em cache pesquisas de nome DNS. Quando a JVM resolve um nome de host para um endereço IP, ela armazena o endereço IP em cache por um período de tempo especificado, conhecido como (TTL). *time-to-live*

Como AWS os recursos usam entradas de nome DNS que mudam ocasionalmente, recomendamos que você configure sua JVM com um valor TTL de 5 segundos. Isso garante que, quando o endereço IP de um recurso mudar, o aplicativo poderá receber e usar o novo endereço IP do recurso consultando novamente o DNS.

Em algumas configurações do Java, o TTL padrão da JVM é definido de maneira que *jamais* atualizará entradas DNS até a JVM ser reiniciada. Portanto, se o endereço IP de um AWS recurso mudar enquanto seu aplicativo ainda estiver em execução, ele não poderá usar esse recurso até que você *reinicie manualmente* a JVM e as informações IP em cache sejam atualizadas. Nesse caso, é crucial definir o TTL da JVM, de forma que ele atualize periodicamente as informações de IP armazenadas em cache.

## Como definir o TTL da JVM
<a name="how-to-set-the-jvm-ttl"></a>

Para modificar o TTL da JVM, defina o valor da propriedade de segurança [networkaddress.cache.ttl](https://docs.oracle.com/en/java/javase/17/core/java-networking.html#GUID-A680DADB-C4C1-40F1-B568-D9A97C917F5D). Observe que `networkaddress.cache.ttl` é uma *propriedade de segurança, não uma propriedade* do sistema, ou seja, ela não pode ser definida com o sinalizador de `-D` linha de comando.

### Opção 1: defina-o programaticamente em seu aplicativo
<a name="set-ttl-programmatically"></a>

Ligue [https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/Security.html](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/Security.html)logo na inicialização do aplicativo, antes que qualquer cliente AWS SDK seja criado e antes que qualquer solicitação de rede seja feita:

```
import java.security.Security;

public class MyApplication {
    public static void main(String[] args) {
        Security.setProperty("networkaddress.cache.ttl", "5");

        // ... create SDK clients and run application
    }
}
```

### Opção 2: defina-o no arquivo java.security
<a name="set-ttl-java-security-file"></a>

Defina a `networkaddress.cache.ttl` propriedade no `$JAVA_HOME/jre/lib/security/java.security` arquivo para Java 8 ou `$JAVA_HOME/conf/security/java.security` arquivo para Java 11 ou superior.

Veja a seguir um trecho de um arquivo `java.security` que mostra o cache de TTL definido para 5 segundos.

```
#
# The Java-level namelookup cache policy for successful lookups:
#
# any negative value: caching forever
# any positive value: the number of seconds to cache an address for
# zero: do not cache
#
...
networkaddress.cache.ttl=5
...
```

Todos os aplicativos executados na JVM representada pela variável de `$JAVA_HOME` ambiente usam essa configuração.

### Opção 3: usar o fallback de propriedades do sistema JDK (linha de comando)
<a name="set-ttl-system-property"></a>

Se você não puder modificar a configuração ou o código de segurança, poderá usar as propriedades do sistema JDK. Eles atuam como substitutos se nenhuma propriedade de segurança for definida.
+ `sun.net.inetaddr.ttl`— Controla pesquisas bem-sucedidas (TTL positivo)
+ `sun.net.inetaddr.negative.ttl`— Controla pesquisas com falha (TTL negativo)

```
java -Dsun.net.inetaddr.ttl=5 -Dsun.net.inetaddr.negative.ttl=1 -jar myapp.jar
```

**nota**  
Essas são propriedades internas do JDK documentadas na referência [Oracle Java 8 Networking Properties](https://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html) como propriedades privadas que “podem não ser suportadas em futuras versões”. Use as Opções 1-2 quando possível.