Portal Best Practices

This article is a legacy article. It applies to previous versions of the Liferay product. While the article is no longer maintained, the information may still be applicable.

The following article lists a number of various "best practices" to keep in mind when using the Portal. The list comprises a wide variety of suggestions from application servers to browsers and portal properties. Keep these in mind if you are seeing issues related to one of these topics.


  1. persistence.provider=jpa in your portal-ext.properties currently will not work in portal-ext.properties.
    1. JPA with Liferay is possible; however it would require significant effort because it is just used for Hibernate in the backend implementation and all of our generated finders are HQL based.
    2. It is safest not to try to use JPA with Liferay because it is not a full implementation.
  2. JCRStore is no longer a recommended way to store documents for the document library.
    1. For 6.1, the recommended storage engine is as follows:
      1. AdvancedFileSystemStore
      2. DBStore.
    2. The AdvancedFileSystemStore is best for performance and scalability. However, if subscribers do not have a SAN in place and are clustering the portal, then DBStore is the next recommended feature.
    3. The Jackrabbit repository has had stability and scalability issues in the past, therefore DBStore would be recommended for storing documents in the database instead.
  3. lucene.store.type=jdbc will cause issues in the portal.
    1. This portal.property will cause several locking errors and performance issues; therefore this implementation should not be used.
  4. The document library read counter should be switched off if performance is taking a hit.
    1. It can act like a bottleneck each time the document is accessed. A link to the forum: http://www.liferay.com/community/forums/-/message_boards/message/4088704
  5. dl.file.rank.enabled=true can cause database issues.
    1. There are misleading errors for the locks that can be caused due to the dl file rank and therefore it would be best practice to set it to false.
    2. LPS-6664
  6. Internet Explorer Compatibility Modes are not supported.
    1. Liferay supports Internet Explorer 6, however there may be several UI issues that are not supported.
  7. JBoss in domain mode does not explode WAR files out.
    1. Since this is the case, there is no way for our JSP override in hooks to write to the application server. Service and Action overrides should still work though since those have nothing to do with a JSP on the file system.

Liferay Portal's JSP override mechanism relies upon the application server reloading the JSP file from the exploded WAR location. Thus, if JBoss domain mode does not support exploded context, then there is no way for the JSP hooks to work. The best practice would be not to use JBoss in domain mode or use Liferay TCat Edition which will deploy hooks with a centralized deployment server.

Was this article helpful?
0 out of 0 found this helpful