Load Balancing with Alkacon Clustering OCEE
(major extension) |
(→Description) |
||
Line 57: | Line 57: | ||
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) | ||
at java.lang.Thread.run(Thread.java:595)</code> | at java.lang.Thread.run(Thread.java:595)</code> | ||
+ | |||
====Solution==== | ====Solution==== | ||
As reported by Alkacon OpenCms Support Team, JBoss may provide versions of ''BeanShell'' jars that collide with the provided (as for version 2.1) ''bsh-core-2.0b4.jar''. | As reported by Alkacon OpenCms Support Team, JBoss may provide versions of ''BeanShell'' jars that collide with the provided (as for version 2.1) ''bsh-core-2.0b4.jar''. |
Revision as of 12:06, 4 June 2009
Contents |
Overview
Alkacon sells a non open-source module for OpenCMS that allows you to cluster multiple application servers running on one database without having to worry about the problems of caching and publishing data between the 2+ nodes.
Setup
The setup for the OCEE Cluster Package by Alkacon is of course well documented in the distribution Alkacon provides.
In basic lines, for an existing installation it consists in:
- Importing the required ocee modules.
- Copying sample new configuration files into /WEB-INF/config and configuring them (depending on your requirements, but at least ocee-license.xml)
- Editing existing configuration files to use the righ Alkacon OCEE classes (opencms.xml, opencms-system.xml, opencms.properties)
(Follow same steps for the second server of the cluster)
Issues
This section shows known issues getting OCEE to work. It is divided into application servers considering issues in one AS may not be reproducible in a different one.
JBoss
Description
When installing on JBoss Application Server, you may find an issue that avoids OCEE from getting servers status and therefore making the servers from the cluster seem not available. Symptoms are:
- Active workplace server reports as unavailable (that means it can't reach itself)
- Non-active workplace servers indicate they have been disabled due to the use of the same MAC address (null)
Alternatively, you may find in the logfiles something similar to
Error while getting instance information org.opencms.main.OpenCms.getSystemInfo().getServerName() bsh.InterpreterError: Error loading classmanager: java.lang.ClassCastException: bsh.classpath.ClassManagerImpl at bsh.BshClassManager.createClassManager(Unknown Source) at bsh.Interpreter.<init>(Unknown Source) at bsh.Interpreter.<init>(Unknown Source) at bsh.Interpreter.<init>(Unknown Source) at org.opencms.ocee.cluster.CmsClusterEventHandler.handleClusterGetInstanceInfo(CmsClusterEventHandler.java:527) at org.opencms.ocee.cluster.CmsClusterEventHandler.cmsEvent(CmsClusterEventHandler.java:220) at org.opencms.main.CmsEventManager.fireEventHandler(CmsEventManager.java:203) at org.opencms.main.CmsEventManager.fireEvent(CmsEventManager.java:127) at org.opencms.main.CmsEventManager.fireEvent(CmsEventManager.java:148) at org.opencms.main.OpenCms.fireCmsEvent(OpenCms.java:169) at org.opencms.ocee.cluster.CmsClusterRequestHandler.handle(CmsClusterRequestHandler.java:355) at org.opencms.main.OpenCmsServlet.invokeHandler(OpenCmsServlet.java:269) at org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:149) at org.opencms.main.OpenCmsServlet.doPost(OpenCmsServlet.java:164) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:595)
Solution
As reported by Alkacon OpenCms Support Team, JBoss may provide versions of BeanShell jars that collide with the provided (as for version 2.1) bsh-core-2.0b4.jar. Solution is to remove (or safely rename without a .jar extension) the mentioned bsh-core-2.0b4.jar file and restarting the servers.
Pricing
At the moment of this document (April 2009), the pricing for Alkacon's OCEE Package is as follows:
Type | Price with basic support | Price with medium support | Price with advanced support* |
---|---|---|---|
Alkacon OCEE Server Enhancement Package | 1.500€ | 2.500€ | 3.500€ |
Alkacon OCEE Cluster Package | 2.500€ | 3.500€ | 6.500€ |
For the best reference of what each type of OCEE package includes, and what each support includes, visit Alkacon's OCEE Page (see #External Links) or download this file.