【发布时间】:2017-02-10 03:03:50
【问题描述】:
不用说我是 Heroku 和 GrapheneDB 的新手。我有一个使用 Neo4j 的 Nodejs 应用程序,它在我的本地机器上运行良好。我将它移到 Heroku 并使用 GrapheneDB 将 neo4j DB 连接到应用程序。当我在 Heroku 上运行应用程序时,当我尝试登录需要数据库访问权限时,我会收到 H12 请求超时。我的代码中唯一的变化是 GrapheneDB 推荐的以下内容:
var graphenedbURL = process.env.GRAPHENEDB_BOLT_URL;
var graphenedbUser = process.env.GRAPHENEDB_BOLT_USER;
var graphenedbPass = process.env.GRAPHENEDB_BOLT_PASSWORD;
var driver = neo4j.driver(graphenedbURL, neo4j.auth.basic(graphenedbUser, graphenedbPass));
//var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "xxxxx"));
我添加了前四行并注释掉了第五行。 该应用程序的非数据库功能工作正常,但任何连接到数据库的尝试都会导致 H12。我正在使用带有 Neo4j 3.0.8 的 Javascript 和 papertail 进行日志记录。以下是我尝试注册用户时的papertail日志:
Feb 09 18:53:44 puppydog-dev-2017 heroku/router: at=error code=H12 desc="Request timeout" method=POST path="/users/registerowner" host=puppydog-dev-2017.herokuapp.com request_id=867c7bc5-2d61-4c82-8b42-87732b21d449 fwd="104.244.227.83" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0
谁能解释一下这里发生了什么?
【问题讨论】:
-
我是来自 GrapheneDB 的 Alberto。您用于连接到 GrapheneDB 数据库的代码看起来是正确的。乍一看,与数据库的连接似乎不是问题。当您的应用程序完成请求的时间超过 30 秒时,Heroku 会给出 H12 超时错误(更多信息:devcenter.heroku.com/articles/request-timeout)。你能在
/users/registerowner分享你在做什么吗?顺便说一句,您遇到了问题,通过 heroku 支持渠道联系我们可能更方便。 -
@albertoperdomo /users/registerowner 是一个向数据库添加节点的帖子...只是通过电子邮件匹配,如果没有找到则创建唯一的。
-
您的数据集有多大?这是什么计划?另外,你开过支持票吗?
-
这是一个在免费计划上运行的节点少于 1000 个的开发环境,是的,我确实打开了支持票......还没有。问题显然不是 H12,而是第一次读取尝试时出现 ECONNRESET 错误,该错误关闭了数据库,导致后续数据库访问尝试中出现 H12。
-
您好 Michael,很抱歉得知您仍然遇到问题。我知道我们的工程团队正在调查这个问题。我希望他们能尽快找到解决办法。
标签: node.js heroku neo4j graphenedb