Как выполнить запрос гремлина с могваем

Я пытаюсь запросить titan db 0.5.4 через mogwai, но когда я запускаю следующий скрипт, я получаю сообщение об ошибке: rexpro.exceptions.RexProScriptException: транзакция не открыта

и я нашел тот же вопрос здесь

P.S. нет тега для могваев

сценарий:

#!/usr/bin/env python3
from mogwai.connection import execute_query, setup


con = setup('127.0.0.1', graph_name="bio4j", username="re", password="re")

results = execute_query("2 * a",params={"a":2}, connection= con)
print(results)


results = execute_query("bio4j.E",params={}, connection= con)
print(results)

журнал:

$ ./bin/rexster.sh --start
0    [main] INFO  com.tinkerpop.rexster.Application  - .:Welcome to Rexster:.
93   [main] INFO  com.tinkerpop.rexster.server.RexsterProperties  - Using [/Users/Phoenix/Dropbox/Graph4Bio/Titan/rexhome/config/rexster.xml] as configuration source.
102  [main] INFO  com.tinkerpop.rexster.Application  - Rexster is watching [/Users/Phoenix/Dropbox/Graph4Bio/Titan/rexhome/config/rexster.xml] for change.
730  [main] INFO  com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration  - Generated unique-instance-id=0a69045d1736-AngryMac-local1
804  [main] INFO  com.thinkaurelius.titan.diskstorage.Backend  - Initiated backend operations thread pool of size 8
905  [main] INFO  com.thinkaurelius.titan.diskstorage.log.kcvs.KCVSLog  - Loaded unidentified ReadMarker start time Timepoint[1455128079919000 μs] into com.thinkaurelius.titan.diskstorage.log.kcvs.KCVSLog$MessagePuller@302c971f
908  [main] INFO  com.tinkerpop.rexster.RexsterApplicationGraph  - Graph [bio4j] - configured with allowable namespace [tp:gremlin]
932  [main] INFO  com.tinkerpop.rexster.config.GraphConfigurationContainer  - Graph bio4j - titangraph[berkeleyje:/Users/Phoenix/Dropbox/Graph4Bio/Bio4j/bio4j] loaded
939  [main] INFO  com.tinkerpop.rexster.server.metrics.HttpReporterConfig  - Configured HTTP Metric Reporter.
941  [main] INFO  com.tinkerpop.rexster.server.metrics.ConsoleReporterConfig  - Configured Console Metric Reporter.
2058 [main] INFO  com.tinkerpop.rexster.server.HttpRexsterServer  - HTTP/REST thread pool configuration: kernal[4 / 4] worker[8 / 8] 
2060 [main] INFO  com.tinkerpop.rexster.server.HttpRexsterServer  - Using org.glassfish.grizzly.strategies.LeaderFollowerNIOStrategy IOStrategy for HTTP/REST.
2160 [main] INFO  com.tinkerpop.rexster.server.HttpRexsterServer  - Rexster Server running on: [http://localhost:8182]
2160 [main] INFO  com.tinkerpop.rexster.server.RexProRexsterServer  - Using org.glassfish.grizzly.strategies.LeaderFollowerNIOStrategy IOStrategy for RexPro.
2160 [main] INFO  com.tinkerpop.rexster.server.RexProRexsterServer  - RexPro thread pool configuration: kernal[4 / 4] worker[8 / 8] 
2162 [main] INFO  com.tinkerpop.rexster.server.RexProRexsterServer  - Rexster configured with [DefaultSecurity].
2163 [main] INFO  com.tinkerpop.rexster.server.RexProRexsterServer  - RexPro Server bound to [0.0.0.0:8184]
2177 [main] INFO  com.tinkerpop.rexster.server.ShutdownManager  - Bound shutdown socket to /127.0.0.1:8183. Starting listener thread for shutdown requests.
152568 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineController  - ScriptEngineManager has factory for: ECMAScript
152568 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineController  - ScriptEngineManager has factory for: gremlin-groovy
152568 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineController  - Registered ScriptEngine for: gremlin-groovy
152569 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineHolder  - Initializing gremlin-groovy engine with additional imports.
153259 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineHolder  - ScriptEngine initializing with a custom script
154074 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.EngineController  - ScriptEngineManager has factory for: Groovy
154076 [Grizzly(2) SelectorRunner] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - RexPro Session created: a2b416ce-75ea-4ecb-9835-b287162c90cb
154354 [Grizzly(4)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - Try to destroy RexPro Session: a2b416ce-75ea-4ecb-9835-b287162c90cb
154355 [Grizzly(4)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - RexPro Session destroyed or doesn't otherwise exist: a2b416ce-75ea-4ecb-9835-b287162c90cb
154356 [Grizzly(5)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - RexPro Session created: 5b8a669f-615d-4f84-9d1e-2d10624347f0
154525 [Grizzly(7)] WARN  com.tinkerpop.rexster.protocol.server.ScriptServer  - Could not process script [bio4j.E] for language [groovy] on session [[B@6634722f] and request [[B@68f38099]
154527 [Grizzly(8)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - Try to destroy RexPro Session: 5b8a669f-615d-4f84-9d1e-2d10624347f0
154527 [Grizzly(8)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - RexPro Session destroyed or doesn't otherwise exist: 5b8a669f-615d-4f84-9d1e-2d10624347f0
154529 [Grizzly(1)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - Try to destroy RexPro Session: 00000000-0000-0000-0000-000000000000
154529 [Grizzly(1)] INFO  com.tinkerpop.rexster.protocol.session.RexProSessions  - RexPro Session destroyed or doesn't otherwise exist: 00000000-0000-0000-0000-000000000000

person Zingo    schedule 10.02.2016    source источник
comment
Как открыть сделку? Сообщение об ошибке кажется ясным.   -  person Mohamed Taher Alrefaie    schedule 11.02.2016
comment
спасибо за вашу помощь, я мог добиться вывода желания, используя rexpro из здесь   -  person Zingo    schedule 11.02.2016
comment
обновленная ссылка на rexpro python: github.com/platinummonkey/rexpro-python   -  person platinummonkey    schedule 11.02.2016


Ответы (1)


Сопровождающий могваи здесь.

Какую версию могваи вы используете? в 0.7.7 нет возвращаемого значения для метода установки, и объект подключения не должен передаваться. На самом деле, когда вы вызываете setup, он создает пул соединений (синхронный пул соединений rexpro, поскольку параметр параллелизма не указан). В общем, просто вызовите setup один раз для жизни вашего приложения, и вы можете использовать запрос на выполнение без каких-либо ссылок.

Также особенно выделяется это сообщение:

154525 [Grizzly(7)] WARN  com.tinkerpop.rexster.protocol.server.ScriptServer  - Could not process script [bio4j.E] for language [groovy] on session [[B@6634722f] and request [[B@68f38099]

Настроен ли ваш график с именем графика «bio4j»? Имя графа титана по умолчанию — «граф», а имя объекта графа по умолчанию, которое использует могвай, — «g». Если у вас есть имя графа «bio4j», вы не будете ссылаться на него напрямую, вы должны использовать имя объекта графа, связанное с транзакцией. Вы можете представить имя графа как имя базы данных в базе данных SQL, а объект графа — это транзакционная ссылка на указанную базу данных. Это настраивается в файле конфигурации xml при запуске титана. Особенно:

<graphs>
    <graph>
        <graph-name>graph</graph-name>
        ....
    </graph>
</graphs>

Итак, предположим, что вы изменили это с «graph» на «bio4j» и оставили имя graph_obj_name по умолчанию в функции настройки как «g», тогда ваш запрос должен читаться как «g.E».

person platinummonkey    schedule 11.02.2016
comment
большое спасибо, это моя вина, я изменил имя графика в файле rexster.xml. еще раз спасибо :) - person Zingo; 11.02.2016