[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