我们最近开始在Heroku上运行的节点/快速应用中使用javascript neo4j-javascript-driver v1.0.4(并尝试了1.1.0-m02),我们发现偶尔会出现这种情况'此套接字已被其他方' 错误终止。大约每小时约2个错误,API处理大约15个请求/分钟。
我们在GrapheneDB上运行节点v4.6.1和neo4j v 3.0.6社区版。
报告的错误是:
1 at TLSSocket.writeAfterFIN [as write] (net.js line 284 col 12)
2 at NodeChannel.write (/app/node_modules/neo4j-driver/lib/v1/internal/ch-node.js line 329 col 20)
this._conn.write(buffer._buffer);
3 at Chunker.flush (/app/node_modules/neo4j-driver/lib/v1/internal/chunking.js line 114 col 18)
this._ch.write(out.getSlice(0, out.position));
4 at Connection.sync (/app/node_modules/neo4j-driver/lib/v1/internal/connector.js line 489 col 21)
this._chunker.flush();
5 at Session.run (/app/node_modules/neo4j-driver/lib/v1/session.js line 102 col 20)
this._conn.sync();
6 at Order.updateAllRights (/app/models/order.js line 300 col 13)
dbSession.run(query, queryParams)
7 at <unknown> (/app/handlers/webhooks/chargify.js line 529 col 28)
return context.order.updateAllRights();
8 at tryCatcher (/app/node_modules/bluebird/js/main/util.js line 26 col 23)
return target.apply(this, arguments);
9 at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/main/promise.js line 510 col 31)
x = tryCatch(handler).call(receiver, value);
10 at Promise._settlePromiseAt (/app/node_modules/bluebird/js/main/promise.js line 584 col 18)
this._settlePromiseFromHandler(handler, receiver, value, promise);
11 at Async._drainQueue (/app/node_modules/bluebird/js/main/async.js line 128 col 12)
fn.call(receiver, arg);
12 at Async._drainQueues (/app/node_modules/bluebird/js/main/async.js line 133 col 10)
this._drainQueue(this._normalQueue);
13 at Immediate.Async.drainQueues [as _onImmediate] (/app/node_modules/bluebird/js/main/async.js line 15 col 14)
self._drainQueues();
14 at processImmediate [as _immediateCallback] (timers.js line 383 col 17)
如果我能解决这个问题或者是否需要切换回REST类型的驱动程序,我试图找出解决方法。
报告https://github.com/neo4j/neo4j-javascript-driver/issues/144但到目前为止没有回复。