Lars Herschke created TOMEE-2044:
------------------------------------

             Summary: threadPool-queue (in ServicePool) from ejbd-Service is 
never processed 
                 Key: TOMEE-2044
                 URL: https://issues.apache.org/jira/browse/TOMEE-2044
             Project: TomEE
          Issue Type: Bug
          Components: TomEE Core Server
    Affects Versions: 1.7.4
         Environment: FreeBSD 10.3-STABLE amd64 
openjdk8-8.131.11
            Reporter: Lars Herschke


If you have many requests to your ejbd-service the queue from the threadPool in 
ServicePool.java is filled. This queue is never processed depending on your 
server config. If you have only ejbd-service enabled and the services admin, 
ejbds and httpejbd are disabled all is fine. If you have two or more of these 
services enabled the issue could occur. The reason is the following.

KeepAliveServer.java has the following line to get the queue.
final ServicePool incoming = 
SystemInstance.get().getComponent(ServicePool.class);
SystemInstance.java hold components in a HahMap with the class type as key. On 
server-startup the above named services are initalized in 
ServiceManager.manage(...). This method instances new ServicePool for this 
services. Each ServicePool-instance calls in his constructor
SystemInstance.get().setComponent(ServicePool.class, this);.
Every other call of setComponent replace the old entry in the components 
HashMap. So KeepAliveServer gets always the queue of the last initalized 
service.

Workaround:
Use only one of the four above named services
or
set threadsCore for your services at least as high, that the queue is never 
used.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to