-
Bug
-
Resolution: Done
-
Major
-
AS 5.0.0.Beta4
-
None
We have an application with about 200 EJB3 SLSB and MDBs, 120 EJB2 entity beans and a few web apps.
This takes about 1-2 minutes to start up with JBoss 4.2.2.GA. With 5.0.0.Beta4 this jumps to around 20-30 minutes. Some thread dumps show that it's spending most of its time here:
"main" prio=6 tid=0x044b7430 nid=0x10b4 runnable [0x049cd000..0x049cf9f8]
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.<init>(Throwable.java:196)
at java.lang.Exception.<init>(Exception.java:41)
at javax.management.JMException.<init>(JMException.java:35)
at javax.management.OperationsException.<init>(OperationsException.java:36)
at javax.management.MalformedObjectNameException.<init>(MalformedObjectNameException.java:35)
at javax.management.ObjectName.construct(ObjectName.java:393)
at javax.management.ObjectName.<init>(ObjectName.java:1304)
at org.jboss.ejb3.dependency.EjbLinkDemandMetaData$EjbLinkDemandDependencyItem.resolve(EjbLinkDemandMetaData.java:134)
at org.jboss.dependency.plugins.AbstractDependencyInfo.resolveDependencies(AbstractDependencyInfo.java:140)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:901)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:839)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
at org.jboss.system.ServiceController.doChange(ServiceController.java:659)
at org.jboss.system.ServiceController.create(ServiceController.java:393)
at org.jboss.system.ServiceController.create(ServiceController.java:358)
at sun.reflect.GeneratedMethodAccessor212.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:186)
Patching EjbLinkDemandMetaData to avoid creating ObjectNames for names that are obviously invalid speed this up considerably: the startup time is then about 5 minutes, though It still seems to spend a lot of time looping in that EjbLinkDemandDependencyItem .resolve