テスト中、Foxxアプリケーションが「デッドロックが検出されました」という問題に陥っています。これらは、トラバーサルクエリによって引き起こされるようです。 Aprioriでは、トラバース中にどのテーブルが使用されるかを知ることは不可能ではないにしても困難です。しかし、私はテーブルの数を決定し、テストのためのトランザクションでAQLをラップする特定のケースを取った。ArangoDB Foxxデッドロック問題を解決するには?
var result = db._executeTransaction({"read":["pmlibrary "、" pmvartype "、" pmvariant "、" pmproject "、" pmsite "、" pmpath "、" pmattic "]}、" action ":" function(){var db = require(\ "@ arangodb \") db; var res = db._query(\ "pmlibrary/199340787 '] FOR v、e、p IN 0..7 INBOUND pm_child RETURN p.vertices \"); return res.toArray()} "});
FYIでは、コレクション内のテーブルのリストにはエッジテーブルが含まれていません。
ただし、このステートメントのデッドロックは続行されます。私は次に何を試すべきか分かりません。ありがとう。
David、 ありがとうございました。私の場合、配列内に複数の項目があり、それらは異なるコレクションに存在する可能性があります。 デッドロックエラーが2回発生していました。私は、AQLステートメントがお互いに対戦していると考えましたが、同じAQLステートメントの同時呼び出しでなければならないことが判明しました。 QAテスターは、私が実際にWITH句を使用して最初に修正したことを教えてくれませんでした。私は何かを逃したと思った。両方のステートメントでWITH句を使用すると、デッドロックは発生しません。 – ggendel