Free trial

How to run Liferay with EnterpriseDB’s PPAS as WCM

In case you are evaluating a database for your project(s), you might come across an EnterpriseDB’s Postgres Plus Advanced Server (PPAS). This database is part of an EnterpriseDB (EDB) offering, which is a company providing optimizations, support, performance and security additions and tools (such as Oracle compatibility) for Postgres SQL database.

Lately I had a need to use a database for my Liferay portal other than the one that is bundled within Liferay installation, so I have picked up EnterpriseDB’s PPAS.

Below in my article, in a couple of easy steps, I’m providing a way to configure Liferay 6.2 with an EnterpriseDB’s PPAS as a Web Content Management (WCM) database. I have used Liferay 6.2 CE GA1 bundle with Tomcat app server and Postgres Plus Advanced Server version 9.3.

Please start with following:

Place EDB’s JDBC connector into Liferay libs

PPAS is shipped with many connectors (ECPG/ODBC/JDBC). I will assume that you have installed your PPAS to /opt/ directory in your system. As Liferay connects to database through JDBC connector, it is necessary to copy or link EDB JDBC connector to lib/ext directory in Liferay’s tomcat home:

cp /opt/PostgresPlus/9*/connectors/jdbc/edb-jdbc16.jar lib/ext/edb-jdbc16.jar
        or
ln -s /opt/PostgresPlus/9*/connectors/jdbc/edb-jdbc16.jar lib/ext/edb-jdbc16.jar

This copies or creates a symbolic link to the edb-jdbc16.jar connector which is built on java JDK 1.6. You can choose edb-jdbc14.jar connector which is build on java JDK 1.4, both of them work.

Set Database dialect

Next it is necessary to tell to Liferay what dialect should be used, otherwise Liferay can’t determine dialect as it doesn’t know EnterpriseDB and deployment of Liferay will fail with following error message:

10:05:12,270 INFO  [liferay/convert_process-1][DialectDetector:71] Determine
        dialect for EnterpriseDB 9
10:05:12,272 ERROR [liferay/convert_process-1][DialectDetector:124]
        org.hibernate.HibernateException: Unable to determine Dialect to use
        [name=EnterpriseDB, majorVersion=9]; user must register resolver or
        explicitly set 'hibernate.dialect'

Edit or create portal-ext.properties file under webapps/ROOT/WEB-INF/classes/ and paste:

hibernate.dialect=org.hibernate.dialect.PostgresPlusDialect

Configure JDBC connector to EDB

All prerequisites has been met and we can configure JDBC connector itself. Open again portal-ext.properties file and paste

jdbc.default.driverClassName=com.edb.Driver
jdbc.default.url=jdbc:edb://EDB_SERVER:EDB_PORT/DB_NAME
jdbc.default.username=USERNAME
jdbc.default.password=PASSWORD

Note: Default EDB_PORT is 5444.

Start Liferay

Now you can start Liferay from Tomcat home by running

./bin/startup.sh

You can see info messages indicating usage of PostgresPlus database in logs/catalina.out log file

13:49:09,028 INFO  [localhost-startStop-1][DBFactoryImpl:59]
             Using dialect org.hibernate.dialect.PostgresPlusDialect

and Liferay configuration pages comes with filled database config

Screenshot from 2014-02-05 14:51:07

If you look at Postgres Enterprise Manager, you can see that Liferay has been setup to database you specify (in our case liferay) under public scheme.

Summary

You should be able to run a clean Liferay Portal with an EnterpriseDB’s Postgres Plus Advanced Server now and everything should be ready for you to use Liferay Portal, setup your site, create pages etc.

Enjoy!

enterprisedb liferay portal ppas

One Response to “How to run Liferay with EnterpriseDB’s PPAS as WCM”

  1. CloudBees - Liferay | Basics of Java and Cloud Computing says:

    […] How to run Liferay with EnterpriseDB’s PPAS as WCM […]

Leave a Reply

Related articles

JSON

Let’s make LLMs generate JSON!

In this article, we are going to talk about three tools that can, at least in theory, force any local LLM to produce structured output: LM Format Enforcer, Outlines, and Guidance. After a short description of each tool, we will evaluate their performance on a few test cases ranging from book recommendations to extracting information from HTML. And the best for the end, we will show you how forcing LLMs to produce a structured output can be used to solve a very common problem in many businesses: extracting structured records from free-form text.

Notiondipity: What I learned about browser extension development

Me and many of my colleagues at profiq use Notion for note-taking and work organization. Our workspaces contain a lot of knowledge about our work, plans, or the articles or books we read. At some point, a thought came to my mind: couldn’t we use all this knowledge to come up with project ideas suited to our skills and interests?

From ChatGPT to Smart Agents: The Next Frontier in App Integration

It has been over a year since OpenAI introduced ChatGPT and brought the power of AI and large language models (LLMs) to the average consumer. But we could argue that introducing APIs for seamlessly integrating large language models into apps developed by companies and independent hackers all over the world can be the true game changer in the long term. Developers are having heated discussions about how we can utilize this technology to develop truly useful apps that provide real value instead of just copying what OpenAI does. We want to contribute to this discussion by showing you how we think about developing autonomous agents at profiq. But first a bit of background.

Tags