Gremlin 会话 Support - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Gremlin 会话 Support

您可以将 Grelin 会话与 Amazon Neptune 中的隐式事务结合使用。有关 Gremlin 会话的信息,请参阅考虑会话Apache 在 ApacheTinkerPop文档中)。以下各节介绍了如何将 Gemlin 会话与 Java 搭配使用。

注意

从开始,可以通过以下功能:Neptune 引擎版本 1.0.1.0.200463.0.

重要

目前,Neptune 可以保持会话打开的最长时间为 10 分钟。如果您未在此时间之前关闭会话,会话超时,其中的所有内容将回滚。

此外,目前,您只能在会话中使用字符串脚本提交,而不能使用字节码。

Gemlin 控制台上的 Gemlin 会话

如果在 Gremlin 控制台上创建不带 session 参数的远程连接,则将以无会话模式创建远程连接。在这种模式下,提交到服务器的每个请求本身都被视为完整事务,并且请求之间不保存状态。如果某个请求失败,只回滚该请求。

如果您使用 session 参数创建远程连接,则创建的会话持续,直到您关闭远程连接。每个会话由控制台生成并返回给您的唯一 UUID 标识。

以下是创建会话的控制台调用的示例。提交查询后,新的调用将关闭该会话并提交查询。

gremlin> :remote connect tinkerpop.server conf/neptune-remote.yaml session . . . . . . gremlin> :remote close

有关更多信息和示例,请参阅会话中的TinkerPop文档中)。

您在会话期间运行的所有查询构成一个事务,直到所有查询成功并且您关闭远程连接后,该事务才会提交。如果某个查询失败,或者如果您未在 Neptune 支持的最大会话生命周期内关闭连接,则不会提交会话事务,并回滚其中的所有查询。

Gremlin 语言变体中的 Gremlin 会话

在 Gremlin 语言变体 (GLV) 中,您需要创建 SessionedClient 对象,以便在单个事务中发出多个查询,如下面的示例所示。

Cluster cluster = Cluster.open(); // line 1 Client client = cluster.connect("sessionName"); // line 2 . . . . . . client.close( );

上一示例中的第 2 行根据为所讨论集群设置的配置选项创建 SessionedClient 对象。您传递到连接方法的 sessionName 字符串成为会话的唯一名称。为避免冲突,请为名称使用 UUID。

客户端在初始化时启动会话事务。仅当您调用 client.close( ) 时,才会提交在构成该会话时运行的所有查询。同样,如果某个查询失败,或者如果您未在 Neptune 支持的最大会话生命周期内关闭连接,则会话事务失败,回滚其中的所有查询。