2017-06-11 9 views
1

Ist 3.2 eine API-Breaking Release? Nein. In Minor Releases können Funktionen und Funktionen, die öffentliche APIs enthalten, nicht mehr verwendet werden. Wir werden jedoch nicht veraltete Funktionen bis zu einer größeren Version entfernen.Nach dem Upgrade auf Neo4j 3.2 scheitern alle meine HTTP-Transaktions-API-Abfragen

Aktualisieren meiner DB von 3.1.5 zu 3.2 ist erfolgreich, aber fast jede HTTP-API-Abfrage von meiner App zu Neo4j schlägt fehl.

z.B .:

2017-06-11 12: 01: 20,808 + 0000 Fehler fehlgeschlagen JSON Ausgabe zu erzeugen. Kann kein Objekt starten, Feldname mmneo_1 | erwartet org.codehaus.jackson.JsonGenerationException: Kann ein Objekt nicht starten, Feldnamen

Und auf einer erfolgreiche Abfrage erwartet, kehrte das Ergebnis ist nicht das Ergebnis der Abfrage, sondern eine Warnung vom Planer:

&{200 OK 200 HTTP/1.1 1 1 map[Access-Control-Allow-Origin:[*] Retry-Count:[0] Server:[Jetty(9.2.9.v20150224)] Date:[Sun, 11 Jun 2017 12:01:20 GMT] Content-Type:[application/json]] {{"results":[{"columns":["newSession"],"data":[]}],"notifications":[{"code":"Neo.ClientNotification.Statement.PlannerUnavailableWarning","severity":"WARNING","title":"The RULE planner is not available in the current CYPHER version, the query has been run by an older CYPHER version.","description":"CREATE UNIQUE is unsupported for current CYPHER version, the query has been execute by an older CYPHER version","position":{"offset":100,"line":4,"column":1}}],"errors":[]}} -1 [] true false map[] 0xc420234300 <nil>} {"results":[{"columns":["newSession"],"data":[]}],"notifications":[{"code":"Neo.ClientNotification.Statement.PlannerUnavailableWarning","severity":"WARNING","title":"The RULE planner is not available in the current CYPHER version, the query has been run by an older CYPHER version.","description":"CREATE UNIQUE is unsupported for current CYPHER version, the query has been execute by an older CYPHER version","position":{"offset":100,"line":4,"column":1}}],"errors":[]} 

IMO, die Release-Informationen und insbesondere die Upgrade Noten sind traurig und grundsätzlich eine kreisförmige Referenz.

Ich bin sicher, es ist etwas dummes, aber ehrlich gesagt, ich habe erwartet, dass es einfach funktioniert. Wie dumm von mir?

Antwort

3

Der RULE-Planer wird nicht mehr mit 3.2 Cypher-Abfragen verwendet. start und create unique sind zwei Klauseln, die sich auf den RULE-Planer stützen.

Entweder entfernen Sie diese aus Ihren Abfragen (verwenden Sie MERGE anstelle von CREATE UNIQUE), oder stellen Sie Ihren CYPHER mit CYPHER 3.1 vor.

EDIT

... Das heißt, Version 3.2.x zurückzufallen 3.1 für diese Art von Anfragen des Planers von der Regel Planer und Version werden automatisch (es gab Probleme mit diesem in 3.2.0, obwohl ich nicht sicher bin, ob das Problem der Browser oder etwas tiefer war. Aus Ihrer Beschreibung sieht das so aus, aber der Fehler ist nicht sehr freundlich in Bezug auf die erwartete Ausgabe. Ich würde empfehlen, ein Problem dafür auf GitHub zu erstellen.

+0

ja. aber ich habe mit einem Fallback gerechnet, wie es in den Release Notes vorgeschlagen wird. Wenn ich durchgehen und meine Fragen ändern oder CYPHER 3.1 voranstellen muss, ist das eine bahnbrechende Veränderung. Ich bin OK mit 3.2, die brechende Änderungen haben, unter der Annahme, dass Neo4j KEINE semantische Versionierung benutzt. Ich möchte nur nicht, dass sie mir sagen, dass es keine brechenden Änderungen gibt, obwohl mein Code in der Tat ohne Änderungen in die Hölle geht. – GoTomGo

+0

Hast du es mit 3.2.1 versucht? Ich glaube, es gab einige Fehler, die direkt mit dem Fallback auf dem RULE-Planer in 3.2.0 zusammenhängen. – InverseFalcon

Verwandte Themen