[horde] Active Sync - new calnedar entry
Michael J Rubinsky
mrubinsk at horde.org
Sat Jul 30 18:25:44 UTC 2011
Quoting Martin Hochreiter <linuxbox at wavenet.at>:
>> Ok. Since you are receiving the initial calendar entries
>> successfully, it's not the PHP timezone bug. The bad news is, then,
>> I have no idea what is going on for you. This works perfectly here
>> except for some other bugs (see below) on numerous iOS and Android
>> devices. You are going to have to figure out why the history system
>> is not reporting the ADD event in your calendar.
>>
>> There *are* a number of Android client bugs that I've uncovered
>> though. One particularly nasty one causes multiple, duplicate, SYNC
>> requests to be sent at the same time, with the same synckey. This,
>> obviously, screws up lots of things server side. There is also a
>> similar issue, though not as nasty, with Android's PING requests
>> sending the same collection 4 or 5 times. I've verified both of
>> these behaviours on an Exchange 2003 server, so it's not Horde's
>> code. I'm investigating work arounds for this server side, but
>> since your log entry only shows a single GETITEMESTIMATE request, I
>> doubt this is your issue.
>>
> It is a Windows Mobile 6.5 client ... these effects are from an
> update but I dont belive on the active-sync side, as I tried the
> former versions. Maybe I have to search in kronolith's area.
Ok. I don't have access to a WinMobile device. I'll have to hunt
around either for someone that has one that is willing to let me use
for testing, or a not-too-horrible virtual simulator.
> How is a appointment flaged or in what table is a hint that this
> appointment is not synced yet?
The short, simplified version is: We track the last time that a
device/user account sent and successfully processed a SYNC request
(this is tied to the synckey). During PING/SYNC/GETITEMESTIMATE
requests, we poll the Horde_History system for any changes (additions,
changes, deletions) since the last sync timestamp in the collection we
are interested in. The horde_histories table should contain an entry
for the new event that you have added (or changed, or deleted etc...),
and the timestamp for that action should be *after* the most recent
last sync timestamp. The synckey should only ever by incremented
after a successful SYNC request has been dealt with, and this new
synckey has a relationship to the timestamp of the just completed SYNC.
You can see the timestamps that activesync is using to poll history by
looking at the getChanges log entries in your log. IIRC, the first
timestamp is the lower limit to search after. I don't have the code
available to look at right now, but IIRC the synckey data, such as the
last sync timestamp, is stored in the horde_activesync_state table.
--
mike
The Horde Project (www.horde.org)
mrubinsk at horde.org
More information about the horde
mailing list