[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