Utilisation d'en-têtes de suivi HTTP facultatifs pour activer les réponses Gremlin en plusieurs parties - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'en-têtes de suivi HTTP facultatifs pour activer les réponses Gremlin en plusieurs parties

Par défaut, la réponse HTTP aux requêtes Gremlin est renvoyée dans un seul ensemble de résultats JSON. Un ensemble de résultats très volumineux peut générér une exception OutOfMemoryError dans l'instance de base de données.

Vous pouvez toutefois activer les réponses segmentées (réponses renvoyées en plusieurs parties distinctes). Pour ce faire, incluez un en-tête « trailer » (te: trailers) d'encodage de transfert (TE) dans la demande. Consultez la page MDN (sur les en-têtes de demande TE) pour plus d'informations sur ces en-têtes.

Lorsqu'une réponse est renvoyée en plusieurs parties, il peut être difficile de diagnostiquer un problème qui survient après la réception de la première partie, car la première partie arrive avec le code de statut HTTP 200 (OK). En cas d'échec ultérieur, le corps du message contient généralement une réponse corrompue, à la fin de laquelle Neptune ajoute un message d'erreur.

Pour faciliter la détection et le diagnostic de ce type d'échec, Neptune inclut également deux nouveaux champs d'en-tête dans les en-têtes suivants de chaque segment de réponse :

  • X-Neptune-Status : contient le code de réponse suivi d'un nom court. Par exemple, en cas de réussite, l'en-tête final serait : X-Neptune-Status: 200 OK. En cas d'échec, le code de réponse est l'un des codes d'erreur du moteur Neptune, tel que X-Neptune-Status: 500 TimeLimitExceededException.

  • X-Neptune-Detail : est vide pour les demandes qui ont abouti. En cas d'erreur, il contient le message d'erreur JSON. Étant donné que seuls les caractères ASCII sont autorisés dans les valeurs d'en-tête HTTP, la chaîne JSON est encodée en URL.

Note

Neptune ne prend actuellement pas en charge la compression gzip des réponses segmentées. Si le client demande à la fois un encodage et une compression segmentés, Neptune ignore la compression.