如何在海王星使用小精灵会话?

lzfw57am  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(637)

我试着和亚马逊海王星一起使用小精灵会话。我可以在会话之外很好地执行字节码查询,也可以在会话客户端上运行字符串查询,但尝试在会话客户端上运行字节码查询会导致以下错误:

"code":"MalformedQueryException",
"detailedMessage":"Message with op code [bytecode] is not recognized."

我严格遵守了aws文件。

Cluster cluster = Cluster.build().with {
    addContactPoint('host')
    port(8182)
    enableSsl(true)
    serializer(Serializers.GRAPHBINARY_V1D0)
    create()
}

def client = cluster.connect('session ID')

println client.submit('g.V()').all().get() // works

println traversal().withRemote(DriverRemoteConnection.using(client))
    .V().iterate() // returns the error above

println traversal().withRemote(DriverRemoteConnection.using(cluster))
    .V().iterate() // works, without a session

我用的是gremlin3.4.8。我该怎么做?

mepcadol

mepcadol1#

neptune根本不支持基于字节码的请求(甚至不支持gremlin服务器本身作为参考实现)。造成这种差异的主要原因是,tinkerpop不想比已经在使用的会话更进一步地促进会话的使用。tinkerpop为工具支持的狭义用例构建了大量会话,例如gremlin控制台远程连接、可视化工具包和图形分析工具。然而,由于gremlin对远程多请求事务用例的支持很弱,用户已经扩展了会话使用,以此来解决这个弱点。
我感觉到这种扩展可能会迫使tinkerpop在会话中提供字节码支持,但目前还没有任何决定。另一种选择是改进对事务的支持,但考虑到这种更改的性质,在Tinkerpop3.x的范围内这可能是不可能的。
目前,如果您希望使用会话,则只能提交脚本。

相关问题