Errores comunes del controlador de Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Errores comunes del controlador de Amazon QLDB

En esta sección se describen los errores de tiempo de ejecución que el controlador de Amazon QLDB puede generar al interactuar con elAPI de sesión de QLDB.

A continuación se muestra una lista de excepciones comunes que devuelve el conductor. Cada excepción incluye el mensaje de error específico, seguido de una breve descripción y sugerencias para posibles soluciones.

La capacidad superó la excepción

Mensaje: Capacidad superada

Amazon QLDB rechazó la solicitud porque superó la capacidad de procesamiento del libro mayor. QLDB aplica un límite de escalado interno por libro mayor para mantener el estado y el rendimiento del servicio. Este límite varía según el tamaño de la carga de trabajo de cada solicitud individual. Por ejemplo, una solicitud puede aumentar la carga de trabajo si realiza transacciones de datos ineficientes, como análisis de tablas resultantes de una consulta no calificada para índices.

Le recomendamos que espere antes de volver a intentar la solicitud. Si su aplicación encuentra esta excepción de forma coherente, optimice los estados de cuenta y reduzca la tasa y el volumen de las solicitudes que envía al libro mayor. Algunos ejemplos de optimización de extractos incluyen la ejecución de menos extractos por transacción y el ajuste de los índices de tabla. Para obtener información sobre cómo optimizar las declaraciones y evitar análisis de tablas, consulteOptimización del rendimiento de consultas.

También recomendamos usar la versión más reciente del controlador QLDB. El controlador tiene una política de reintentos predeterminada que utilizaRetroceso exponencial y fluctuaciónpara volver a intentar automáticamente excepciones como esta. El retardo exponencial se basa en el concepto de utilizar tiempos de espera progresivamente más largos entre reintentos para las respuestas a errores consecutivos.

Excepción de sesión no válida

Mensaje: TransacciónTransactionIdha caducado

Una transacción superó su vida útil máxima. Una transacción puede ejecutarse hasta 30 segundos antes de comprometerse. Tras este límite de tiempo de espera, se rechaza cualquier trabajo realizado en la transacción y QLDB descarta la sesión. Este límite protege al cliente de la filtración de sesiones iniciando transacciones y no comprometiéndolas ni cancelándolas.

Si se trata de una excepción común en la aplicación, es probable que las transacciones tarden demasiado en ejecutarse. Si el tiempo de ejecución de la transacción tarda más de 30 segundos, optimice los estados de cuenta para acelerar las transacciones. Algunos ejemplos de optimización de extractos incluyen la ejecución de menos extractos por transacción y el ajuste de los índices de tabla. Para obtener más información, consulte Optimización del rendimiento de consultas.

Excepción de sesión no válida

Mensaje: Sesión desessionIdha caducado

QLDB descartó la sesión porque superó su vida útil total máxima. QLDB descarta las sesiones transcurridos entre 13 y 17 minutos, independientemente de una transacción activa. Las sesiones pueden perderse o deteriorarse por varios motivos, como fallos de hardware, fallos de red o reinicios de aplicaciones. Por lo tanto, QLDB impone una vida útil máxima en las sesiones para garantizar que el software cliente sea resistente a los fallos de sesión.

Si encuentra esta excepción, recomendamos que adquiera una nueva sesión y vuelva a intentar la transacción. También recomendamos utilizar la última versión del controlador QLDB, que administra el grupo de sesiones y su estado en nombre de la aplicación.

Excepción de sesión no válida

Mensaje: Ninguna sesión de este tipo

El cliente intentó realizar transacciones con QLDB mediante una sesión que no existe. Suponiendo que el cliente está utilizando una sesión que existía anteriormente, es posible que la sesión ya no exista debido a una de las siguientes acciones:

  • Si una sesión está involucrada en un error interno del servidor (es decir, un error con el código de respuesta HTTP 500), QLDB podría optar por descartar la sesión por completo, en lugar de permitir que el cliente realice transacciones con una sesión de estado incierto. A continuación, cualquier intento de reintento en esa sesión falla con este error.

  • QLDB olvida las sesiones caducadas. A continuación, cualquier intento de continuar utilizando la sesión se traduce en este error, en lugar del inicialInvalidSessionException.

Si encuentra esta excepción, recomendamos que adquiera una nueva sesión y vuelva a intentar la transacción. También recomendamos utilizar la última versión del controlador QLDB, que administra el grupo de sesiones y su estado en nombre de la aplicación.

Excepción de la tasa superada

Mensaje: Se ha superado la tasa

QLDB limitó a un cliente en función de la identidad de la persona que llama. QLDB aplica la limitación por región y por cuenta mediante unCubo de tokenalgoritmo de limitación controlada. QLDB hace esto para mejorar el rendimiento del servicio y garantizar un uso justa para todos los clientes de QLDB. Por ejemplo, intentar adquirir un gran número de sesiones simultáneas utilizando elStartSessionRequestla operación podría llevar a un estrangulamiento.

Para mantener el estado de la aplicación y mitigar una mayor limitación, puede volver a intentar realizar esta excepción medianteRetroceso exponencial y fluctuación. El retardo exponencial se basa en el concepto de utilizar tiempos de espera progresivamente más largos entre reintentos para las respuestas a errores consecutivos. Le recomendamos que utilice la versión más reciente del controlador QLDB. El controlador tiene una política de reintentos predeterminada que utiliza retroceso exponencial y fluctuación para volver a intentar automáticamente excepciones como esta.

La última versión del controlador QLDB también puede ayudar si QLDB limita constantemente su aplicación paraStartSessionRequestllamadas. El controlador mantiene un conjunto de sesiones que se reutilizan en todas las transacciones, lo que puede ayudar a reducir el número deStartSessionRequestllamadas que realiza su aplicación. Para solicitar un aumento de los límites de API, póngase en contacto con elAWS SupportCentro.

LimitExceededException

Mensaje: Se ha superado el límite de sesión

Un libro mayor superó su cuota (también conocida comolímite) sobre el número de sesiones activas. Esta cuota se define enCuotas y límites de Amazon QLDB. El recuento de sesiones activo de un libro mayor suele ser coherente y los libros contables que se ejecutan de forma coherente cerca de la cuota podrían ver periódicamente esta excepción.

Para mantener el estado de su aplicación, le recomendamos que vuelva a intentarlo con esta excepción. Para evitar esta excepción, asegúrese de que no ha configurado más de 1.500 sesiones simultáneas para utilizarlas en un solo libro mayor en todos los clientes. Por ejemplo, puede utilizar laTransacciones simultáneas máximasMétodo deControlador Amazon QLDB para Javapara configurar el número máximo de sesiones disponibles en una instancia de controlador de.

Excepción cliente QLDB

Mensaje: Un resultado en streaming solo es válido cuando la transacción principal está abierta

La transacción está cerrada y no se puede utilizar para recuperar los resultados de QLDB. Una transacción se cierra cuando se ha confirmado o cancelado.

Esta excepción se produce cuando el cliente trabaja directamente con elTransactione intenta recuperar los resultados de QLDB después de confirmar o cancelar una transacción. Para mitigar este problema, el cliente debe leer los datos antes de cerrar la transacción.