我们最近正在开展一个项目,需要使用带有动态数据屏蔽服务的 Tableau。
一切正常,直到我们尝试通过 ddm 代理提取一个包含约 20000000 条记录(约 10 G)数据的大表时,连接将自动重置,并且 ddm 日志将显示:
[DDM for PostgreSQL] ERROR - RoutePeer-2.serverData: Failed with:
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.Write0(Native Method)
at sun.nio.ch.SocketDispatcherImpl.Write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:51)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
at com.activebase.c.b.c.write(c.java:126)
at com.activebase.c.b.a.b.write(b.java:385)
at com.activebase.router.a.a(a.java:421)
at com.activebase.router.a.serverData(a.java:286) at
com.activebase.protocol.AbstractProtocol.dispatchServerDataEvent(AbstractProtocol.java:126)
com.activebase.router.AbstractProtocol.serverData(AbstractProtocolAdapter.java:144)
at com.activebase.dnr.DNRProtocolAdapter.serverData(DNRProtocolAdapter.java:107)........
但是,如果我们切换回直接数据库连接而不使用 ddm,则一切正常。那么是因为 DDM 无法传递大量记录(例如 10 G 的数据)吗?或者如果 DDM 确实支持传递大量数据,我们可以进行哪些配置来解决这个问题?