[sync] Trouble keeping SyncML in sync with IMAP store

Jan Schneider jan at horde.org
Mon Sep 8 07:22:45 UTC 2008


Zitat von Gunnar Wrobel <p at rdus.de>:

> Jan Schneider <jan <at> horde.org> writes:
>
>>
>> Zitat von Jan Christoph Ebersbach <ebersbach <at> univention.de>:
>>
>> > Good morning,
>> >
>> > I'm experiencing some trouble keeping a mobile device in sync  
>> with data that
>> > is stored in an IMAP folder. I.e. creating an event with  
>> Kontact-Calendar and
>> > trying to sync this event with my mobile device causes SyncML to  
>> think that
>> > there is no new event in the IMAP folder.
>> >
>> > I tracked the problem down to a missing entry in the horde_histories table
>> > which is not updated by the SyncML implementation at the moment.  
>> Btw, when I
>> > open the calendar in kronolith the missing entry is added automatically.
>> >
>> > I wrote a small patch to work around this problem by syncing the  
>> IMAP folder
>> > every time a SyncML-sync is performed. So far there is still a  
>> problem with
>> > syncing the IMAP folder this way because the changes are not  
>> included in the
>> > current but the next SyncML sync.
>> >
>> > Do you have any suggestions solving this problem in a better way?
>>
>> This is definitely not the correct way. The history entries have to be
>> created directly in the drivers. In some cases this already happens
>> either outside the drivers or in the driver parent class. Where this
>> is not the case, it has to happen in the Kolab drivers, just like we
>> do in the other drivers already.
>
> I think Jan Christoph did refer to the problem we already discussed  
> briefly on
> the dev mailing list (http://thread.gmane.org/gmane.comp.horde.devel/16954).
>
> You seem to refer to the SQL driver in your answer as this storage  
> system only
> allows for Horde as a client. If a storage backend allows modifications from
> external clients this is a different story though. The Horde history  
> system will
> not catch external modifications at the moment.

No, this has nothing to do with the SQL driver. It's just about where  
certain code belongs.

> I think the submitted patch is still a little bit too direct but in  
> principle it
> goes into the right direction. I believe that we need to fix the  
> listBy() call
> with a synchronization method so that the backend can check for external
> modifications.

This still doesn't belong in the API. If some Horde backends require a  
history update before the actual synchronization, we can initiate such  
an update from SyncML_Backend_Horde. Though I can't imagine how this  
should be reliably working if it doesn't happen right when the data  
changes.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the sync mailing list