The problem you have is that you have TEF files that have instructions within them. These say "Oh, you want this contact? Right, no probs, I'll just send you the entire account as well - as a contact doesn't stand alone". It then goes off and SyncServer knows that in order to have a contact, then you need the account, the address, all sub-entities, the attachments, opportunities etc. So, even though the original TEF may be very small (10Kb with 3-4 items) it is SyncServer that is simply taking these and using internal logic to ensure that the relevant entity from the ACCOUNT level all the way down is sent out to the remote.
Take for example the SQL:
UPDATE CONTACT SET USERFIELD1 = 'X' WHERE CONTACTID = 'MYID'
That runs just fine on the contact that exists. The problem is - it may not on the remote database. So, it's pointless sending an update when the row doesn't exist. But, subsequent transactions may rely on that data (as it's serialised). That's why SyncServer is smart enough to know not to do this (it'll send entire entities out for you automatically, especially where leads & marketing is concerned). It's built right into the exe.
Obviously, this is a problem for you now. By allowing access to CAMPAIGNTARGET, it's finding all the ones they relate to and sending those as well. You can watch it do this by viewing the QUE files it builds (watch it process a TEF, watch the QUE files build enormously, then it'll zip those into TEFs to go to the remotes.
As you know the date of when it started you really only have 3 choice. (a) let it run (b) Re-cut all remotes and just delete all tefs or (c) delete all tefs originating on this day/time and let it pickup from there. There is no magic button to this short of just deleting until you are done. You'll find you'll lose data (as data is also coming in at the same time and being processed/queued up). But, either which way may be quicker and simpler than (a).
|