Daniel Nashed 24 June 2010 23:32:22
Update 29.06.2010, 9:30
The information described here is not the final solution. See this blog entry for the current info http://blog.nashcom.de/nashcomblog.nsf/dx/update-on-ios-4.0-traveler-timing.htm
You should not use this change any more but instead have the timing on the iOS4 device changed to the previous behavior
See this brand new Apple technote for details --> http://support.apple.com/kb/TS3398
When we first tested the final version of the new iOS4 with Traveler I ran into some issues.
After you install the new OS you have to do a complete resync because the data synced over ActiveSync is not backed up in your iTunes backup (works as designed and makes sense).
My first resync ran into a lot of timeouts and I was wondering what was going wrong.
It turned out that different iPhone OS releases have different sync timeout values.
There is some documentation how to tune for older OS versions in the 8.5.1 Traveler Admin guide.
But those settings need to be changed again for iOS4.
OS2 has 1 minute timeout
OS3 has 4 minutes timeout
OS4 has 30 seconds timeout
In Traveler 8.5.1 there is only one timeout setting that needs to fit all devices . In Traveler 8.5.2 (current beta already has it) there is a setting for each iPhone OS that will be correct once 8.5.2 ships.
There is still testing going on with the new iOS4 with 8.5.1 and 8.5.2. IBM is working on a TN to clarify some details about those settings for 8.5.1
Some details in the current beta about how to configure those timeouts might change in 8.5.2. So some detail I am posting about might be obsolete or already out of the box tuned in the right way.
So what you need to change in 8.5.2 (in case you are a beta user) is the following in data/traveler/cfg/NTSConfig.xml
you clone the existing line for AS_REQUEST_TIME_LIMIT_APPLE_3X devices and change the setting to 20 seconds like this
<PROPERTY NAME="AS_REQUEST_TIME_LIMIT_APPLE_4X" VALUE="20"/>
This will only change the timeout values for the new iOS4 and this will be set already when 8.5.2 ships.
In 8.5.1 you can only tune the value for all devices. So you have to take the smallest interval of all releases and have to change the value like this
<PROPERTY NAME="AS_REQUEST_TIME_LIMIT" VALUE="20"/>
For 8.5.1 you need to change another parameter to the same value as described in the admin help in the data/servlet.properties file.
This setting has been already autotuned in 8.5.2 and has been removed. So you don't need it in 8.5.2.
But for 8.5.1 you should still set the value according to documentation. The value is in milliseconds!
There is a second parameter you have to set. This parameter and value is the same in 8.5.1 and 8.5.2 but it might be removed later and could potentially be autotuned.
For now you have to set the parameter to the following value
<PROPERTY NAME="SYNCML_SHORTCIRCUIT_TIME_LIMIT" VALUE="15"/>
After changing the configuration you need to restart the Traveler server task and also the HTTP task in case you changed the servlet properties (restart task traveler & restart task http)
This should give you better response time for your iOS4 devices and it should still work fine with your OS 3.x devices.
There might more HTTP(S) requests for OS 3.x devices but this is still less problematic than a wrong timeout value for iOS4.
I hope this info is helpful. It's the current state of the info we got from IBM about the changed needed.
As soon we get an official TN I will post an update.
- Comments