Todos os produtos
Search
Central de documentação

AnalyticDB:Garantir idempotência

Última atualização: Jun 27, 2026

Ao chamar uma operação de API do AnalyticDB for PostgreSQL, a requisição pode atingir o tempo limite ou o servidor pode retornar um erro antes da conclusão da operação. Se o seu cliente tentar repetir a requisição sem nenhuma proteção, a operação poderá ser executada mais de uma vez, criando recursos duplicados ou acionando efeitos colaterais indesejados. Utilize o parâmetro ClientToken para tornar as tentativas de repetição idempotentes, garantindo que múltiplas requisições idênticas produzam o mesmo resultado de uma única requisição.

Como funciona a idempotência

A idempotência é uma propriedade de certas operações e recursos na matemática e na ciência da computação, sendo fundamental para o projeto de sistemas distribuídos. Uma operação idempotente produz sempre o mesmo resultado, independentemente de quantas vezes seja executada. Para ativar a idempotência em uma requisição de API do AnalyticDB for PostgreSQL, inclua um valor ClientToken na requisição. O cliente gera esse token e o AnalyticDB for PostgreSQL o utiliza para detectar requisições duplicadas, retornando o resultado original sem repetir a operação.

Uso do ClientToken

O ClientToken é uma string exclusiva e sensível a maiúsculas e minúsculas, gerada no lado do cliente. Ela pode conter até 64 caracteres ASCII.

Exemplo: ClientToken=123e4567-e89b-12d3-a456-426655440000

Inclua o ClientToken em requisições que possam precisar de nova tentativa, como quando uma requisição retorna 500 Internal Server Error ou 503 Service Unavailable, ou quando nenhuma resposta é recebida.

Nota

Cada nova tentativa deve usar novos valores para

SignatureNonce

,

Timestamp

e

Signature

. O AnalyticDB for PostgreSQL usa

SignatureNonce

para evitar ataques de replay e

Timestamp

para identificar quando a requisição foi feita. Como ambos os valores mudam a cada tentativa,

Signature

também muda. Mantenha o

ClientToken

igual em todas as tentativas referentes à mesma requisição lógica.

Comportamento de repetição por código de status HTTP

Código de status HTTP

Ação

Detalhes

200

Não repetir

A requisição original foi bem-sucedida. Tentativas subsequentes retornam o mesmo resultado sem modificar o estado do servidor.

4xx com try it later

Aguardar e repetir

O servidor está temporariamente ocupado. Aguarde antes de tentar novamente.

Outros 4xx

Solucionar problemas primeiro

Há um problema na própria requisição. Resolva a questão com base na mensagem de erro antes de tentar novamente.

500 ou 503

Repetir

Erro transitório no lado do servidor. Repita a requisição com o mesmo ClientToken.

Erro: IdempotentParameterMismatch

Se você reutilizar um valor de ClientToken mas alterar outros parâmetros da requisição, o AnalyticDB for PostgreSQL retornará o código de erro IdempotentParameterMismatch. Para resolver isso, reutilize os parâmetros da requisição original ou gere um novo ClientToken para a nova requisição.