Verwenden Sie optionale HTTP abschließende Header, um mehrteilige Gremlin-Antworten zu ermöglichen - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie optionale HTTP abschließende Header, um mehrteilige Gremlin-Antworten zu ermöglichen

Standardmäßig wird die HTTP Antwort auf Gremlin-Abfragen in einer einzigen Ergebnismenge zurückgegeben. JSON Bei einem sehr großen Ergebnissatz kann dies zu einer OutOfMemoryError-Ausnahme für die DB-Instance führen.

Sie können jedoch die Aufteilung von Antworten aktivieren (die Rückgabe von Antworten in mehreren getrennten Teilen). Hierzu fügen Sie Ihrer Anforderung einen nachgestellten Transfer-Encoding (TE)-Header (te: trailers) hinzu. Weitere Informationen zu TE-Headern finden Sie auf der MDN Seite über TE-Request-Header.

Wenn eine Antwort in mehreren Teilen zurückgegeben wird, kann es schwierig sein, ein Problem zu diagnostizieren, das nach dem Empfang des ersten Teils auftritt, da der erste Teil mit dem HTTP Statuscode 200 (OK) eingeht. Ein nachfolgender Fehler führt in der Regel zu einer Meldung mit einer ungültigen Antwort, an die Neptune eine Fehlermeldung anfügt.

Um die Erkennung und Diagnose dieser Art von Fehler zu vereinfachen, fügt Neptune in die nachgestellten Header der einzelnen Antwortteile zwei neue Header-Felder ein:

  • X-Neptune-Status  –   enthält den Antwortcode gefolgt von einem Kurznamen. Im Erfolgsfall wäre der nachgestellte Header beispielsweise: X-Neptune-Status: 200 OK. Im Fehlerfall wäre der Antwortcode ein Neptune-Engine-Fehlercode wie X-Neptune-Status: 500 TimeLimitExceededException.

  • X-Neptune-Detail  –   ist bei erfolgreichen Anforderungen leer. Im Falle von Fehlern enthält es die JSON Fehlermeldung. Da in HTTP Header-Werten nur ASCII Zeichen zulässig sind, ist die JSON Zeichenfolge URL codiert.

Anmerkung

Neptune unterstützt zurzeit die gzip-Komprimierung aufgeteilter Antworten nicht. Wenn der Client gleichzeitig eine Aufteilung und eine Komprimierung anfordert, überspringt Neptune die Komprimierung.