Hi all,
In a test environment we are trying to get session replication going in an ofbiz cluster. So we have setup 2 machine and got them running as individuals. Next we set the properties for enabling clustering: - in general.properties, we set 'cluster=Y' (from cluster='N') - in ofbiz-component.xml of framework/catalina, we uncommented the section for clustering. But when restarting the instance(s) we get a wadload of errors, starting with the excerpt below. Apparently we are missing something, but what? Can you help us out? [java] org.ofbiz.base.start.StartupException: Cannot start() org.ofbiz.catalina.container.CatalinaContainer (org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]] (Failed to start component [StandardServer[-1]])) [java] at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:240) [java] at org.ofbiz.base.start.Start.startStartLoaders(Start.java:327) [java] at org.ofbiz.base.start.Start.start(Start.java:369) [java] at org.ofbiz.base.start.Start.main(Start.java:120) [java] org.ofbiz.base.container.ContainerException: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]] (Failed to start component [StandardServer[-1]]) [java] at org.ofbiz.catalina.container.CatalinaContainer.start(CatalinaContainer.java:241) [java] at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:238) [java] at org.ofbiz.base.start.Start.startStartLoaders(Start.java:327) [java] at org.ofbiz.base.start.Start.start(Start.java:369) [java] at org.ofbiz.base.start.Start.main(Start.java:120) [java] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]] [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [java] at org.ofbiz.catalina.container.CatalinaContainer.start(CatalinaContainer.java:239) [java] ... 4 more [java] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]] [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [java] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [java] ... 5 more [java] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[default-server]] [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [java] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [java] ... 7 more [java] Caused by: org.apache.catalina.LifecycleException: A child container failed during start [java] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) [java] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) [java] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [java] ... 9 more Pierre Smits *ORRTIZ.COM <http://www.orrtiz.com>* Services & Solutions for Cloud- Based Manufacturing, Professional Services and Retail & Trade http://www.orrtiz.com |
Administrator
|
Hi Pierre,
Do you really need session replication? Why not using sticky sessions? Note that in both cases you need to run the Distributed Entity Cache Clear Mechanism https://cwiki.apache.org/confluence/display/OFBIZ/Distributed+Entity+Cache+Clear+Mechanism Jacques On Monday, December 09, 2013 6:18 PM Pierre Smits <[hidden email]> wrote: > Hi all, > > In a test environment we are trying to get session replication going in an > ofbiz cluster. So we have setup 2 machine and got them running as > individuals. > Next we set the properties for enabling clustering: > > - in general.properties, we set 'cluster=Y' (from cluster='N') > - in ofbiz-component.xml of framework/catalina, we uncommented the > section for clustering. > > But when restarting the instance(s) we get a wadload of errors, starting > with the excerpt below. > > Apparently we are missing something, but what? > > Can you help us out? > > > [java] org.ofbiz.base.start.StartupException: Cannot start() > org.ofbiz.catalina.container.CatalinaContainer > (org.apache.catalina.LifecycleException: Failed to start component > [StandardServer[-1]] (Failed to start component [StandardServer[-1]])) > > [java] at > org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:240) > > [java] at org.ofbiz.base.start.Start.startStartLoaders(Start.java:327) > > [java] at org.ofbiz.base.start.Start.start(Start.java:369) > > [java] at org.ofbiz.base.start.Start.main(Start.java:120) > > [java] org.ofbiz.base.container.ContainerException: > org.apache.catalina.LifecycleException: Failed to start component > [StandardServer[-1]] (Failed to start component [StandardServer[-1]]) > > [java] at > org.ofbiz.catalina.container.CatalinaContainer.start(CatalinaContainer.java:241) > > [java] at > org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:238) > > [java] at org.ofbiz.base.start.Start.startStartLoaders(Start.java:327) > > [java] at org.ofbiz.base.start.Start.start(Start.java:369) > > [java] at org.ofbiz.base.start.Start.main(Start.java:120) > > [java] Caused by: org.apache.catalina.LifecycleException: Failed to > start component [StandardServer[-1]] > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) > > [java] at > org.ofbiz.catalina.container.CatalinaContainer.start(CatalinaContainer.java:239) > > [java] ... 4 more > > [java] Caused by: org.apache.catalina.LifecycleException: Failed to > start component [StandardService[Tomcat]] > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) > > [java] at > org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > [java] ... 5 more > > [java] Caused by: org.apache.catalina.LifecycleException: Failed to > start component [StandardEngine[default-server]] > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) > > [java] at > org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > [java] ... 7 more > > [java] Caused by: org.apache.catalina.LifecycleException: A child > container failed during start > > [java] at > org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) > > [java] at > org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) > > [java] at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > [java] ... 9 more > > > > Pierre Smits > > *ORRTIZ.COM <http://www.orrtiz.com>* > Services & Solutions for Cloud- > Based Manufacturing, Professional > Services and Retail & Trade > http://www.orrtiz.com |
Hi Jacques,
Thanks for the response. In our production environment we do have set up sticky_session in the workers.properties file on the http side. And yes. We do use DECC. But maybe I misunderstood that uncomenting the section in the ofbiz_component of /framework/catalina was required. Regards, Pierre Smits *ORRTIZ.COM <http://www.orrtiz.com>* Services & Solutions for Cloud- Based Manufacturing, Professional Services and Retail & Trade http://www.orrtiz.com |
Administrator
|
Normally you don't need to change the cluster property in general, nor, for sticky sessions, changing the catalina cluster section
Jacques On Tuesday, December 10, 2013 10:11 AM Pierre Smits <[hidden email]> wrote: > Hi Jacques, > > Thanks for the response. > In our production environment we do have set up sticky_session in the > workers.properties file on the http side. > > And yes. We do use DECC. > > But maybe I misunderstood that uncomenting the section in the > ofbiz_component of /framework/catalina was required. > > Regards, > > Pierre Smits > > *ORRTIZ.COM <http://www.orrtiz.com>* > Services & Solutions for Cloud- > Based Manufacturing, Professional > Services and Retail & Trade > http://www.orrtiz.com |
Jacques,
I agree, for basic HAFO (High Availability-Fail Over) and load balancing you can suffice with a setup that does proxying (e.g. Apache HTTP with mod-proxy and/or mod-jk). But, that is beside the issue/question I raised. When doing clustering on a tomcat level some conditions must be met, like: - in general.properties, set Cluster=Y - in every component that needs to distributed in the cluster, have <distributable/> in the WEB-INF file of the component - in ofbiz-component.xml of framework/catalina, uncomment the commented out section regarding clustering. - any others? And apparently, this doesn't work. Hence my question regarding missing something. Or is broken? Regards, Pierre Smits *ORRTIZ.COM <http://www.orrtiz.com>* Services & Solutions for Cloud- Based Manufacturing, Professional Services and Retail & Trade http://www.orrtiz.com |
Administrator
|
Pierre,
> - in general.properties, set Cluster=Y I introduced it at http://svn.apache.org/viewvc?view=revision&revision=1144537, see explanation there, you should neglect this property most of the time. > <distributable/> in the WEB-INF file of the component You don't need , if you use sticky sessions. Why would you need session replication? OK, with sticky sessions each app server is a point of failure. But in which cases and what are the consequences? Case: hardware failure (see others?). Chances are you will not get much of them, right? Consequence: user currently connected will lose their sessions, so what? Is that so hard if it happens once every, say 5 years, for few sessions? How many users sessions do you expect on each server at a time? They will simply reconnect on another server and that's it. See in question below why I prefer sticky sessions. Hint: session managers and serialisation can be troublesome. IMO does not worth the pain. Except if losing a session is really something you can't allow, but then be prepared to something more complicated. > - in ofbiz-component.xml of framework/catalina, uncomment the commented out You don't need , if you use sticky sessions. And should not, if you don't want to struggles with serialisation issues and other related complications. The load-balancer will dispatch to each app server which will handle its load My advice: most of the time no needs to introduce a session manager. Except if you like troubles or can't avoid it... Just think about it before... Hope I'm clear, if you need more information be prepared to pay :D Jacques On Wednesday, December 11, 2013 10:28 AM Pierre Smits <[hidden email]> wrote: > Jacques, > > I agree, for basic HAFO (High Availability-Fail Over) and load balancing > you can suffice with a setup that does proxying (e.g. Apache HTTP with > mod-proxy and/or mod-jk). > > But, that is beside the issue/question I raised. > > When doing clustering on a tomcat level some conditions must be met, like: > - in general.properties, set Cluster=Y > - in every component that needs to distributed in the cluster, have > <distributable/> in the WEB-INF file of the component > - in ofbiz-component.xml of framework/catalina, uncomment the commented out > section regarding clustering. > - any others? > > And apparently, this doesn't work. Hence my question regarding missing > something. > > Or is broken? > > > Regards, > > Pierre Smits > > *ORRTIZ.COM <http://www.orrtiz.com>* > Services & Solutions for Cloud- > Based Manufacturing, Professional > Services and Retail & Trade > http://www.orrtiz.com |
Free forum by Nabble | Edit this page |