We are trying to use OrientDB with REST API and vert.x.
we have noticed that when we send many requests one after the other we are receiving the following exeption:
Exception in Java verticle
java.nio.channels.ClosedChannelException
at org.vertx.java.core.http.impl.ClientConnection$2.handle(ClientConnection.java:256)
at org.vertx.java.core.http.impl.ClientConnection$2.handle(ClientConnection.java:246)
at org.vertx.java.core.net.impl.ConnectionBase.handleClosed(ConnectionBase.java:137)
at org.vertx.java.core.http.impl.ClientConnection.handleClosed(ClientConnection.java:367)
at org.vertx.java.core.net.impl.VertxHandler$3.run(VertxHandler.java:120)
at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:175)
at org.vertx.java.core.impl.DefaultContext.execute(DefaultContext.java:135)
at org.vertx.java.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:118)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:233)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:219)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.handler.codec.http.HttpContentDecoder.channelInactive(HttpContentDecoder.java:201)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:233)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:219)
at io.netty.handler.codec.ReplayingDecoder.channelInactive(ReplayingDecoder.java:348)
at io.netty.handler.codec.http.HttpClientCodec$Decoder.channelInactive(HttpClientCodec.java:212)
at io.netty.channel.CombinedChannelDuplexHandler.channelInactive(CombinedChannelDuplexHandler.java:133)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:233)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:219)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:769)
at io.netty.channel.AbstractChannel$AbstractUnsafe$5.run(AbstractChannel.java:568)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:370)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)
after an investigation with a network sniffer we have noticed that orientDB doesn't allow to reuse the same connection and it closes the connection at the middle of the second request.
if we hold between the requests (about 100ms) it works fine since it clothes the connection and the second request opens another one.