[sync-services-developers] Record Pushing Issue

Brent Truex btruex at markspace.com
Tue Nov 22 13:26:46 PST 2005


It looks like the behavior of  
clientWantsToPushAllRecordsForEntityNames changed at some point. Once  
this is called in 10.4.3, the SyncEngine takes what the client pushes  
as the total collection of records for an entity, even if the client  
explicitly refused some records from SyncServices in a previous  
session, or hasn't seen the records at all yet.

Jud, what happens in your code in the case where a phone number (or  
other related record) is added to the Mac just before a slow sync?

- Brent

On Nov 22, 2005, at 3:32 PM, Brian M. Criscuolo wrote:

> That's fine if you're in sync. How about if a slow sync occurs?
>
> The case I have is this:
>
> - Contacts in sync.
> - Add phone number to record on the desktop
> - Force a slow sync by calling  
> clientWantsToPushAllRecordsForEntityNames
> - Push record to desktop
>
> After the mingle, the desktop record does not have the phone number  
> we just added.
>
> In what you're doing (I do the same thing for some cases) as long  
> as you have already processed that address/phone/etc, you're good.  
> But if it is new, it won't be staying around after your sync.
>
> Of course, I could be doing something wrong and this is a non-issue.
>
> b
>
> On Nov 22, 2005, at 12:00 PM, Jud Spencer wrote:
>
>> On 11/22/05 8:07:02 AM, "Brian M. Criscuolo"  
>> <bcriscuolo at markspace.com>
>> wrote:
>>
>>> Is it because I'm accepting all addresses when pulling the original
>>> record but only providing a subset of them when pushing a change
>>> back, as outlined above? Did Apple change the behavior of:
>>> "SyncSession should not issue a "clear" for Q." but not document it?
>>>
>>> There were numerous Sync Services changes in 10.4.3 but none were
>>> described in any detail. We need some detail about them, as shipping
>>> code behaves differently.
>>>
>>> Does anyone have any thoughts or suggestions to this perplexing  
>>> issue?
>>
>> I'm new to the sync services game. I essentially started with  
>> 10.4.3. I have
>> found that in a case where you are pushing a subset of entities  
>> related to a
>> parent, that you need to provide the ID's of all the sub-entities  
>> in the
>> parent, not just the ones that are being pushed. What we are doing  
>> in our
>> app is keeping track of the entities when we have a schema  
>> incompatibility,
>> and then pushing them on any update. For example, our app only  
>> supports two
>> addresses. When we pull a record with more than two, we keep track  
>> of the
>> ids of the ones that we accepted but didn't write to our database.  
>> When we
>> later push the record back to the truth, we write the id's of the  
>> addresses
>> that we write as well as the ids of the ones that we don't write  
>> into the
>> street addresses property in .Contact.
>>
>> This works for us.
>>
>> Jud
>>
>>
>> _______________________________________________
>> sync-services-developers mailing list
>> sync-services-developers at lists.markspace.com
>> http://lists.markspace.com/mailman/listinfo/sync-services-developers
>
>
> ********************
> Brian M. Criscuolo
> Senior Software Engineer
> Mark/Space, Inc.
> bcriscuolo at markspace.com
> <http://www.markspace.com>
>
>
>
> _______________________________________________
> sync-services-developers mailing list
> sync-services-developers at lists.markspace.com
> http://lists.markspace.com/mailman/listinfo/sync-services-developers

---------------------------------
Brent Truex
btruex at markspace.com





More information about the sync-services-developers mailing list