[jboss-dev] Further profling: Where should I focus?

Alessio Soldano asoldano at redhat.com
Wed Jan 13 10:59:44 EST 2010


I confirm, 25 secs here, good :-)
Btw, do you also get warnings with NPE when shutting down?

16:56:16,582 INFO  [TomcatDeployment] undeploy, ctxPath=/jmx-console
16:56:16,623 WARN  [ScopedKernelController] Error uninstalling from 
PreInstall: name=jboss.naming:module=jmx-console aliases=[java:module] 
state=Not Installed: java.lang.NullPointerException
    at 
org.jboss.kernel.plugins.dependency.ScopedKernelController.getContext(ScopedKernelController.java:143)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallUnusedOnDemandContexts(AbstractController.java:1503)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1463)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1357)
    at 
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:704)
    at 
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:732)
    at 
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:617)
    at 
org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:228)
    at 
org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:58)
    at 
org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalUndeploy(AbstractSimpleRealDeployer.java:69)
    at 
org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:117)
    at 
org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:204)
    at 
org.jboss.deployers.plugins.deployers.DeployersImpl.doUndeploy(DeployersImpl.java:1690)
    at 
org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1597)
    at 
org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1590)
    at 
org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1552)
    at 
org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:384)
    at 
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1890)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1456)
    at 
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:892)
    at 
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:602)
    at 
org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:811)
    at 
org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:654)
    at 
org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    at 
org.jboss.system.server.profileservice.repository.ProfileDeployAction.uninstall(ProfileDeployAction.java:95)
    at 
org.jboss.system.server.profileservice.repository.AbstractProfileAction.uninstall(AbstractProfileAction.java:70)
    at 
org.jboss.system.server.profileservice.repository.AbstractProfileService.uninstall(AbstractProfileService.java:417)
    at 
org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:384)
    at 
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1890)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1456)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1357)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallUnusedOnDemandContexts(AbstractController.java:1540)
    at 
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1463)
    at 
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:892)
    at 
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:602)
    at 
org.jboss.system.server.profileservice.repository.AbstractProfileService.deactivateProfile(AbstractProfileService.java:448)
    at 
org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:326)
    at 
org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:100)
    at 
org.jboss.bootstrap.impl.base.server.AbstractServer.shutdownBootstraps(AbstractServer.java:892)
    at 
org.jboss.bootstrap.impl.base.server.AbstractServer.shutdown(AbstractServer.java:309)
    at org.jboss.Main$ShutdownHook$1.run(Main.java:893)

Jaikiran Pai wrote:
> With the recent upgrade of MC in AS trunk, the "default" config on my 
> system now boots in around 23 seconds consistently. Before the upgrade 
> it used to take somewhere around 30 to 33 seconds.
>
> -Jaikiran
>
> Kabir Khan wrote:
>   
>> I forgot to mention the changes that I did for JBKERNEL-75, i.e. lifecycle: http://community.jboss.org/message/518409#518409
>>
>> The gist of it is that <lifecycle-configure/> & friends no longer can take an 'expr' attribute (containing a pointcut) and that the 'classes' attribute now must take an annotation.
>>
>> On 5 Jan 2010, at 18:08, Kabir Khan wrote:
>>
>>     
>>> The work for this has been committed against https://jira.jboss.org/jira/browse/JBKERNEL-75 and https://jira.jboss.org/jira/browse/JBKERNEL-74. I have a few things I need to do before the end of the week, if I have any time I'll try to see what impact this has on AS boot time.
>>> On 4 Jan 2010, at 17:28, Kabir Khan wrote:
>>>
>>>       
>>>> I tried starting AS with the updated jboss-aop-mc-int.jar, but ran into problems with dependencies. I'll work on the @JMX stuff next, and try to see if I can update all the dependencies locally in AS once I'm done with that if I have some time before our release
>>>>
>>>> On 4 Jan 2010, at 15:43, Kabir Khan wrote:
>>>>
>>>>         
>>>>> I think I've got the bypassing proxy stuff working now both with and without weaving. I'm re-running some tests before committing. A summary of what I have done;
>>>>>
>>>>> -AOP proxy creation/checks is disabled by default
>>>>> - at EnableAopProxy on a bean forces it to go through the proxy checks
>>>>> - at DisableAOP is deprecated, but will stil be checked if it is present and the new annotations are not present
>>>>>
>>>>> A few points:
>>>>> -if a bean is not woven but has constructor aspects you want invoked, the bean needs the @EnableAopProxy annotation
>>>>> -If a bean's class is woven it can have aspects, so we will always check the AOP dependencies for that bean. This will only happen if loadtime weaving was turned on (or compile-time weaving was used) AND the bean matches some pointcuts, so it should not be an issue in practice.
>>>>>
>>>>> Once I've tidied up I'll commit to MC trunk, and try putting it into AS trunk before moving on to replacing the mechanism for AOP lifecycle.
>>>>>
>>>>> On 24 Dec 2009, at 12:29, Kabir Khan wrote:
>>>>>
>>>>>           
>>>>>> I've made a start on this, but doubt I'll finish it before I finish for Christmas. I am deprecating the @DisableAOP annotation. By default aop proxies will be disabled, but can be enabled with @EnableAopProxy. Lifecycle callbacks will be enabled by default (and I'll come up with a quicker way of determining if they should apply), but can be disabled using the @DisableAopLifecycle annotation. 
>>>>>>
>>>>>> One issue that I need to look into is that there are a bunch of tests that run with weaving enabled, so I need to see how they fare with this new setup. Since if they are woven, aspects will apply, and if those aspects have dependencies we need those in AOPDependencyBuilder. 
>>>>>>
>>>>>>
>>>>>> On 24 Dec 2009, at 10:47, Ales Justin wrote:
>>>>>>
>>>>>>             
>>>>>>>> +1, disable AOP wherever possible. 
>>>>>>>>                 
>>>>>>> I guess we can go the other way now, disabled by default + make 
>>>>>>> lifecycle completely OO.
>>>>>>> We should then definitely see good improvement.
>>>>>>>
>>>>>>>               
>>>>>>>> And I'd even dare say if you want @JMX, why not just 
>>>>>>>> implement it the old fashion with MBean interfaces? It's simple and fast :-)
>>>>>>>>                 
>>>>>>> You got that right, it's simple, probably too simple. ;-)
>>>>>>> I think one would still like to use the real power of POJO and IoC and
>>>>>>> just register it to MBeanServer for some simple admin/config.
>>>>>>>
>>>>>>> I dare to say I think you need to re-read this article :-)
>>>>>>> * http://java.dzone.com/articles/a-look-inside-jboss-microconta-0
>>>>>>> _______________________________________________
>>>>>>> jboss-development mailing list
>>>>>>> jboss-development at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>>>>               
>>>>>> _______________________________________________
>>>>>> jboss-development mailing list
>>>>>> jboss-development at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>>>             
>>>>> _______________________________________________
>>>>> jboss-development mailing list
>>>>> jboss-development at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>>           
>>>> _______________________________________________
>>>> jboss-development mailing list
>>>> jboss-development at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>         
>>> _______________________________________________
>>> jboss-development mailing list
>>> jboss-development at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>       
>> _______________________________________________
>> jboss-development mailing list
>> jboss-development at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>     
>
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
>   


-- 
Alessio Soldano
Web Service Lead, JBoss




More information about the jboss-development mailing list