Можно ли открывать транзакции в OrientDB через сервер gremlin? - PullRequest
0 голосов
/ 12 февраля 2019

Я заметил, посмотрев исходный код java библиотеки orientdb-gremlin, что она выглядит как оболочка, которая получает команды gremlin и переводит их в SQL-запросы orientdb.

Я пытаюсь использовать gremlinс orientdb в javascript (NodeJs) и для этого я использую библиотеку gremlin js.Я могу нормально подключиться к серверу gremlin (я использую тот, который поставляется с OrientDB 3.0.14), но я пока не могу заставить транзакции работать по двум причинам: 1) В библиотеке gremlin js нет метода tx () вГрафик объекта.2) Я подумал: «Я могу добавить его туда, но сначала посмотрим в консоли gremlin, поддерживает ли OrientDB открытие транзакции с сервера gremlin» .Поэтому попытка с консоли gremlin тоже не работает (помните, что я не хочу использовать плагин orientdb-gremlin, поскольку в javascript я не смогу его использовать):

gremlin> :remote connect tinkerpop.server conf/remote-secure.yaml
gremlin> :> g.tx().open()
gremlin> :> g.tx().isOpen()

Эта последняя команда приводит к false, поэтому транзакция не открывается.

Есть ли способ охватить транзакцию OrientDB 3.0.14 через сервер gremlin?

1 Ответ

0 голосов
/ 12 февраля 2019

Предполагая, что orientdb-gremlin поддерживает g.tx() (на самом деле graph.tx(), который вызывается g.tx() - т. Е. Экземпляр Graph должен его поддерживать), тогда единственный способ использовать транзакцию из javascript - это если вы отправите строкуна основе скриптов для Gremlin Server и сделали это через сеанс .Я думаю, что это потенциально, почему вы не видите isOpen() return true, поскольку вы подключились к серверу без сеанса - вы можете изменить это, выполнив:

:remote connect tinkerpop.server conf/remote.yaml session

, который обсуждается здесь .

Отправка скриптов на основе строк не является рекомендуемым способом взаимодействия с Gremlin Server.Это гораздо лучший опыт разработки - просто «писать Gremlin» на своем родном языке программирования, а не встраивать Gremlin в строки.Я бы пересмотрел этот подход, если вы можете и постараться не полагаться на графические транзакции.Они делают ваш код далеко менее переносимым .

...