首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SymmetricDS遇到illegalStateException

SymmetricDS遇到illegalStateException
EN

Stack Overflow用户
提问于 2018-01-03 20:46:03
回答 1查看 207关注 0票数 1

设置

SymmetricDS版本为3.9.1 (也尝试了3.9.0)

安装程序从postgres 9.5.3到postgres 9.5.3

Windows 10 pc (客户端节点)到windows server 2012 (主节点)。

客户端是我的工作pc (本地),windows服务器在国家的另一边。客户端的注册url和主节点的同步url使用dns解析器获取服务器的ip。

客户端通过注册成功地连接到服务器,并在客户端上创建适当的触发器。此错误发生在尝试同步时。

在客户端获取此消息:

代码语言:javascript
复制
PushService - We expected but did not receive an ack for batch liveServer-2.
PushService - This could be because the batch is corrupt. Removing the batch 
from staging

服务器上的响应是:

代码语言:javascript
复制
DataLoaderService - Failed while parsing batch
java.lang.IllegalStateException: Invalid batch data was received: ▼∩┐ 
∩┐╜TK∩┐╜∩┐╜6►∩┐╜∩┐╜j∩┐╜∩┐╜¶g∩┐╜c∩┐╜☼▲∩┐╜-2x↕
R♀∩┐╜ S∩┐╜∩┐╜J∩┐╜♣xbK∩┐╜$&C~}Z~∩┐╜♀∩┐╜nr∩┐╜!Pr∩┐╜∩┐╜∩┐╜∩┐╜jY∩┐╜Z╚é∩┐╜♣
    at org.jumpmind.symmetric.io.stage.SimpleStagingDataWriter.process(SimpleStagingDataWriter.java:194)
    at org.jumpmind.symmetric.service.impl.DataLoaderService.loadDataFromTransport(DataLoaderService.java:568)
    at org.jumpmind.symmetric.service.impl.DataLoaderService.loadDataFromPush(DataLoaderService.java:398)
    at org.jumpmind.symmetric.web.PushUriHandler.push(PushUriHandler.java:83)
    at org.jumpmind.symmetric.web.PushUriHandler.handle(PushUriHandler.java:68)
    at org.jumpmind.symmetric.web.SymmetricServlet.service(SymmetricServlet.java:114)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    at org.jumpmind.symmetric.web.HttpMethodFilter.doFilter(HttpMethodFilter.java:62)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:561)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:334)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:104)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:243)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:679)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:597)
    at java.lang.Thread.run(Unknown Source)

我如何解决这个问题?我能做错什么?

我在同一网络上使用了windows 10 pc (客户端节点)与Windows 2012虚拟机(主节点)之间的相同设置,它工作得很好。此错误似乎只在我试图连接到以我的pc为客户端的远程服务器时才发生。

看到这些奇怪的字符,我觉得这是一个编码问题,所以我尝试将该选项添加到db.url的末尾以及引擎文件中的#db.read.strings.as.bytes=true标记中。

我还尝试从以前的备份外壳重新导入客户端数据库,它已损坏。数据库的旧版本上的结果相同。

如果我不得不猜测,也许这条路线上有什么东西是在加密或混淆数据包,从而导致错误的数据。

EN

回答 1

Stack Overflow用户

发布于 2018-01-03 21:22:21

可能发生的一件事是,位于节点之间的网络设备正在剥离或修改HTTP报头。当数据通过线路时,SymmetricDS gzip对其进行压缩,并设置header 内容-编码: gzip。如果内容编码头在到达另一边时未设置为gzip,则会像您所看到的那样获得垃圾输出。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48084875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档