Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi Amazon QLDB
Importante
Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto il 31/07/2025. Per ulteriori dettagli, consulta Migrare un Amazon QLDB Ledger ad Amazon Aurora Postgre
Le seguenti sezioni forniscono un elenco aggregato di errori comuni che potresti riscontrare durante l'utilizzo di Amazon QLDB e indicazioni su come risolverli.
Per una guida alla risoluzione dei problemi specifica per IAM l'accesso, consulta. Risoluzione dei problemi relativi all'QLDBidentità e all'accesso ad Amazon
Per le migliori pratiche per ottimizzare le istruzioni PartiQL, vedere. Ottimizzazione delle prestazioni delle query
Argomenti
Esecuzione di transazioni utilizzando il driver QLDB
Questa sezione elenca le eccezioni comuni che il QLDB driver Amazon può restituire quando lo usi per eseguire transazioni PartiQL su un registro. Per ulteriori informazioni sull'utilizzo di questa caratteristica, consulta Guida introduttiva al driver. Per le migliori pratiche per la configurazione e l'utilizzo del driver, consulta. Consigli per i conducenti
Ogni eccezione include il messaggio di errore specifico, seguito da una breve descrizione e suggerimenti per possibili soluzioni.
- CapacityExceededException
-
Messaggio:
capacità superata
Amazon QLDB ha rifiutato la richiesta perché superava la capacità di elaborazione del registro. QLDBimpone un limite di scalabilità interno per registro per mantenere l'integrità e le prestazioni del servizio. Questo limite varia in base alla dimensione del carico di lavoro di ogni singola richiesta. Ad esempio, una richiesta può comportare un carico di lavoro maggiore se esegue transazioni di dati inefficienti, ad esempio scansioni di tabelle risultanti da una query qualificata non indicizzata.
Ti consigliamo di attendere prima di riprovare la richiesta. Se la tua applicazione riscontra costantemente questa eccezione, ottimizza i rendiconti e riduci la frequenza e il volume delle richieste inviate al registro. Esempi di ottimizzazione dei rendiconti includono l'esecuzione di un minor numero di istruzioni per transazione e l'ottimizzazione degli indici delle tabelle. Per informazioni su come ottimizzare le istruzioni ed evitare le scansioni delle tabelle, consulta. Ottimizzazione delle prestazioni delle query
Si consiglia inoltre di utilizzare la versione più recente del QLDB driver. Il driver ha una politica di riprova predefinita che utilizza Exponential Backoff e Jitter
per riprovare automaticamente eccezioni come questa. Il concetto di backoff esponenziale consiste nell'utilizzare tempi di attesa progressivamente più lunghi tra un tentativo e l'altro per risposte di errore consecutive. - InvalidSessionException
-
Messaggio: Transazione
transactionId
è scadutoUna transazione ha superato la sua durata massima. Una transazione può durare fino a 30 secondi prima di essere confermata. Dopo questo limite di timeout, qualsiasi lavoro svolto sulla transazione viene rifiutato e la sessione viene QLDB annullata. Questo limite protegge il cliente dalla perdita di sessioni avviando le transazioni e non eseguendole o annullandole.
Se questa è un'eccezione comune nella tua applicazione, è probabile che le transazioni richiedano semplicemente troppo tempo per essere eseguite. Se l'esecuzione delle transazioni richiede più di 30 secondi, ottimizza i rendiconti per velocizzarle. Esempi di ottimizzazione dei rendiconti includono l'esecuzione di un minor numero di istruzioni per transazione e l'ottimizzazione degli indici delle tabelle. Per ulteriori informazioni, consulta Ottimizzazione delle prestazioni delle query.
- InvalidSessionException
-
Messaggio: sessione
sessionId
è scadutoQLDBha scartato la sessione perché ha superato la sua durata totale massima. QLDBelimina le sessioni dopo 13-17 minuti, indipendentemente dalla transazione attiva. Le sessioni possono andare perse o compromesse per diversi motivi, ad esempio guasti hardware, errori di rete o riavvii delle applicazioni. Pertanto, QLDB impone una durata massima delle sessioni per garantire che il software client sia resiliente agli errori delle sessioni.
Se riscontri questa eccezione, ti consigliamo di acquisire una nuova sessione e ritentare la transazione. Si consiglia inoltre di utilizzare la versione più recente del QLDB driver, che gestisce il pool di sessioni e il relativo stato per conto dell'applicazione.
- InvalidSessionException
-
Messaggio:
sessione
inesistenteIl client ha provato a effettuare una transazione QLDB utilizzando una sessione che non esiste. Supponendo che il client stia utilizzando una sessione che esisteva in precedenza, la sessione potrebbe non esistere più a causa di uno dei seguenti motivi:
-
Se una sessione è coinvolta in un errore interno del server (ovvero un errore con codice di HTTP risposta 500), è QLDB possibile scegliere di ignorare completamente la sessione, anziché consentire al cliente di effettuare transazioni con una sessione di stato incerto. Quindi, qualsiasi tentativo di riprovare quella sessione fallisce con questo errore.
-
Le sessioni scadute vengono infine dimenticate da. QLDB Quindi, qualsiasi tentativo di continuare a utilizzare la sessione genera questo errore, anziché quello iniziale
InvalidSessionException
.
Se riscontri questa eccezione, ti consigliamo di acquisire una nuova sessione e riprovare la transazione. Si consiglia inoltre di utilizzare la versione più recente del QLDB driver, che gestisce il pool di sessioni e il relativo stato per conto dell'applicazione.
-
- RateExceededException
-
Messaggio:
la velocità è stata superata
QLDBha limitato un client in base all'identità del chiamante. QLDBimpone la limitazione per regione e per account utilizzando un algoritmo di throttling del token bucket.
QLDBlo fa per migliorare le prestazioni del servizio e garantire un utilizzo equo per tutti i clienti. QLDB Ad esempio, il tentativo di acquisire un numero elevato di sessioni simultanee utilizzando l' StartSessionRequest
operazione potrebbe comportare un rallentamento.Per mantenere l'integrità dell'applicazione e mitigare ulteriori limitazioni, puoi riprovare questa eccezione utilizzando Exponential Backoff e Jitter.
Il concetto di backoff esponenziale consiste nell'utilizzare tempi di attesa progressivamente più lunghi tra un tentativo e l'altro per risposte di errore consecutive. Si consiglia di utilizzare la versione più recente del driver. QLDB Il driver ha una politica di riprova predefinita che utilizza il backoff e il jitter esponenziali per riprovare automaticamente eccezioni come questa. La versione più recente del QLDB driver può essere utile anche se l'applicazione viene costantemente limitata per le chiamate. QLDB
StartSessionRequest
Il driver gestisce un pool di sessioni che vengono riutilizzate tra le transazioni, il che può aiutare a ridurre il numero diStartSessionRequest
chiamate effettuate dall'applicazione. Per richiedere un aumento dei limiti di API limitazione, contatta il Centro.AWS Support - LimitExceededException
-
Messaggio: è stato
superato il limite
di sessioneUn registro ha superato la quota (nota anche come limite) sul numero di sessioni attive. Questa quota è definita in. Quote e limiti in Amazon QLDB Il conteggio delle sessioni attive di un libro mastro alla fine è costante e i libri contabili che si avvicinano costantemente alla quota potrebbero periodicamente vedere questa eccezione.
Per mantenere l'integrità dell'applicazione, ti consigliamo di riprovare questa eccezione. Per evitare questa eccezione, assicurati di non aver configurato più di 1.500 sessioni simultanee da utilizzare per un singolo registro su tutti i client. Ad esempio, puoi utilizzare il maxConcurrentTransactions
metodo del QLDBdriver Amazon per Java per configurare il numero massimo di sessioni disponibili in un'istanza di driver. - QldbClientException
-
Messaggio:
un risultato in streaming è valido solo quando la transazione principale è aperta
La transazione è chiusa e non può essere utilizzata per recuperare i risultati da. QLDB Una transazione si chiude quando viene confermata o annullata.
Questa eccezione si verifica quando il client lavora direttamente con l'
Transaction
oggetto e sta cercando di recuperare i risultati QLDB dopo aver commesso o annullato una transazione. Per mitigare questo problema, il cliente deve leggere i dati prima di chiudere la transazione.
Esportazione dei dati del diario
Questa sezione elenca le eccezioni comuni che QLDB possono essere restituite quando si esportano i dati del journal da un registro in un bucket Amazon S3. Per ulteriori informazioni sull'utilizzo di questa caratteristica, consulta Esportazione dei dati del diario da Amazon QLDB.
Ogni eccezione include il messaggio di errore specifico, seguito da una breve descrizione e suggerimenti per possibili soluzioni.
- AccessDeniedException
-
Messaggio:
Utente:
userARN
non è autorizzato a eseguire: iam: PassRole on resource:roleARN
Non hai i permessi per trasferire un IAM ruolo al QLDB servizio. QLDBrichiede un ruolo per tutte le richieste di esportazione delle riviste e devi disporre delle autorizzazioni a cui passare questo ruolo. QLDB Il ruolo QLDB fornisce autorizzazioni di scrittura nel bucket Amazon S3 specificato.
Verifica di definire una IAM politica che conceda l'autorizzazione a eseguire l'
PassRole
APIoperazione sulla risorsa di IAM ruolo specificata per il QLDB servizio ().qldb.amazonaws.com
Per un esempio di policy, consulta Esempi di policy basate sull'identità per Amazon QLDB. - IllegalArgumentException
-
Messaggio: si è
QLDB verificato un errore durante la convalida della configurazione S3:
errorCode
errorMessage
Una possibile causa di questo errore è che il bucket Amazon S3 fornito non esiste in Amazon S3. Oppure, QLDB non dispone di autorizzazioni sufficienti per scrivere oggetti nel bucket Amazon S3 specificato.
Verifica che il nome del bucket S3 fornito nella richiesta di lavoro di esportazione sia corretto. Per ulteriori informazioni sulla denominazione dei bucket, consulta Restrizioni e limitazioni dei bucket nella Amazon Simple Storage Service User Guide.
Inoltre, verifica di definire una policy per il bucket specificato che conceda
PutObject
ePutObjectAcl
autorizzi il servizio (). QLDBqldb.amazonaws.com
Per ulteriori informazioni, consulta Autorizzazioni di esportazione. - IllegalArgumentException
-
Messaggio: risposta
inaspettata da Amazon S3 durante la convalida della configurazione S3. Risposta da S3:
errorCode
errorMessage
Il tentativo di scrivere i dati di esportazione del journal nel bucket S3 fornito non è riuscito con la risposta di errore di Amazon S3 fornita. Per ulteriori informazioni sulle possibili cause, consulta la sezione Risoluzione dei problemi di Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.
- IllegalArgumentException
-
Messaggio: il
prefisso del bucket Amazon S3 non deve
superare i 128 caratteriIl prefisso fornito nella richiesta di esportazione del journal contiene più di 128 caratteri.
- IllegalArgumentException
-
Messaggio: la
data di inizio non deve essere successiva alla data di fine
Entrambi
InclusiveStartTime
ExclusiveEndTime
devono essere nel formato di data e ora ISO8601e nel formato Coordinated Universal Time (UTC). - IllegalArgumentException
-
Messaggio:
la data di fine non può essere futura
Entrambi
InclusiveStartTime
eExclusiveEndTime
devono essere nel formatoISO 8601
di data e ora e inUTC. - IllegalArgumentException
-
Messaggio:
l'impostazione di crittografia degli oggetti (S3EncryptionConfiguration) fornita non è compatibile con una chiave AWS Key Management Service (AWS KMS)
Hai
KMSKeyArn
fornito unaObjectEncryptionType
delle due opzioniNO_ENCRYPTION
oSSE_S3
. È possibile fornire a un cliente gestito AWS KMS key solo un tipo di crittografia degli oggetti diSSE_KMS
. Per ulteriori informazioni sulle opzioni di crittografia lato server in Amazon S3, consulta Protezione dei dati utilizzando la crittografia lato server nella Amazon S3 Developer Guide. - LimitExceededException
-
Messaggio: è
stato superato il limite di 2 job di esportazione di Journal
eseguiti contemporaneamenteQLDBimpone un limite predefinito di due processi di esportazione di giornali simultanei.
Streaming dei dati del diario
Questa sezione elenca le eccezioni comuni che QLDB possono essere restituite quando si trasmettono i dati del journal da un libro mastro ad Amazon Kinesis Data Streams. Per ulteriori informazioni sull'utilizzo di questa caratteristica, consulta Streaming dei dati del diario da Amazon QLDB.
Ogni eccezione include il messaggio di errore specifico, seguito da una breve descrizione e suggerimenti per possibili soluzioni.
- AccessDeniedException
-
Messaggio:
Utente:
userARN
non è autorizzato a eseguire: iam: PassRole on resource:roleARN
Non hai i permessi per trasferire un IAM ruolo al QLDB servizio. QLDBrichiede un ruolo per tutte le richieste di stream del diario e devi disporre delle autorizzazioni a cui passare questo ruolo. QLDB Il ruolo QLDB fornisce autorizzazioni di scrittura nella risorsa Amazon Kinesis Data Streams specificata.
Verifica di definire una IAM politica che conceda l'autorizzazione a eseguire l'
PassRole
APIoperazione sulla risorsa di IAM ruolo specificata per il QLDB servizio ().qldb.amazonaws.com
Per un esempio di policy, consulta Esempi di policy basate sull'identità per Amazon QLDB. - IllegalArgumentException
-
Messaggio: si è
QLDB verificato un errore durante la convalida di Kinesis Data Streams: Response di Kinesis:
errorCode
errorMessage
Una possibile causa di questo errore è che la risorsa Kinesis Data Streams fornita non esiste. Oppure, QLDB non dispone di autorizzazioni sufficienti per scrivere record di dati nel flusso di dati Kinesis specificato.
Verifica che il flusso di dati Kinesis fornito nella richiesta di streaming sia corretto. Per ulteriori informazioni, consulta Creazione e aggiornamento di flussi di dati nella Amazon Kinesis Data Streams Developer Guide.
Inoltre, verifica di aver definito una policy per il flusso di dati Kinesis specificato che conceda al QLDB service (
qldb.amazonaws.com
) le autorizzazioni per le seguenti azioni. Per ulteriori informazioni, consulta Autorizzazioni di streaming.-
kinesis:PutRecord
-
kinesis:PutRecords
-
kinesis:DescribeStream
-
kinesis:ListShards
-
- IllegalArgumentException
-
Messaggio: risposta
inaspettata da Kinesis Data Streams durante la convalida della configurazione Kinesis. Risposta di Kinesis:
errorCode
errorMessage
Il tentativo di scrivere record di dati nel flusso di dati Kinesis fornito non è riuscito con la risposta di errore Kinesis fornita. Per ulteriori informazioni sulle possibili cause, consulta la sezione Risoluzione dei problemi dei produttori di Amazon Kinesis Data Streams nella Amazon Kinesis Data Streams Developer Guide.
- IllegalArgumentException
-
Messaggio: la
data di inizio non deve essere successiva
alla data di fine.Entrambi
InclusiveStartTime
ExclusiveEndTime
devono essere nel formato di data e ora ISO8601e nel formato Coordinated Universal Time (UTC). - IllegalArgumentException
-
Messaggio: la
data di inizio non può essere futura.
Entrambi
InclusiveStartTime
i formatiExclusiveEndTime
devono essere in formatoISO 8601
data e ora e inUTC. - LimitExceededException
-
Messaggio:
superato il limite di 5 stream Journal in esecuzione simultanea su Kinesis Data Streams
QLDBimpone un limite predefinito di cinque flussi di journal simultanei.
Verifica dei dati del diario
Questa sezione elenca le eccezioni più comuni che QLDB possono essere restituite quando si verificano i dati delle registrazioni in un libro mastro. Per ulteriori informazioni sull'utilizzo di questa caratteristica, consulta Verifica dei dati in Amazon QLDB.
Ogni eccezione include il messaggio di errore specifico, seguito dalle API operazioni che possono generarlo, una breve descrizione e suggerimenti per possibili soluzioni.
- IllegalArgumentException
-
Messaggio:
il valore Ion fornito non è valido e non può essere analizzato
.APIoperazioni:
GetDigest, GetBlock, GetRevision
Assicurati di fornire un valore Amazon Ion valido prima di ritentare la richiesta.
- IllegalArgumentException
-
Messaggio:
l'indirizzo di blocco fornito non è valido
.APIoperazioni:
GetDigest, GetBlock, GetRevision
Assicurati di fornire un indirizzo di blocco valido prima di riprovare la richiesta. Un indirizzo di blocco è una struttura Amazon Ion con due campi:
strandId
esequenceNo
.Ad esempio:
{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}
- IllegalArgumentException
-
Messaggio:
il numero progressivo dell'indirizzo digest tip fornito non corrisponde all'ultimo record registrato del filone.
APIoperazioni:
GetDigest, GetBlock, GetRevision
L'indirizzo digest tip fornito deve avere un numero di sequenza inferiore o uguale al numero di sequenza dell'ultimo record assegnato alla sezione del diario. Prima di riprovare la richiesta, assicurati di fornire un indirizzo digest tip con un numero di sequenza valido.
- IllegalArgumentException
-
Messaggio:
lo Strand ID dell'indirizzo di blocco fornito non è
valido.APIoperazioni:
GetDigest, GetBlock, GetRevision
L'indirizzo di blocco fornito deve avere un ID di filamento che corrisponda all'ID di strand del diario. Prima di riprovare la richiesta, assicurati di fornire un indirizzo di blocco con un Strand ID valido.
- IllegalArgumentException
-
Messaggio:
il numero di sequenza dell'indirizzo di blocco fornito non corrisponde all'ultimo record registrato del filamento
.APIoperazioni:
GetBlock, GetRevision
L'indirizzo di blocco fornito deve avere un numero di sequenza inferiore o uguale al numero di sequenza dell'ultimo record salvato del filamento. Prima di riprovare la richiesta, assicurati di fornire un indirizzo di blocco con un numero di sequenza valido.
- IllegalArgumentException
-
Messaggio:
lo Strand ID dell'indirizzo di blocco fornito deve corrispondere allo Strand ID dell'indirizzo digest tip fornito
.APIoperazioni:
GetBlock, GetRevision
È possibile verificare la revisione o il blocco di un documento solo se esiste nella stessa sezione del diario del digest fornito.
- IllegalArgumentException
-
Messaggio:
il numero di sequenza dell'indirizzo di blocco fornito non deve essere maggiore del numero di sequenza dell'indirizzo digest tip fornito
.APIoperazioni:
GetBlock, GetRevision
Puoi verificare la revisione o il blocco di un documento solo se è incluso nel riassunto che fornisci. Ciò significa che è stato inserito nel diario prima dell'indirizzo del riepilogo.
- IllegalArgumentException
-
Messaggio:
l'ID del documento fornito non è stato trovato nel blocco all'indirizzo di blocco specificato
.APIoperazione:
GetRevision
L'ID del documento fornito deve esistere nell'indirizzo di blocco fornito. Prima di riprovare la richiesta, assicurati che questi due parametri siano coerenti.