我使用withRemote
dynamodb 存储后端将我的 java 应用程序连接到在 AWS 中运行的 gremlin 服务器。几秒钟后(约 3.3 秒)我得到连接超时:
org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.nio.channels.ClosedChannelException]]
我需要弄清楚如何重新连接,这意味着检测连接是否关闭。我不确定如何检测到这一点。当我使用图遍历时出现上述异常,有没有办法在之前发现它并重新连接,或者配置中是否有一个选项允许自动重新连接(比如在这个关闭之前创建新连接)所以我的应用程序总是连接?
如果您需要,这就是我进行连接的方式 - 当前连接部分在应用程序启动时是单例的:
this.graph = EmptyGraph.instance();
GryoMessageSerializerV1d0 gryoMessageSerializerV1d0 = new GryoMessageSerializerV1d0(
GryoMapper.build().addRegistry(JanusGraphIoRegistry.getInstance()));
this.cluster = Cluster.build().serializer(gryoMessageSerializerV1d0)
.addContactPoint(configuration.getString("graphDb.host", "localhost"))
.port(configuration.getInt("graphDb.port", 8182)).create();
this.graphTraversalSource = this.graph.traversal().withRemote(DriverRemoteConnection.using(cluster));