gremlin - CorruptedFrameException:远程客户端中的多个 addV() gremlin 查询
问题描述
工具集: 数据库服务器:TinkerPop/TinkerGraph v 3.3.3(Stanalone - 使用 conf/gremlin-server.yaml)(通道器:org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer)
客户端:来自 Java 的 Gremlin 客户端。
问题:当我多次调用 client.submitAsync() 时,我收到一个异常。如果我更改查询内容,则在引发异常之前的重复计数会有所不同。这向我表明它在客户端配置中需要做一些事情!
2018-11-07 09:57:59.418 错误 20672 --- [n-driver-loop-2] oatgdHandler$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] at 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。
解决方案
将connectionPool.maxContentLength
驱动程序和maxContentLength
Gremlin Server 中的值增加到 65536 以上。理想情况下,客户端和服务器上的两种大小应该匹配,但我认为不必如此。
我假设您正在根据这个问题向服务器提交一个非常大的脚本。小心点。大型脚本,尤其是那些未参数化的脚本,可能会导致应用程序行为中出现不同的问题。
推荐阅读
- python - 将单个数组维度写入 Excel 工作表
- angular - Tinymce Angular 2 响应式文件管理器
- selenium - 删除“TooLongFrameException”限制 (http)
- java - 如何向具体用户发送 websocket 消息?
- ionic3 - Ionic image picker plugin, showing image not working
- sql-server - SQL 查询中的变量
- r - 更新数据框
- java - 测试API时如何避免代码重复
- c++ - 在 Linux 上构建 c++ 包时 autogen.sh 的工作是什么
- python - Python3,如果两个变量具有相同的值,那么它们是否具有相同的地址?