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
>> >>
>>

Reply via email to