ICEpush
  1. ICEpush
  2. PUSH-368

Improve LocalPushGroupManager's queue handling

    Details

      Description

      Improve LocalPushGroupManager's queue handling to make "... queue maximum size reached." messages less frequent under load while maintaining the same queue size.

        Activity

        Jack Van Ooststroom created issue -
        Jack Van Ooststroom made changes -
        Field Original Value New Value
        Assignee Jack Van Ooststroom [ jack.van.ooststroom ]
        Jack Van Ooststroom made changes -
        Fix Version/s 4.1 [ 11570 ]
        Fix Version/s EE-4.1.0.GA [ 12172 ]
        Fix Version/s EE-3.3.0.GA_P04 [ 12271 ]
        Jack Van Ooststroom made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #46004 Tue Sep 22 14:00:36 MDT 2015 jack.van.ooststroom Fixed JIRA PUSH-368 : Improve LocalPushGroupManager's queue handling
        Files Changed
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/LocalPushGroupManager.java
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/PushConfiguration.java
        Hide
        Jack Van Ooststroom added a comment -

        ICEfaces 4:

        Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
        Sending core/src/main/java/org/icepush/PushConfiguration.java
        Transmitting file data ..
        Committed revision 46004.

        Show
        Jack Van Ooststroom added a comment - ICEfaces 4: Sending core/src/main/java/org/icepush/LocalPushGroupManager.java Sending core/src/main/java/org/icepush/PushConfiguration.java Transmitting file data .. Committed revision 46004.
        Hide
        Jack Van Ooststroom added a comment -

        ICEfaces 3:

        Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
        Sending core/src/main/java/org/icepush/PushConfiguration.java
        Transmitting file data ..
        Committed revision 46010.

        Show
        Jack Van Ooststroom added a comment - ICEfaces 3: Sending core/src/main/java/org/icepush/LocalPushGroupManager.java Sending core/src/main/java/org/icepush/PushConfiguration.java Transmitting file data .. Committed revision 46010.
        Hide
        Jack Van Ooststroom added a comment - - edited

        Before a Notification or OutOfBandNotification is added to the notificationQueue it now checks to see if a similar Notification or OutOfBandNotification is not already contained in the notificationQueue. If not contained it is being added and if contained it is being ignored due to duplication. The Java Concurrency logic had to be expanded to deal with this. In addition the Notification, OutOfBandNotification, and PushConfiguration classes now override the equals(Object) and hashCode() methods to allow checking for duplications.

        Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - - edited Before a Notification or OutOfBandNotification is added to the notificationQueue it now checks to see if a similar Notification or OutOfBandNotification is not already contained in the notificationQueue . If not contained it is being added and if contained it is being ignored due to duplication. The Java Concurrency logic had to be expanded to deal with this. In addition the Notification , OutOfBandNotification , and PushConfiguration classes now override the equals(Object) and hashCode() methods to allow checking for duplications. Marking this one as FIXED.
        Jack Van Ooststroom made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Arran Mccullough made changes -
        Support Case References Support Case #13470 - https://icesoft.my.salesforce.com/5007000001GBRTQ
        Hide
        Jack Van Ooststroom added a comment -

        It seems possible that the Notification queue consumer thread can miss a Notification resulting it possibly in idle mode.

        Show
        Jack Van Ooststroom added a comment - It seems possible that the Notification queue consumer thread can miss a Notification resulting it possibly in idle mode.
        Jack Van Ooststroom made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Jack Van Ooststroom added a comment - - edited

        ICEfaces 3:

        Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 47625.

        Show
        Jack Van Ooststroom added a comment - - edited ICEfaces 3: Sending core/src/main/java/org/icepush/LocalPushGroupManager.java Transmitting file data . Committed revision 47625.
        Hide
        Jack Van Ooststroom added a comment - - edited

        ICEfaces 4:

        Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 47792.

        Show
        Jack Van Ooststroom added a comment - - edited ICEfaces 4: Sending core/src/main/java/org/icepush/LocalPushGroupManager.java Transmitting file data . Committed revision 47792.
        Hide
        Jack Van Ooststroom added a comment -

        Before the await() method is invoked it is first checked to see if the notificationQueue is actually empty using the appropriate locking. In addition it is ensured that the final invocation of Notification.run() is done outside of the locking block. Marking this one as FIXED again.

        Show
        Jack Van Ooststroom added a comment - Before the await() method is invoked it is first checked to see if the notificationQueue is actually empty using the appropriate locking. In addition it is ensured that the final invocation of Notification.run() is done outside of the locking block. Marking this one as FIXED again.
        Jack Van Ooststroom made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #47792 Tue Feb 16 09:28:25 MST 2016 jack.van.ooststroom Fixed JIRA PUSH-368 : Improve LocalPushGroupManager's queue handling; applied fix to potential idle Notification queue consumer thread
        Files Changed
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/LocalPushGroupManager.java
        Ken Fyten made changes -
        Fix Version/s EE-4.1.0.BETA [ 13073 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Jack Van Ooststroom
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: