首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4jError:由于错误或重置而忽略

Neo4jError:由于错误或重置而忽略
EN

Stack Overflow用户
提问于 2019-04-18 19:39:42
回答 1查看 164关注 0票数 0

这一期也在这里发布:https://github.com/neo4j/neo4j-javascript-driver/issues/452

  • Neo4j版本:企业3.4.10
  • Neo4j模式:带有3核0读副本的临时集群
  • 驱动程序版本: NodeJS新4j-驱动程序@1.7.3
  • 操作系统: Docker Alpine 4.4.0-145上的Nodejs -泛型;Docker Alpine v3.8上的数据库
  • 步骤来复制运行查询。可能是沉重的负担,但情况似乎并不总是如此
  • 预期的行为,查询执行而不是被拒绝。
  • 我得到连接重置错误或查询被忽略的实际行为
代码语言:javascript
复制
{ app: 'api-prod',
4/18/2019 1:03:36 PM0|app      |   error: { Neo4jError: Ignored either because of an error or RESET
4/18/2019 1:03:36 PM0|app      |     at captureStacktrace (/home/node/app/node_modules/neo4j-driver/lib/v1/result.js:200:15)
4/18/2019 1:03:36 PM0|app      |     at new Result (/home/node/app/node_modules/neo4j-driver/lib/v1/result.js:73:19)
4/18/2019 1:03:36 PM0|app      |     at finishTransaction (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:328:10)
4/18/2019 1:03:36 PM0|app      |     at Object.commit (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:232:17)
4/18/2019 1:03:36 PM0|app      |     at Transaction.commit (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:136:35)
4/18/2019 1:03:36 PM0|app      |     at TransactionExecutor._handleTransactionWorkSuccess (/home/node/app/node_modules/neo4j-driver/lib/v1/internal/transaction-executor.js:151:12)
4/18/2019 1:03:36 PM0|app      |     at /home/node/app/node_modules/neo4j-driver/lib/v1/internal/transaction-executor.js:127:23
4/18/2019 1:03:36 PM0|app      |     at <anonymous>
4/18/2019 1:03:36 PM0|app      |     at process._tickDomainCallback (internal/process/next_tick.js:228:7) code: 'N/A', name: 'Neo4jError' },
4/18/2019 1:03:36 PM0|app      |   query: 'MATCH (c:company {uuid: $cid})\n  RETURN {\n    paid_seats: c.paid_seats,\n    trial_end: c.trial_end\n  }',
4/18/2019 1:03:36 PM0|app      |   data: { cid: 'c5d1d277-3646-44b1-836b-6e40e68d17a7' },
4/18/2019 1:03:36 PM0|app      |   level: 'error',
4/18/2019 1:03:36 PM0|app      |   message: 'Datbase error on mixed transaction' }

如果我获取日志信息并运行查询,则它本身运行良好。我想这可能与未关闭的事务有关,所以我们拍摄了一个数据库快照,并在本地移动它,我们也在本地得到错误。

在/var/lib/nee4j/ logs下,任何一个码头容器上都没有错误日志。debug.log不包含任何相关信息。

为了完整,我们使用一个包装方法来调用数据库调用来为我们解析结果。在我们只使用.run之前,最近转向.writeTransaction试图解决这个问题,但我认为情况变得更糟了。

这是包装器:

代码语言:javascript
复制
run: function(query, data, parse = true){
    return new Promise((resolve, reject)=>{
      let session = driver.session()
      session.writeTransaction((tx)=>{
        tx.run(query, data)
        .then((result)=>{
          let records = result.records.map((record)=>{
            return record
          });
          session.close()
          resolve(parse ? db.parse(records) : records);
        })
      }).catch((err)=>{
        logger.error('Datbase error on mixed transaction', {
          error: err,
          query: query,
          data: data
        });

        if (err.code === neo4j.error.SERVICE_UNAVAILABLE) {
          logger.error('Database Unavailable', err)
        }

        session.close()
        reject(err);
      })
    });
  },

然后我们只需要await _db.run(query, params)

我们得到了相当多的这些错误。有什么想法吗?

今晚,我将把数据库升级到最新版本,看看这是否有帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-04-19 16:52:29

我将数据库升级到3.5.4-enterprise,从那以后我就没有看到任何这些连接错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55752745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档