I am doing Merge Replication using Web Synchronization. On Subscriber end, there is SQL Express 2012 on Windows 10 Pro. On publisher end, there is SQL Server 2016 on Windows Server 2016. Web Synchronization is on Windows Server 2016 Hosted on IIS 10. Replication is working perfectly fine as long as the data is not large. Actually I have applied filters on article to replicate data according to my need. So when I applies a filter that pulls data from replication in less than 3000 chunks, it works perfectly. But as soon as it reaches 3100, I get error. On Subscriber end the error is:
The format of a message during Web synchronization was invalid. Ensure that replication components are properly configured at the Web server.
On the IIS Server, where Web Synchronization is configured; the error is:
CHttpListener, 5732, 2756, S1, ERROR: ErrNo = 0x80070715, ErrSrc = , ErrType = 10, ErrStr = The process could not write the response message due to OS error 995. CHttpListener, 5732, 1272, S1, ERROR: ErrNo = 0x80070715, ErrSrc = , ErrType = 10, ErrStr = The processing of the response message failed. CReplicationListenerWorker, 5732, 334, S1, ERROR: Failure generating response message, hr = 0x80070715.
It happens exactly when my replication chunks reaches 3100. And it takes around 20 seconds to reach 3100 chunks. So timeout is not an issue I believe.
I checked the file sizes in Snapshot folder. They are max 10 MB large collectively. But the data records to insert are in thousands, or some millions. I have tried setting WebSyncMaxXmlSize to 2000000 following this post. I have also tried disabling TCP send/receive Payloads following this post. But all in vain.
I am using MergePullSubscription, have tried setting DownloadGenerationsPerBatch from 10 to 100. It also didn't work.
Please let me know with your valuable advises. What else I should try? Or if anyone faced the same issue, what is the proper solution to it?