

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á.

# Como solucionar problemas gerais no Amazon Keyspaces
<a name="troubleshooting.general"></a>

Recebendo erros gerais? Aqui estão alguns problemas comuns e como resolvê-los.

## Erros gerais
<a name="troubleshooting-general"></a>

Você está recebendo uma das seguintes exceções de alto nível que podem ocorrer devido a vários motivos diferentes.
+ `NoNodeAvailableException`
+ `NoHostAvailableException`
+ `AllNodesFailedException`

Essas exceções são geradas pelo driver do cliente e podem ocorrer quando você está estabelecendo a conexão de controle ou quando está executando read/write/prepare/execute/batch solicitações. 

Quando o erro ocorre ao estabelecer a conexão de controle, é um sinal de que todos os pontos de contato especificados em seu aplicativo estão inacessíveis. Quando o erro ocorre durante a execução de read/write/prepare/execute consultas, ele indica que todas as novas tentativas dessa solicitação foram esgotadas. Cada nova tentativa é tentada em um nó diferente quando você está usando a política de repetição padrão. 

### Como isolar o erro subjacente das exceções do driver Java de nível superior
<a name="troubleshooting-general-isolation"></a>

Esses erros gerais podem ser causados por problemas de conexão ou durante a execução de read/write/prepare/execute operações. Falhas transitórias devem ser esperadas em sistemas distribuídos e devem ser tratadas repetindo a solicitação. O driver Java não tenta novamente automaticamente quando são encontrados erros de conexão, portanto, é recomendável implementar a política de repetição ao estabelecer a conexão do driver em seu aplicativo. Para obter uma visão geral detalhada das melhores práticas de conexão, consulte [Otimize as conexões do driver do cliente para o ambiente sem servidor](connections.md).

Por padrão, o driver Java é definido como false `idempotence` para todas as solicitações, o que significa que o driver Java não repete automaticamente a read/write/prepare solicitação com falha. Para configurar `idempotence` para `true` e solicitar ao driver que repita solicitações com falha, você pode fazer isso de algumas maneiras diferentes. Aqui está um exemplo de como você pode definir a idempotência de forma programática para uma única solicitação em seu aplicativo Java.

```
Statement s = new SimpleStatement("SELECT * FROM my_table WHERE id = 1");
s.setIdempotent(true);
```

Ou é possível definir a idempotência padrão para todo o aplicativo Java de forma programática, conforme mostrado no exemplo a seguir.

```
// Make all statements idempotent by default:
cluster.getConfiguration().getQueryOptions().setDefaultIdempotence(true);
//Set the default idempotency to true in your Cassandra configuration
basic.request.default-idempotence = true
```

Outra recomendação é criar uma política de repetição no nível do aplicativo. Nesse caso, o aplicativo precisa capturar o `NoNodeAvailableException` e repetir a solicitação. Recomendamos 10 novas tentativas com recuo exponencial começando em 10 ms e trabalhando até 100 ms com um tempo total de 1 segundo para todas as tentativas.

Outra opção é aplicar a política de repetição exponencial do Amazon Keyspaces ao estabelecer a conexão do driver Java disponível no [Github](https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers/blob/main/src/main/java/com/aws/ssa/keyspaces/retry/AmazonKeyspacesExponentialRetryPolicy.java).

Confirme se você estabeleceu conexões com mais de um nó ao usar a política de repetição padrão. Para isso, use a consulta a seguir no Amazon Keyspaces.

```
SELECT * FROM system.peers;
```

Se a resposta para essa consulta estiver vazia, isso indica que você está trabalhando com um único nó para o Amazon Keyspaces. Se você estiver usando a política de repetição padrão, não haverá novas tentativas porque a nova tentativa padrão sempre ocorre em um nó diferente. Para saber mais sobre como estabelecer conexões em endpoints da VPC, consulte [Como configurar conexões por meio de endpoints da VPC no Amazon Keyspaces](connections.md#connections.VPCendpoints).

Para ver um step-by-step tutorial que mostra como estabelecer uma conexão com o Amazon Keyspaces usando o driver Datastax 4.x Cassandra, consulte. [Step-by-step tutorial para se conectar ao Amazon Keyspaces usando o driver DataStax Java 4.x para Apache Cassandra e o plug-in de autenticação SigV4](using_java_driver.md#java_tutorial.SigV4)