[horde] activesync workflow
Michael J Rubinsky
mrubinsk at horde.org
Thu Sep 17 15:47:31 UTC 2015
Quoting cheese at nosuchhost.net:
> hi
>
> i would need some clarification how activesync works. i assume:
>
> * activesync is stateless, there works almost "out of the box"
> behind a loadbalancer.
The connections are stateless. There is state, but it's maintained via
synckeys that are transmitted withing the wbxml data itself. In horde,
this device state is stored in the database backend.
> * activesync keeps connections to the mobile device and outlook 2013
> for long timeranges. there are two parameters:
>
> connectiontimeout=600
> timeout=4000
>
> timeout on apache needs to be larger than
> $conf[activesync][ping][heartbeatmax]
At least this long. Best to be longer, since the connection may need a
bit longer if changes are detected at the very end of the hearbeat.
> apache's timeout means that if no data was sent for 4000 seconds the
> connection is closed. if everything is OK, than this limit should
> never be reached, as we honour hearthbeats?
Sounds correct. I should note that 600 is a fairly short time for
heartbeat. The longer the better, as far as clients are concerned.
Short heartbeats will use considerably more battery and bandwidth.
> if i have two hordes behind a loadbalancer, how would i sanely
> update the hordes without having connections disconnected? some
> devices are quite picky with disruptions.
There is not much you can do about this. It's always safest to disable
Horde logins when updating. From the client it will just look like
your network is unreachable. Ideally, there are some generic WBXML
responses with an various status codes we could send to tell the
client to just try again later. The problem is, the status codes are
different depending on the EAS version in use, the type of request
being processed etc... so we end up having to parse a good bit of the
request anyway...
> * how long will activesync keep imap-sessions to the backend systems?
ActiveSync doesn't keep any persistent imap sessions opened. It
connects, checks what it needs to, and disconnects. Internally, the
imap client may keep the connection opened between checks during the
same PING request, but re-connection should happen transparently.
> would horde reconnect gracefully if some connection is broken (again
> because of updates on the backend imap-systems), or would it expose
> that disconnections to its clients?
The behavior is different depending on what type of request is being
attempted. If the IMAP backend is unexpectedly unavailable during a
PING or looping SYNC, the ActiveSync code logs this as an error, but
simply returns an empty change set to the client. If it's during
something like an ITEMOPERATIONS request or a SYNC request that is
requesting message details, this will return an error to the client.
Some clients will display this to the user, others will simply
indicate some issue.
--
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5751 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20150917/de375ab3/attachment.bin>
More information about the horde
mailing list