【问题标题】:Neo4j-ogm X-Write header is wrong on read-only transactions' first requestNeo4j-ogm X-Write 标头在只读事务的第一个请求上是错误的
【发布时间】:2017-01-20 07:04:57
【问题描述】:

我正在使用:

  • spring-data-neo4j 4.2.0.BUILD-SNAPSHOT
  • neo4j-ogm 2.1.1
  • neo4j 3.0.8

并且我遇到了由 neo4j-ogm 设置的 X-Write HTTP 标头问题

在写入事务时,它被正确设置。

但我遇到了只读事务问题。我在只读事务中多次调用 neo4j:

  • POST .../db/data/transaction {"statements":[{"statement":"request1"}...]} (X-WRITE: true)
  • POST .../db/data/transaction/1 {"statements":[{"statement":"request2"}...]} (X-WRITE: false)
  • POST .../db/data/transaction/1 {"statements":[{"statement":"request3"}...]} (X-WRITE: false)
  • ...

问题在于第一个请求包含具有“true”值的 X_WRITE 标头。下一个请求正确地具有带有 'false' 值的标头。

所以第一个请求总是发送到我的主节点,而我无法在从节点上发送下一个请求,因为事务中的所有请求都必须发送到同一个 neo4j 节点。强>

查看 neo4j-ogm 源代码,似乎可能是由于 HttpDriver.readOnly() 方法在 getCurrentTransaction() 为 null 时返回 false。

【问题讨论】:

    标签: java neo4j transactions spring-data-neo4j-4 neo4j-ogm


    【解决方案1】:

    这绝对是 OGM HTTP 驱动程序中的一个错误。请在此处提出错误:https://github.com/neo4j/neo4j-ogm/issues

    【讨论】:

    • neo4j-ogm 2.1.2-SNAPSHOT 已修复该错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2014-11-15
    • 2012-01-06
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多