Neo4j-ogm X-Write header 在 read-only 事务的第一个请求上是错误的
Neo4j-ogm X-Write header is wrong on read-only transactions' first request
我正在使用:
- spring-data-neo4j 4.2.0.BUILD-SNAPSHOT
- neo4j-ogm 2.1.1
- neo4j 3.0.8
和我在使用 neo4j-ogm 设置的 X-Write HTTP header 时遇到问题。
写入事务时,它已正确设置。
但是我遇到 read-only 笔交易的问题。我在 read-only 事务中多次调用 neo4j:
- POST .../db/data/transaction {"statements":[{"statement":"request1"}...]} (X-WRITE : 真)
- POST .../db/data/transaction/1 {"statements":[{"statement":"request2"}...]} (X-WRITE: 假)
- POST .../db/data/transaction/1 {"statements":[{"statement":"request3"}...]} (X-WRITE: 假)
- ...
问题是 第一个请求包含 X_WRITE header 和 'true' 值 。接下来的请求正确地具有 header 和 'false' 值。
所以第一个请求总是发送到我的主节点,我无法在从节点上发送下一个请求,因为事务中的所有请求都必须发送到同一个 neo4j节点.
查看 neo4j-ogm 源代码,似乎可能是由于 HttpDriver.readOnly() 方法在 getCurrentTransaction() 为 null 时返回 false。
这绝对是 OGM HTTP 驱动程序中的错误。请在此处提出错误:https://github.com/neo4j/neo4j-ogm/issues
我正在使用:
- spring-data-neo4j 4.2.0.BUILD-SNAPSHOT
- neo4j-ogm 2.1.1
- neo4j 3.0.8
和我在使用 neo4j-ogm 设置的 X-Write HTTP header 时遇到问题。
写入事务时,它已正确设置。
但是我遇到 read-only 笔交易的问题。我在 read-only 事务中多次调用 neo4j:
- POST .../db/data/transaction {"statements":[{"statement":"request1"}...]} (X-WRITE : 真)
- POST .../db/data/transaction/1 {"statements":[{"statement":"request2"}...]} (X-WRITE: 假)
- POST .../db/data/transaction/1 {"statements":[{"statement":"request3"}...]} (X-WRITE: 假)
- ...
问题是 第一个请求包含 X_WRITE header 和 'true' 值 。接下来的请求正确地具有 header 和 'false' 值。
所以第一个请求总是发送到我的主节点,我无法在从节点上发送下一个请求,因为事务中的所有请求都必须发送到同一个 neo4j节点.
查看 neo4j-ogm 源代码,似乎可能是由于 HttpDriver.readOnly() 方法在 getCurrentTransaction() 为 null 时返回 false。
这绝对是 OGM HTTP 驱动程序中的错误。请在此处提出错误:https://github.com/neo4j/neo4j-ogm/issues