CorruptedFrameException:在远程客户端中的多个addV()gremlin查询上

CorruptedFrameException:在远程客户端中的多个addV()gremlin查询上,gremlin,Gremlin,工具集: DB服务器:TinkerPop/TinkerGraph V3.3.3(Stanlone-使用conf/gremlin Server.yaml)(channelizer:org.apache.TinkerPop.gremlin.Server.channel.WsAndHttpChannelizer) 客户端:来自Java的Gremlin客户端 问题:当我多次调用client.submitAsync()时,我收到一个异常。 如果更改查询内容,则引发异常之前的重复计数不同。这向我表明,在客户

工具集: DB服务器:TinkerPop/TinkerGraph V3.3.3(Stanlone-使用conf/gremlin Server.yaml)(channelizer:org.apache.TinkerPop.gremlin.Server.channel.WsAndHttpChannelizer)

客户端:来自Java的Gremlin客户端

问题:当我多次调用client.submitAsync()时,我收到一个异常。 如果更改查询内容,则引发异常之前的重复计数不同。这向我表明,在客户端配置中需要做一些事情

2018-11-07 09:57:59.418错误20672---[n-driver-loop-2]o.a.t.g.d.Handler$GremlinResponseHandler:无法处理响应 io.netty.handler.codec.CorruptedFrameException:已超过最大帧长度65536。 在io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation(WebSocket08FrameDecoder.java:412)~[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:277)~[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)~[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)~[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)~[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.nio.AbstractNioByteChannel$niobytuensafe.read(AbstractNioByteChannel.java:163)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)[netty-all-4.1.24.Final.jar:4.1.24.Final] 在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)[netty-all-4.1.24.Final.jar:4.1.24.Final] 位于io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)[netty-all-4.1.24.Final.jar:4.1.24.Final]
在java.lang.Thread.run(Thread.java:745)[na:1.8.0_121]

将驱动程序上的
connectionPool.maxContentLength
和Gremlin Server中的
maxContentLength
增加到65536以上。理想情况下,这两种大小应该在客户端和服务器上匹配,但我认为不一定要匹配


基于这个问题,我假设您正在向服务器提交一个非常大的脚本。小心点。大型脚本,尤其是那些不大型的脚本,可能会在应用程序的行为中导致不同的问题

问题不在addV()上,而是一个seacrh来返回所有顶点。在每次添加之前,我都会进行一次搜索,以获取大量顶点,并应用一些逻辑。因此,随着每个addV()增加顶点数,经过一段时间后,搜索(g.V()…)的响应内容会增加。
这个问题暂时可以认为已经得到了回答。但我正在搜索如何将响应内容的大小设置为未绑定。然而,我想这不是建议的。

Thankyu@stephen Mallette要正确配置Java驱动程序,请使用
Cluster.build().maxContentLength(1048576.create()