Details
-
Type:
New Feature
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 3.0
-
Component/s: Push Library
-
Labels:None
-
Environment:ICEpush, mobile network
Description
Different network environments have different bandwidth and latency characteristics. Recent testing has shown that the reconnect latency on a 3G network can vary from 1.5s - 6s. To account for this, the reconnect timeout should be adaptive.
Issue Links
- blocks
-
MOBI-177
Duplicate Cloud Push and Ajax Push notifications
-
- Closed
-
Activity
| Status | Resolved [ 5 ] | Closed [ 6 ] |
| Salesforce Case | [] | |
| Fix Version/s | 3.0.1 [ 10311 ] |
| Salesforce Case | [] | |
| Security | Private [ 10001 ] |
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28278 | Mon Mar 12 11:04:42 MDT 2012 | ted.goddard | using FINE logging for anticipated cloud push ( |
| Files Changed | ||||
MODIFY
/icepush/trunk/icepush/core/src/main/java/org/icepush/BlockingConnectionServer.java
|
| Salesforce Case | [] | |
| Security | Private [ 10001 ] |
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28261 | Fri Mar 09 15:38:45 MST 2012 | ted.goddard | updated to icepush.jar revision 28258 ( |
| Files Changed | ||||
MODIFY
/icemobile/trunk/icemobile/lib/icepush.jar
|
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28258 | Fri Mar 09 15:14:35 MST 2012 | ted.goddard | modified adaptive reconnect algorithm with more inertia ( |
| Files Changed | ||||
MODIFY
/icepush/trunk/icepush/core/src/main/java/org/icepush/BlockingConnectionServer.java
|
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28236 | Thu Mar 08 14:37:58 MST 2012 | ted.goddard | updated to icepush.jar revision 28235 ( |
| Files Changed | ||||
MODIFY
/icemobile/trunk/icemobile/lib/icepush.jar
|
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28212 | Wed Mar 07 13:38:02 MST 2012 | mircea.toma | |
| Files Changed | ||||
MODIFY
/icemobile/trunk/icemobile/lib/icepush.jar
|
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28211 | Wed Mar 07 13:37:41 MST 2012 | mircea.toma | |
| Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/lib/icepush.jar
|
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #28210 | Wed Mar 07 13:32:20 MST 2012 | mircea.toma | |
| Files Changed | ||||
MODIFY
/icepush/trunk/icepush/core/src/main/java/org/icepush/BlockingConnectionServer.java
|
| Salesforce Case | [] | |
| Fix Version/s | EE 3.0.0 [ 10322 ] |
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Mircea Toma [ mircea.toma ] |

Unfortunately, real world testing showed the adaptive timeout to be far to adaptive. It was not unusual to see fairly long strings of low latency values (which the algorithm quickly converged on) followed by a substantially higher latency. The algorithm has been modified as follows to never adjust up or down by too much, and to always give much more weight to the current value:
responseDelay = Math.max(responseDelay,
(connectionRecreationTimeout * 4) / 5);
responseDelay = Math.min(responseDelay,
(connectionRecreationTimeout * 3) / 2);
responseDelay = Math.max(responseDelay, 500);
connectionRecreationTimeout =
(responseDelay + (connectionRecreationTimeout * 4)) / 5;