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

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

Grylin 会话 Support

您可以将 Gemlin 会话与 Amazon Neptune 中的隐式交易结合使用。有关 Gremlin 会话的信息,请参阅 Apache TinkerPop 文档中的考虑会话

重要

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

Grylin 控制台上的 Grylin 会话

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

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

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

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

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

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

Gymlin 语言变体中的 Gymlin 会话

在 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 支持的最大会话生命周期内关闭连接,则会话事务失败,并回滚其中的所有查询。