Uploaded image for project: 'OpenAM'
  1. OpenAM
  2. OPENAM-13270

EngineConfiguration settings need clarification

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 14.0.0, 14.1.0, 5.5.1, 6.0.0, 6.5.0
    • Fix Version/s: None
    • Component/s: documentation
    • Labels:
    • Target Version/s:
    • Rank:
      1|hzkb1r:
    • Support Ticket IDs:

      Description

      I think we need to clarify how these settings can be used and what is recommended:

      Maximum thread pool size

      The maximum number of threads in the thread pool from which scripts operate. If no free thread is available in the pool, OpenAM creates new threads in the pool for script execution up to the configured maximum.

      ssoadm attribute: maxThreads

      Thread pool queue size

      The number of threads to use for buffering script execution requests when the maximum thread pool size is reached.

      ssoadm attribute: queueSize
       

      These settings can be found in the XUI: 

      http://openam.example.com:18080/openam/XUI/#configure/global-services/scripting/contexts/edit/OIDC_CLAIMS/engineConfiguration/edit/EngineConfiguration

      In case of load testing (i.e hitting access_token or userinfo endpoint hard), we need to tune up this settings (see https://bugster.forgerock.org/jira/browse/OPENAM-11778

      There is a recommendation in OPENAM-9307 set maxThreads=300 and queueSize=-1, this is not documented, it is however in the help text in the console:

      queueSize help text:

      Size of queue to use for buffering script execution request when core pool is at capacity.

      Use -1 for an unbounded queue (this disables the maximum pool size setting). For short, CPU-bound scripts, consider a small pool size and larger queue length. For I/O-bound scripts (e.g., REST calls) consider a larger maximum pool size and a smaller queue. Not hot-swappable: restart server for changes to take effect.

      I think we should:

      • document the above recommendation (the ssoadm example does that here, but with no explanation)
      • "this disables the maximum pool size setting" could make you think it refers to max threads(so you could leave empty), but looks like it refers to max queue size

      To investigate a couple of points:

      1. the 'workaround' was removed from the docs (I believe it should be added in the docs somewhere):

      https://stash.forgerock.org/projects/OPENAM/repos/openam-docs/commits/a440354c8e9a02d890fc6eb567f042ee3d22c864 

      2. fix from https://bugster.forgerock.org/jira/browse/OPENAM-9307 : https://stash.forgerock.org/projects/OPENAM/repos/openam/commits/a05301d361dbba99f6b19e2a43fb928fd19ca658#openam-shared/src/main/java/org/forgerock/openam/shared/concurrency/ResizableLinkedBlockingQueue.java is throwing an error when queueSize is <0 but workaround is with -1 ?

       

      I feel the docs are not saying much about these settings. Let me know something is unclear (it's best to look at the 2 jiras)

       

        Attachments

          Activity

            People

            Assignee:
            laetitia.ellison Laetitia Ellison [X] (Inactive)
            Reporter:
            anastasios.kampas Anastasios Kampas
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: