ICEfaces
  1. ICEfaces
  2. ICE-3341

Expose RenderManager's thread pool and related parameters so that they can be configured

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      all

      Description

      The RenderManager and it's internals use thread pools and such to Ajax Push rendering. These artifacts have reasonable default values but currently no way to easily adjust them. We need to provide the APIs (getters and setters on the RenderManager) so that these values can be set programatically or declaratively (e.g. in faces-config or other dependency injection options like Spring).

      The parameters of interest are in the RenderHub:

          private ThreadPoolExecutor renderService;
          private int corePoolSize = 10;
          private int maxPoolSize = 15;
          private long keepAliveTime = 300000;
          private int renderQueueCapacity = 1000;

          /**
           * The specialized thread pool used to execute render calls at some future
           * time. The RenderHub makes this available to Renderers that need this
           * ability.
           *
           * @see IntervalRenderer, DelayRenderer
           */
          private ScheduledThreadPoolExecutor scheduledService;
          private int schedulePoolSize = 5;

        Activity

        Hide
        Deryk Sinotte added a comment -

        Assigning to Mircea

        Show
        Deryk Sinotte added a comment - Assigning to Mircea
        Hide
        Mircea Toma added a comment -

        Make RenderHub configurable. Add setters on RenderManager to dynamically control the internal thread pool.
        ===============================
        Deryk and Ted,

        Do we really need getters?
        Also, can you check the TODO comments I put into RenderHub?

        Show
        Mircea Toma added a comment - Make RenderHub configurable. Add setters on RenderManager to dynamically control the internal thread pool. =============================== Deryk and Ted, Do we really need getters? Also, can you check the TODO comments I put into RenderHub?
        Hide
        Tyler Johnson added a comment -

        Is there any information on how to configure these settings in the faces-config file?

        Show
        Tyler Johnson added a comment - Is there any information on how to configure these settings in the faces-config file?
        Hide
        Mircea Toma added a comment -

        The corresponding servlet context parameters are prefixed by "com.icesoft.faces.async.render':

        pool size: com.icesoft.faces.async.render.corePoolSize
        max pool size: com.icesoft.faces.async.render.maxPoolSize
        keep alive timeout: com.icesoft.faces.async.render.keepAlive
        queue capacity: com.icesoft.faces.async.render.renderQueueCapacity

        Show
        Mircea Toma added a comment - The corresponding servlet context parameters are prefixed by "com.icesoft.faces.async.render': pool size: com.icesoft.faces.async.render.corePoolSize max pool size: com.icesoft.faces.async.render.maxPoolSize keep alive timeout: com.icesoft.faces.async.render.keepAlive queue capacity: com.icesoft.faces.async.render.renderQueueCapacity

          People

          • Assignee:
            Unassigned
            Reporter:
            Deryk Sinotte
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: