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));