MS Sync Framework & SQL Server 2000 & 250k+ records


G

Granby

The databases being synchronised had thirteen tables in total. Adding 5000
rows of data to each table and synchronising caused no problems.

However, when the live data was inserted into the sync server database, an
unhandled exception occurred (see below for details). Some of the tables
contained very few records, but the largest contained 250,000+ records.

We where unable to complete a Sync without receiving the error below, we had
to work around the problem by only inserting 5k records per table, then
Syncing until all data was the same on both side (was a lot of work)...

The server is running Windows Serer 2003, with SQL 2000, while the Client is
running Server 2003 with SQL 2005; the server solution has been created using
the Sync Designer (VB) while the client has been created from custom code
(C#).

Smaller record sets (say 5k rows per table) had no problems syncing, it was
only once we hit 250k+ records we received the error, the size of the data is
*around* 75Mb

The client application was developed by a third party, while the Server side
was developed by ourselves and we both had internal client and server
applications to test with.

When we tested over the LAN internally we tested with 250k + records and got
mixed results, sometimes it would Sync other times we would get the error.
We attempted to increase the timeouts in IIS and also in the app.config to
no avail.
When we started to do testing over the WCF service we received the error all
the time with no successful syncs at all, just receiving the error as below.

The time between the errors was also quite different, sometimes it would
occur within 2 min of the sync, next time it was 10, 15 or back to 2 min, so
there was no pattern with the length between the errors.

Has anyone seen this before or know why this could be?

Thanks in advance.

ERROR:

System.ServiceModel.CommunicationException: An error occurred while
receiving the HTTP response to
https://secure.granbymarketing.com/...ervicelibrary_sak2009.providersyncservice.svc.
This could be due to the service endpoint binding not using the HTTP
protocol. This could also be due to an HTTP request context being aborted by
the server (possibly due to the service shutting down). See server logs for
more details. ---> System.Net.WebException: The underlying connection was
closed: An unexpected error occurred on a receive. --->
System.IO.IOException: Unable to read data from the transport connection: An
existing connection was forcibly closed by the remote host. --->
System.Net.Sockets.SocketException: An existing connection was forcibly
closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32
size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset,
Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset,
Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset,
Int32 count)
at System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32
offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32
offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32
offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean
userRetrievedStream, Boolean probeRead)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---

Server stack trace:
at
System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException
webException, HttpWebRequest request, HttpAbortReason abortReason)
at
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message,
TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message
message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action,
Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs,
TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action,
Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage
message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)
at
Akqa.Sainsburys.ActiveKids.Cache.Remote.GranbyServiceReference.IProviderSyncContract.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
at
Akqa.Sainsburys.ActiveKids.Cache.Remote.GranbyServiceReference.ProviderSyncContractClient.GetChanges(SyncGroupMetadata
groupMetadata, SyncSession syncSession) in C:\Projects\Sainsburys -
Trunk\applications\ActiveKids.Cache\source\Akqa.Sainsburys.ActiveKids.Cache.Remote\Service References\GranbyServiceReference\Reference.cs:line 83
at
Akqa.Sainsburys.ActiveKids.Cache.Remote.AkServerSyncProviderProxy.GetChanges(SyncGroupMetadata
groupMetadata, SyncSession syncSession) in C:\Projects\Sainsburys -
Trunk\applications\ActiveKids.Cache\source\Akqa.Sainsburys.ActiveKids.Cache.Remote\AkServerSyncProviderProxy.cs:line 52
at
Akqa.Sainsburys.ActiveKids.Cache.Entities.Sync.Server.AkServerSyncProvider.GetChanges(SyncGroupMetadata
groupMetadata, SyncSession syncSession) in C:\Projects\Sainsburys -
Trunk\applications\ActiveKids.Cache\source\Akqa.Sainsburys.ActiveKids.Cache.Entities\Sync\Server\AkServerSyncProvider.cs:line 53
at Microsoft.Synchronization.SyncAgent.DownloadChanges(SyncGroupMetadata
groupMetadata)
at Microsoft.Synchronization.SyncAgent.DataSynchronize()
at Microsoft.Synchronization.SyncAgent.Synchronize()
at
Akqa.Sainsburys.ActiveKids.Cache.Entities.Verification.SyncManager.Synchronize()
in C:\Projects\Sainsburys -
Trunk\applications\ActiveKids.Cache\source\Akqa.Sainsburys.ActiveKids.Cache.Entities\Verification\SyncManager.cs:line 81
at Akqa.Sainsburys.ActiveKids.Cache.Program.Main() in
C:\Projects\Sainsburys -
Trunk\applications\ActiveKids.Cache\source\Akqa.Sainsburys.ActiveKids.Cache\Program.cs:line 27
 
Ad

Advertisements


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top