Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-2034

Asynchronous EJB thread pool maximum size is set to "Runtime.getRuntime().availableProcessors()"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.1.0.Beta1
    • 7.0.2.Final
    • EJB
    • None
    • Hide

      Deploy the attach JAR, or create one yourself from the attached source. When deployed the AsyncBean#execute method will be executed "2 x Runtime.getRuntime().availableProcessors()" times. Observe that the number of concurrent threads executing the method are never higher than "Runtime.getRuntime().availableProcessors()"

      Show
      Deploy the attach JAR, or create one yourself from the attached source. When deployed the AsyncBean#execute method will be executed "2 x Runtime.getRuntime().availableProcessors()" times. Observe that the number of concurrent threads executing the method are never higher than "Runtime.getRuntime().availableProcessors()"
    • Medium

    Description

      The thread pool service used to execute @Asynchronous EJB methods have been set to "Runtime.getRuntime().availableProcessors()". This is clearly not a sensible default as on a single core CPU (or VM) only a single @Asynchronous method is executed concurrently. I would imagine a sensible default would be at least 10.

      It would also be very useful if it was possible set this value in the configuration files.

      Attachments

        1. agility-async_test.jar
          2 kB
        2. AsyncBean.java
          0.6 kB
        3. InvokerBean.java
          0.5 kB

        Activity

          People

            sdouglas1@redhat.com Stuart Douglas
            sthorger@redhat.com Stian Thorgersen
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: