Slow Synchronization

D

dilipn123

Greetings!


I have developed a.NET CF app for our sales team which uses SQL Server
CE Merge Replication to communicate with the ERP database. The problem
is that our salesteam complain that at times the synchronization is
very slow takes more than 20-30 minutes to synchronize data. The size
of the .sdf file on the device is between 3-5MB. Sometimes, the
synchronization speed is okay. How can I prevent this infrequent delays

in synchronization? Usually, they say that the first time when they do
a synchronize via GPRS, it takes sometimes more than an hour. First
time, I agree it will take time because it will replicate new data like

customers,items, combinations,prices etc. from the server to the
device.


I gave them a tip that first time you do it via network using Active
Sync, but this is not feasible to some salesperson since they work in
upcountry and dont have network. I think the delay is because of GPRS
connectivity. Is there any other alternative like I change my approach
of replication say from merge to RDA or should I go for some SOA
approach using webservices etc? Or any other technique like using
Outlook to send the data from ppc? Any suggestions welcome.


Thanks in advance for your time.
Regards,
Dilip
 
L

Lonifasiko

Hi Dilip,

I was few days ago wondering if the synchronization with Merge
Replication would be very slow in case of GPRS and WIFI (only
ocasionally).

I must start next week to develop a .NET CF application targeted to
health world. After reading many articles about differences between RDA
and Merge Replication, my choose was the second one (very easy to
implement, little code to write), but now, after reading your post I'm
a little bit frightened about the synchronization time. I've done dummy
applications that get synchronized with a server via GPRS and using
Merge Replication, but there was very little data on the databases.

How many tables do you synchronize first time? For me 20-30
synchronization minutes would be unthinkable, really dangerous, because
I can put patient's life at risk.

I, like you, need advice on synchronization (RDA Vs. Merge
Replication).

Are you synchronizing all tables, all fields? I suppose you know, but
this behaviour can be changed in Publication Properties on SQL Server.
However, row and column filtering is not very clear and I'm quite lost
on those issues.
I need a course or good manual on synchronizing PDAs with SQL Server
using Merge Replication in an optimum way. Best practices and so on. Or
some advice on using the alternative RDA.

Regards and thanks for hearing my problem. Tell me if you solve it
yourself please.
 
D

dilipn123

Hi Lonifasiko,

As I said, sometimes the sycnhronization slows down. Actually during
the first phase of our project, everything went smooth and fine. I had
been with our salesteam in different areas across the country and
tested the app and there was not much speed variations.

Actually there are many factors for the ocassional speed variation
like:
1. Geographical Factors - location where you are doing the sync from,
up country, town,city etc.
2. Network Signal of your Mobile ISP.
3. Company ISP whether they have a dedicated line for data and voice
respectively.

In my case, I'm not sure if point 2 and 3 would be causing the issues.
I will be soon checking on that. Would be interested to know if anyone
else resolved such type of problems by contacting their ISP's?

Coming back to replication, I chose merge replication coz easy to setup
and less code. you are right. The application in my case is a Mobile
SalesForce Automation, so I have around 20 tables and daily new stock
is added, sometimes the sync happens within 3-4 mins other times it
delays. I would be very soon testing the RDA one, RDA is good but you
have to do some extra coding which is not required by Merge, but I
believe you have the control. Other option is via XML using
webservices, this is good option if you have a small db say anywhere
between 1-2MB, mine is around 4MB so I prefer Replication way rather
than XML, In your case, i believe the data would be less, if yes, you
can experiment between XML webservices and Merge Replication first. I
think in mobile deployments, you get to come to know about issues only
after a while it has been implemented and performance issues are the
biggest issues for which you will have to troubleshoot many factors as
I said above.

Filtering is not that difficult to setup, you can just go to the
Publication Properties and select the columns you want, for the rows,
you can select the tables and then define the relationship i.e. join
conditions in the below box and can add conditional where clauses, in
my case I use the HOST_NAME() and then filter the data for each
salesman. you can read the Books Online for more info on Replication
and also the SQL CE Books Online. Another very good place is,
microsoft.public.sqlserver.ce newsgroup which has some very good
postings on replication.

Good luck

Thanks and Regards,
Dilip
 
L

Lonifasiko

Hi Dilip,

First of all, thanks a lot for your deep explanation.

In my case, the initial database will not be very big, but I'm sure it
will grow up quickly.
I like your idea of filtering data for each salesperson, each patient
in my case. I will have to do some research on this Replication issues.


I don't understand what you mean by filtering by HOST_NAME(). Could
you explain a little bit more?

I would be very glad if you could post your experience with RDA
technology after using it?

I know that RDA lets you pull from server what you want (select * from
X where Y = 'B'), but if you want to download many tables (in my case
more or less 30-40), do you have to pull 30-40 different selects? If
Merge Replication lets you specify these kind of conditional selects,
my choice will be to continue with Merge Replication.

Is there such an improvement using RDA instead of MR as experts say?

I hope to here you soon. Regards.
 
A

Arun

Dilip, Initial Merge Replication sync will take time with GPRS, you can
try RDA, but I advice you not to try with Web Service as it will pain
you.
I feel RDA is better than Web Services to choose between and again you
need to code extra in RDA.

Cheers,
Arun.
www.innasite.com
 

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