ICEpush
  1. ICEpush
  2. PUSH-375

heartbeat updates returning as closed/duplicate after navigation

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA_P03
    • Fix Version/s: EE-3.3.0.GA_P04
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush EE
    • Assignee Priority:
      P1
    • Support Case References:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      Set the com.icesoft.icepush.maxHeartbeatInterval so that it does not go over 20 seconds:
          <context-param>
              <param-name>com.icesoft.icepush.maxHeartbeatInterval</param-name>
              <param-value>15000</param-value>
          </context-param>
      Show
      Set the com.icesoft.icepush.maxHeartbeatInterval so that it does not go over 20 seconds:     <context-param>         <param-name>com.icesoft.icepush.maxHeartbeatInterval</param-name>         <param-value>15000</param-value>     </context-param>

      Description

      When the adaptive heartbeat goes over 20 seconds and application navigation occurs, the next heartbeat updates return with:
      X-connection-reason: duplicate
      X-connection: closed

      This is causing the connection to fail. After 3 retries if the connection is not reestablished the NCI pop is shown.

      This seems to only happen once the heartbeat interval is over 20 seconds. If the navigation happens before it gets to 20 seconds, the duplicate updates are not seen.

        Activity

        Arran Mccullough created issue -
        Hide
        Arran Mccullough added a comment -

        Attached test case that shows this issue.

        Steps:

        • Loaded the first page (welcomeICEfaces.jsf) of the app and opened a dev console on the Network tab to monitor the heartbeat.
        • Let the page sit idle while the heartbeat interval went above 20 seconds.
        • After it was over 20 seconds, I clicked a button which navigated to the other page.
        • The first heartbeat interval would return with the X-connection-reason set to ‘duplicate’
        • The next ones would also return the same until the connection was lost (3 retries).
        • In some cases I did see it recover after the second re-connect. Also in some cases I didn't get an NCI but the console reported the connection as being lost and bridge was shut down.
        Show
        Arran Mccullough added a comment - Attached test case that shows this issue. Steps: Loaded the first page (welcomeICEfaces.jsf) of the app and opened a dev console on the Network tab to monitor the heartbeat. Let the page sit idle while the heartbeat interval went above 20 seconds. After it was over 20 seconds, I clicked a button which navigated to the other page. The first heartbeat interval would return with the X-connection-reason set to ‘duplicate’ The next ones would also return the same until the connection was lost (3 retries). In some cases I did see it recover after the second re-connect. Also in some cases I didn't get an NCI but the console reported the connection as being lost and bridge was shut down.
        Arran Mccullough made changes -
        Field Original Value New Value
        Attachment Case13606Example.war [ 21983 ]
        Attachment Case13606Example.zip [ 21984 ]
        Ken Fyten made changes -
        Assignee Jack Van Ooststroom [ jack.van.ooststroom ]
        Fix Version/s EE-3.3.0.GA_P04 [ 12271 ]
        Hide
        Jack Van Ooststroom added a comment -

        Assigning to Mircea

        Show
        Jack Van Ooststroom added a comment - Assigning to Mircea
        Jack Van Ooststroom made changes -
        Assignee Jack Van Ooststroom [ jack.van.ooststroom ] Mircea Toma [ mircea.toma ]
        Ken Fyten made changes -
        Assignee Priority P1 [ 10010 ]
        Hide
        Mircea Toma added a comment -

        Modified ICEpush server side code to propagate the currently picked heartbeat timeout value to the reloaded or navigated to page.

        Show
        Mircea Toma added a comment - Modified ICEpush server side code to propagate the currently picked heartbeat timeout value to the reloaded or navigated to page.
        Hide
        Mircea Toma added a comment -

        This was already solved for ICEfaces4 by ICE-9689 fixes.

        Show
        Mircea Toma added a comment - This was already solved for ICEfaces4 by ICE-9689 fixes.
        Ken Fyten made changes -
        Affects Version/s EE-3.3.0.GA_P04 [ 12271 ]
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Mircea Toma made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #46242 Wed Nov 18 17:30:24 MST 2015 mircea.toma PUSH-375 Modified bridge to share the blocking connection sequence number and also preserve it in between page reloads.
        Files Changed
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/javascript/application.js
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/javascript/connection.async.js
        Hide
        Mircea Toma added a comment -

        Modified bridge to share the blocking connection sequence number and also preserve it in between page reloads. This ensures that the heartbeat interval will not drop on page reload or blocking connection switching to a different window.

        Show
        Mircea Toma added a comment - Modified bridge to share the blocking connection sequence number and also preserve it in between page reloads. This ensures that the heartbeat interval will not drop on page reload or blocking connection switching to a different window.
        Mircea Toma made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: