well usually we use graceful shutdown behind an httpd for it but yes that's a limitation. If we fix it we break more than we fix so I guess we'll not.
Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-09-23 20:45 GMT+02:00 Felipe Jaekel <[email protected]>: > The new version is deployed before the old one is undeployed. That's why I > like parallel deployment, it's very useful because I can fix problems in my > apps without impact to users that are already logged in (JSF view state > issues for example). Users who need the fix simply logout and login again, > and when there are no more sessions in the old version it's > automatically undeployed. As I don't use cluster this process has worked > very well in the last years. > > After migrating to TomEE I plan moving some stuff to ejbs, so in order to > keep using parallel deployment I'll I need to move the ejbs to a separate > module? > > Thanks > > 2014-09-23 15:00 GMT-03:00 Romain Manni-Bucau <[email protected]>: > >> Didn't check back but you should have it in the log, if tomcat deploys >> new version before undeploying previous one (I think so now) we can't >> fix it. This is a feature for apps without ejbs >> >> >> Romain Manni-Bucau >> Twitter: @rmannibucau >> Blog: http://rmannibucau.wordpress.com/ >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> Github: https://github.com/rmannibucau >> >> >> 2014-09-23 18:56 GMT+02:00 Felipe Jaekel <[email protected]>: >> > Hi, >> > >> > In 1.7.1 it always happens. Parallel deploy fails with this in server >> log: >> > >> > Set 23, 2014 1:47:38 PM org.apache.openejb.config.AppInfoBuilder build >> > INFORMAÇÕES: Enterprise application >> > "/home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346" >> > loaded. >> > Set 23, 2014 1:47:38 PM org.apache.openejb.assembler.classic.Assembler >> > createApplication >> > INFORMAÇÕES: Assembling app: >> > /home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346 >> > Set 23, 2014 1:47:38 PM org.apache.openejb.assembler.classic.Assembler >> > createApplication >> > GRAVE: Application cannot be deployed as it contains deployment-ids >> > which are in use: app: >> > /home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346 >> > Set 23, 2014 1:47:38 PM org.apache.openejb.assembler.classic.Assembler >> > createApplication >> > GRAVE: DeploymentId already used: NotificacaoComercialTimer >> > Set 23, 2014 1:47:38 PM org.apache.openejb.assembler.classic.Assembler >> > createApplication >> > GRAVE: DeploymentId already used: NotificacaoTarefaInternaTimer >> > Set 23, 2014 1:47:38 PM org.apache.openejb.assembler.classic.Assembler >> > createApplication >> > GRAVE: DeploymentId already used: jmsColaboradorTopicMdb >> > Set 23, 2014 1:47:38 PM org.apache.tomee.catalina.TomcatWebAppBuilder >> > startInternal >> > GRAVE: Unable to deploy collapsed ear in war >> > >> StandardEngine[Catalina].StandardHost[localhost].StandardContext[/colaborador##20140923-1346] >> > org.apache.openejb.DuplicateDeploymentIdException: Application cannot >> > be deployed as it contains deployment-ids which are in use: app: >> > /home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346 >> > NotificacaoComercialTimer >> > NotificacaoTarefaInternaTimer >> > jmsColaboradorTopicMdb >> > at >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:663) >> > at >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) >> > at >> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) >> > at >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) >> > at >> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) >> > at >> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) >> > at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >> > at >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) >> > at >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) >> > at >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) >> > at >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) >> > at >> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) >> > at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) >> > at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> > at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> > at java.lang.Thread.run(Thread.java:745) >> > >> > Set 23, 2014 1:47:38 PM org.apache.catalina.core.ContainerBase >> removeChild >> > GRAVE: ContainerBase.removeChild: destroy: >> > org.apache.catalina.LifecycleException: An invalid Lifecycle >> > transition was attempted ([before_destroy]) for component >> > >> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/colaborador##20140923-1346]] >> > in state [STARTING_PREP] >> > at >> org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:409) >> > at >> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:299) >> > at >> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1041) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1524) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1505) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1254) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) >> > at >> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) >> > at >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) >> > at >> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) >> > at >> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) >> > at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >> > at >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) >> > at >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) >> > at >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) >> > at >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) >> > at >> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) >> > at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) >> > at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> > at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> > at java.lang.Thread.run(Thread.java:745) >> > >> > Set 23, 2014 1:47:38 PM org.apache.catalina.core.ContainerBase >> addChildInternal >> > GRAVE: ContainerBase.addChild: start: >> > org.apache.catalina.LifecycleException: Failed to start component >> > >> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/colaborador##20140923-1346]] >> > at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) >> > at >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) >> > at >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) >> > at >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) >> > at >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) >> > at >> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) >> > at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) >> > at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> > at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> > at java.lang.Thread.run(Thread.java:745) >> > Caused by: org.apache.tomee.catalina.TomEERuntimeException: >> > org.apache.openejb.DuplicateDeploymentIdException: Application cannot >> > be deployed as it contains deployment-ids which are in use: app: >> > /home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346 >> > NotificacaoComercialTimer >> > NotificacaoTarefaInternaTimer >> > jmsColaboradorTopicMdb >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1257) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) >> > at >> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) >> > at >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) >> > at >> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) >> > at >> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) >> > at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >> > ... 10 more >> > Caused by: org.apache.openejb.DuplicateDeploymentIdException: >> > Application cannot be deployed as it contains deployment-ids which are >> > in use: app: >> /home/ec2-user/apache-tomee-plus/webapps/colaborador##20140923-1346 >> > NotificacaoComercialTimer >> > NotificacaoTarefaInternaTimer >> > jmsColaboradorTopicMdb >> > at >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:663) >> > at >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) >> > at >> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) >> > ... 16 more >> > >> > Set 23, 2014 1:47:38 PM org.apache.catalina.startup.HostConfig deployWAR >> > GRAVE: Error deploying web application archive >> > >> /home/ec2-user/apache-tomee-plus-1.7.1/webapps/colaborador##20140923-1346.war >> > java.lang.IllegalStateException: ContainerBase.addChild: start: >> > org.apache.catalina.LifecycleException: Failed to start component >> > >> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/colaborador##20140923-1346]] >> > at >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) >> > at >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) >> > at >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) >> > at >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) >> > at >> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) >> > at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) >> > at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> > at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> > at java.lang.Thread.run(Thread.java:745) >> > >> > Set 23, 2014 1:47:38 PM org.apache.catalina.startup.HostConfig deployWAR >> > INFORMAÇÕES: Deployment of web application archive >> > >> /home/ec2-user/apache-tomee-plus-1.7.1/webapps/colaborador##20140923-1346.war >> > has finished in 4,414 ms >> > >> > >> > 2014-09-08 15:43 GMT-03:00 Romain Manni-Bucau <[email protected]>: >> > >> >> Hi >> >> >> >> older version should be deleted and not stay deployed/be redeployed >> >> >> >> are you able to reproduce it deterministicly? >> >> >> >> >> >> Romain Manni-Bucau >> >> Twitter: @rmannibucau >> >> Blog: http://rmannibucau.wordpress.com/ >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> Github: https://github.com/rmannibucau >> >> >> >> >> >> 2014-09-08 20:27 GMT+02:00 Felipe Jaekel <[email protected]>: >> >> > Hi, >> >> > >> >> > I'm migrating from Tomcat to TomEE. >> >> > >> >> > In Tomcat parallel deployment is working fine, but in TomEE I noticed >> two >> >> > things: >> >> > >> >> > 1. An extra unversioned entry of my webapp appears in the manager >> >> > application >> >> > 2. If restart the server only the most recent version of the >> >> application >> >> > starts. The older ones fail with a DuplicateDeploymentIdException: >> >> > >> >> > GRAVE: Unable to deploy collapsed ear in war >> >> > >> >> >> StandardEngine[Catalina].StandardHost[localhost].StandardContext[/colaborador##20140908-1455] >> >> > org.apache.openejb.DuplicateDeploymentIdException: Application cannot >> >> > be deployed as it contains deployment-ids which are in use: app: >> >> > >> /home/ec2-user/apache-tomee-plus-1.7.0/webapps/colaborador##20140908-1455 >> >> > jmsColaboradorTopicMdb >> >> > at >> >> >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:663) >> >> > at >> >> >> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) >> >> > at >> >> >> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) >> >> > at >> >> >> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) >> >> > at >> >> >> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) >> >> > at >> >> >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) >> >> > at >> >> >> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) >> >> > at >> >> >> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) >> >> > at >> >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >> >> > at >> >> >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) >> >> > at >> >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) >> >> > at >> >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) >> >> > at >> >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) >> >> > at >> >> >> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) >> >> > at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >> >> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) >> >> > at >> >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> >> > at >> >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> >> > at java.lang.Thread.run(Thread.java:745) >> >> > >> >> > >> >> > No big deal about item 1, but in item 2 will users from older versions >> >> lose >> >> > their sessions? >> >> > >> >> > Thanks >> >> >>
