[Design the new POJO MicroContainer] - Declaration and deployment of threads and thread pools in th
by david.lloyd@jboss.com
I've developed an experimental POJO-based deployer for defining thread groups, thread factories, and thread pools for the MC. The source is in my sandbox area at https://svn.jboss.org/repos/sandbox/david.lloyd/jboss-threads/trunk.
Basically it lets you write a jboss-threads.xml file which contains declarations like thread-group, thread-factory, thread-pool-executor, etc. You can configure things like the daemon status, priority, set parent groups, pool sizes (scaled linearly or by CPU count, or both), the queue type and rejection policies for the executor, etc. These get created as named beans which can be injected using regular POJO deployment stuff.
Since it's just an experiment I didn't go through the mbean stuff to see if every little function is replicated but this should be enough to tell whether it's a good idea or a dumb idea anyway. At the very least it should make thread pool configuration a lot more uniform, and hopefully simpler for the end-user...
I don't have a build script yet, but you can use your IDE of choice to compile the two modules into a single JAR and deploy it as a deployer. The XSD for the jboss-threads.xml files is in there too.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187058#4187058
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187058
17 years, 5 months
[Design of POJO Server] - Re: JBAS-6104; slow Seam deployments
by smcgowan@redhat.com
Jay and I were discussing this and I'm seeing a similar hang when deploying the admin-console.war with the profile service FWIW jbossas/trunk Revision 80553
output in server.log when hang occurs:
| 2008-11-05 11:34:49,519 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (main) injectionContainer enabled and processing beginning
| 2008-11-05 11:34:51,656 DEBUG [org.ajax4jsf.renderkit.ChameleonRenderKitFactory] (main) ChameleonRenderKitFactory(RenderKitFactory) - Chameleon RenderKit factory instantiated
| 2008-11-05 11:34:52,036 DEBUG [org.ajax4jsf.resource.InternetResourceBuilder] (main) Create instance of InternetBuilder from class org.ajax4jsf.resource.ResourceBuilderImpl
| 2008-11-05 11:34:52,036 DEBUG [org.ajax4jsf.resource.InternetResourceBuilder] (main) Return instance of internet resource builder org.ajax4jsf.resource.ResourceBuilderImpl@1d9a965
| 2008-11-05 11:34:52,043 DEBUG [org.ajax4jsf.resource.ResourceBuilderImpl] (main) Process resources configuration file vfszip:/NotBackedUp/smcgowan/TRUNK/trunk/build/output/jboss-5.0.0.GA/server/default/deploy/admin-console.war/WEB-INF/lib/richfaces-impl-3.2.2.GA.jar/META-INF/resources-config.xml
|
|
And thread dump:
| "main" prio=1 tid=0x0873d540 nid=0x1983 runnable [0x8069b000..0x8069df30]^M
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:232)^M
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)^M
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)^M
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)^M
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)^M
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)^M
| - locked <0x95bbe1e0> (a org.jboss.classloader.spi.base.BaseClassLoader)^M
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)^M
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)^M
| - locked <0x95bbe1e0> (a org.jboss.classloader.spi.base.BaseClassLoader)^M
| at org.apache.commons.digester.Digester.getXMLReader(Digester.java:947)^M
| at org.apache.commons.digester.Digester.parse(Digester.java:1765)^M
| at org.ajax4jsf.resource.ResourceBuilderImpl.registerConfig(ResourceBuilderImpl.java:200)^M
| at org.ajax4jsf.resource.ResourceBuilderImpl.registerResources(ResourceBuilderImpl.java:144)^M
| at org.ajax4jsf.resource.ResourceBuilderImpl.init(ResourceBuilderImpl.java:215)^M
| at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>(ChameleonRenderKitFactory.java:62)^M
| at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)^M
| at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)^M
| at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)^M
| at java.lang.reflect.Constructor.newInstance(Constructor.java:494)^M
| at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:519)^M
| at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:405)^M
| at javax.faces.FactoryFinder.access$400(FactoryFinder.java:135)^M
| at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:717)^M
| at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:239)^M
| at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:186)^M
| at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:131)^M
| at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:203)^M
| at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:196)^M
| at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:73)^M
| at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)^M
| at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)^M
| - locked <0x9af6ce90> (a org.apache.catalina.core.StandardContext)^M
| at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:367)^M
| at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146)^M
| at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)^M
| - locked <0x9af77e40> (a org.jboss.web.tomcat.service.deployers.TomcatDeployment)^M
| at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)^M
| - locked <0x9b028070> (a org.jboss.web.deployers.WebModule)^M
| at org.jboss.web.deployers.WebModule.start(WebModule.java:96)^M
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)^M
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)^M
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)^M
| at java.lang.reflect.Method.invoke(Method.java:585)^M
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)^M
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)^M
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)^M
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)^M
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)^M
| at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)^M
| at $Proxy35.start(Unknown Source)^M
| at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)^M
| at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)^M
| at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)^M
| at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)^M
| at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)^M
| at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)^M
| at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)^M
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)^M
| at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)^M
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)^M
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)^M
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)^M
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)^M
| at org.jboss.system.ServiceController.doChange(ServiceController.java:672)^M
| at org.jboss.system.ServiceController.start(ServiceController.java:444)^M
| at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)^M
| at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)^M
| at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)^M
| at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)^M
| at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)^M
| at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)^M
| at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1410)^M
| at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1128)^M
| at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1149)^M
| at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1069)^M
| at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)^M
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)^M
| at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)^M
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)^M
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)^M
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)^M
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)^M
| at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:752)^M
| at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)^M
| at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:265)^M
| at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:143)^M
| at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:410)^M
| at org.jboss.Main.boot(Main.java:209)^M
| at org.jboss.Main$1.run(Main.java:544)^M
| at java.lang.Thread.run(Thread.java:595)^M
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187047#4187047
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187047
17 years, 5 months