Load Balancing with Alkacon Clustering OCEE
(→External Links) |
(major extension) |
||
Line 1: | Line 1: | ||
− | Alkacon | + | ==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 <b>ocee-license.xml</b>) | ||
+ | #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 | ||
+ | <code lang="java"> | ||
+ | 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)</code> | ||
+ | ====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: | ||
+ | |||
+ | <table border=1> | ||
+ | <tr><th>Type</th><th>Price with basic support</th><th>Price with medium support</th><th>Price with advanced support*</th></tr> | ||
+ | <tr><td>Alkacon OCEE Server Enhancement Package</td><td>1.500€</td><td>2.500€</td><td>3.500€</td></tr> | ||
+ | <tr><td>Alkacon OCEE Cluster Package</td><td>2.500€</td><td>3.500€</td><td>6.500€</td></tr> | ||
+ | </table> | ||
+ | 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 [http://www.alkacon.com/export/sites/alkacon/files/Alkacon_OpenCms_Products_and_Services.pdf this file]. | ||
== External Links == | == External Links == | ||
[http://www.alkacon.com/alkacon/en/services/ocee/index.html Alkacon's OCEE Page] | [http://www.alkacon.com/alkacon/en/services/ocee/index.html Alkacon's OCEE Page] | ||
[[Category:Getting OpenCms up and running]] | [[Category:Getting OpenCms up and running]] |
Revision as of 15:12, 20 April 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.