[sync] [horde] Sync with Funambol
Paul Faure
paul.faure at agr.gc.ca
Thu Nov 6 14:24:12 UTC 2008
> > An example of a failed sync map entry (when I created a new contact on
> > the client and tried to sync it to the server):
> >
> > syncml_syncpartner = fol-T05PVFRBNDc2NTA2OmZhdXJlcA==
> > syncml_db = contacts
> > syncml_uid = paul
> > syncml_cuid =
> > 0000000080686E075BD4C7488AD4D1CFE7CA75700700AC094F4F121FB74DAB99B50F115983F900000132119F00005F1403857813194AACFA1F3F566A159400000188CBFD0000
> > syncml_suid = 3e37b9140457c0f37039de9227cb4915
> > syncml_timestamp = 0
>
> That's a huge client id. Why the heck does it generate such a long id?
> Anyway, one thing to check would be that there is no overflow
> somewhere. The columns once used to be smaller IIRC, so make sure that
> this is the complete client id and that it doesn't get truncated in
> the database.
About 6 months ago when I started syncing I had to increase the database
field to a varchar of 256. Im running Outlook which stores its contacts
in an exchange environment.
> > Also, I can't find a matching entry in turba_objects where object_uid =
> > 3e37b9140457c0f37039de9227cb4915.
>
> Yeah, UIDs look different anyway. I sill have no idea where this id is
> coming from. This rather looks like a contact ID.
My thought was that its a hash of an empty string or simple string.
> > How is the contact ID generated? And with a new contact, who (client or
> > server) is responsible to generate it.
>
> Both, the contact ID and the UID are generated by Horde when a contact
> is added from a client. Only the UID is used for synchronization, the
> ID shouldn't show up anywhere.
>
> > Im more than willing to debug this one myself, I just need a little bit
> > of background info.
> > In order to setup an LDAP front end to the Horde contact table, I had to
> > create a new field in the turba_objects table called "id" which is
> > simply a unique auto_inc 32 bit integer. OpenLDAP with a DB backend
> > requires this integer field as a unique entry instead of a varchar
> > unique field.
> > This could be the cause of my troubles.
>
> You didn't mention so far, or I missed that, that you are using LDAP.
> This might have some influence, though I can't think of one out of my
> head. But I don't understand from you discription anway, how your
> setup looks like.
My setup is simple.
Client (Outlook or iPhone) <-> Server (Horde) <-> DB (mysql)
I would imagine this is the most popular setup out there.
In order to make my contacts more accessible, I installed OpenLDAP with
the DB backend. This is a read only LDAP setup, so you can't modify
contacts or add them through LDAP. OpenLDAP simply uses the horde DB to
display the contacts.
Client (Outlook) <- Server (OpenLDAP) <- DB (mysql)
The one change I had to do to the horde env/setup is the addition of the
"id" column in the turba table. This is because the SQL backend for
OpenLDAP requires an INT as the unique key.
I implemented this setup about 6 months ago and it all worked fine until
the recent upgrade.
Could you point me in the direction of where in Horde the UID is
generated? I will add all kinds of debug output and track this one down.
Thanks for your help :)
Paul
More information about the sync
mailing list