Liferay集群

时间:2009-05-28 13:03:38

标签: java glassfish liferay

您是否知道有关在Glassfish中安装Liferay群集的任何分步教程?

3 个答案:

答案 0 :(得分:6)

Google发现了我的这篇名为how-to-install-and-configure-a-liferay-cluster

的文章

享受!

答案 1 :(得分:5)

我正在处理同样的问题,或者非常类似的问题 - 将Liferay WAR文件部署到具有两个节点的glassfish集群。我没有完全正确配置它,但我确实已成功部署它。也许这对你也有帮助,我们可以比较笔记。

这就是我必须做的事情。

首先,基础工作。 GlassFish在部署WAR时对我来说有点奇怪。根据我的理解,WAR文件在某个地方被node-agent爆炸,但是一旦部署它们就无法访问文件。这意味着当您调整配置文件(portal-ext.properties)时,您每次都需要重新部署 - 而Liferay的重量大约为73MB。这将导致PermGen定期出现空间异常,并要求您重新启动群集。所以你最好设置JVM选项来增加glassfish中PermGen空间的大小。这里有一个很好的解释问题:

http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space

该JVM选项无法解决问题,但会增加群集重启之间的延迟(glassfish控制台无法重启,顺便说一下;我们必须通过命令行来完成)。

接下来的问题是:依赖JAR文件在哪里?我们在运行其他服务的共享集群中运行,因此将其放在domains / domain1 / lib文件夹中将不起作用。我们将依赖JAR文件放在了liferay war文件的WEB-INF / lib中,似乎对此感到满意。

下一篇:portal-ext.properties在哪里覆盖文件?答案再次出现在liferay war文件中的WEB-INF / classes中。这也是我们每次修改属性时需要重新部署的一个原因,如上所述。

下一个:上下文。默认情况下,liferay尝试部署到根上下文“/”。我们处于共享环境中,因此我们将WAR部署到context / lr1。在portal-ext.properties中,我们必须设置属性

  

portal.ctx = / LR1

下一篇:在集群环境中使用嵌入式HSQL没有多大意义;我们使用GlassFish为数据库连接池设置了一个JNDI名称。有关如何在Liferay文档指南中执行此操作的说明。在portal-ext.properties文件中,我们可以放入

  

jdbc.default.jndi.name = JDBC / LiferayPool

我们也不想在文件系统上存储Lucene索引。我们在portal-ext.properties文件中覆盖了这些属性以修复它:

  

lucene.store.type = JDBC

     

lucene.store.jdbc.auto.clean.up =真

     

lucene.store.jdbc.dialect.oracle = org.apache.lucene.store.jdbc.dialect.OracleDialect

类似的逻辑适用于JackRabbit存储库;我目前有以下属性设置(我不知道这是否正确,但文档库是否正常工作):

  

jcr.jackrabbit.repository.root = WEB-INF /类/

我不得不将jackrabbit的repository.xml文件放在WEB-INF / classes中。该xml文件告诉jackrabbit使用哪些数据库连接参数(有关详细信息,请参阅Apache的Jackrabbit配置页面)。同样,我不确定将它放在WEB-INF / classes中是正确的想法,但它可能必须在WAR文件中的某个位置或者在集群中所有节点的某个共享文件系统上共享相同的数据。

我还没有搞过EHcache,但我确实放入了hibernate属性:

  

hibernate.dialect = org.hibernate.dialect.Oracle10gDialect

我们的oracle db。我相信它使用上面的默认JDBC属性来引用我们的JNDI数据库连接。

“Liferay主目录”变量的概念是“服务器主页上方的一个文件夹”是我仍在努力解决的问题,并且每次发送与/ opt /相关的HTTP请求时都会导致我出错EE /许可证。

liferay正在运行的用户没有修改/ opt的权限,并且无论如何在集群环境中都是个坏主意。我不确定设置在哪里,因为当我看到所有我看到的是

  

liferay.home = $ {resource.repositories.root}

  

resource.repositories.root = $ {default.liferay.home}

我不知道default.liferay.home的定义在哪里;仍在努力。

遗憾的是,将liferay部署到集群环境还没有很好的文档记录,但我希望分享这一点对您有所帮助。

祝你好运!

答案 2 :(得分:2)

Liferay是一个Spring / Hibernate应用程序,意味着与服务器无关,大多数集群配置应该是门户(-ext).properties文件的集群部分:Hibernate,EHCache和JGroup配置。唯一的应用服务器特定配置应该是会话故障转移,就像部署的任何Web应用程序一样。