]
Stefano Maestri moved JBEAP-3513 to WFLY-6250:
----------------------------------------------
Project: WildFly (was: JBoss Enterprise Application Platform)
Key: WFLY-6250 (was: JBEAP-3513)
Workflow: GIT Pull Request workflow (was: CDW with loose statuses v1)
Component/s: JCA
JMX
(was: JCA)
(was: JMX)
Target Release: (was: 7.backlog.GA)
Affects Version/s: 10.0.0.Final
(was: 7.0.0.ER5)
JMX inefficiently handles resource adapters
-------------------------------------------
Key: WFLY-6250
URL:
https://issues.jboss.org/browse/WFLY-6250
Project: WildFly
Issue Type: Bug
Components: JCA, JMX
Affects Versions: 10.0.0.Final
Reporter: Stefano Maestri
Assignee: Stefano Maestri
Attachments: README.txt, xaa, xab, xac, xad
If you connect to JBoss over JMX when it has many rars deployed (over 500), long running
high CPU is seen in the following calls:
{code}
at
org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:188)
at
org.jboss.as.jmx.model.ResourceAccessControlUtil.getResourceAccess(ResourceAccessControlUtil.java:85)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:51)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.doIterate(RootResourceIterator.java:61)
at
org.jboss.as.jmx.model.RootResourceIterator.iterate(RootResourceIterator.java:43)
{code}
It's evident that it is iterating over each deployment (each resource adapter
counting as a deployment), but for each deployment, it is also iterating over all resource
adapter's and their config properties. So it would iterate over all 500+ resource
adapters once for each deployment, so it iterates over all 500 adapters at least 500
times. Is there anyway we could avoid that n^2 iteration for deployed rars?