SlideShare a Scribd company logo
1 of 8
Download to read offline
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                                                                                                                                                  Blog:	
  http://musarra.wordpress.com	
  
                                                                                                                                                                                                                                   Mail:	
  antonio.musarra@gmail.com	
  
	
  

Come	
  configurare	
  Liferay	
  6.0	
  per	
  
PostgreSQL	
  
         Nel	
   precedente	
   articolo	
   Come	
   configurare	
   Eclipse	
   per	
   Liferay	
   Portal	
   in	
  
Mac	
   OS	
  X,	
   pubblicato	
   sul	
   mio	
   blog,	
   abbiamo	
   visto	
   come	
   configurare	
   un	
   ambiente	
  
di	
  sviluppo	
  completo	
  per	
  Liferay	
  6.0.	
  La	
  distribuzione	
  Liferay	
  di	
  default	
  prevede	
  
l’utilizzo	
   del	
   data	
   base	
   HSQL	
  (Hypersonic)	
   per	
   la	
   persistenza	
   dei	
   dati.	
   L’utilizzo	
   di	
  
questo	
  tipo	
  di	
  data	
  base	
  in	
  ambienti	
  di	
  produzione	
  non	
  è	
  però	
  consigliato.	
  
         Nel	
  corso	
  di	
  quest’articolo	
  vedremo	
  Step-­‐by-­‐Step	
  come	
  configurare	
  il	
  data	
  
base	
   PostgreSQL	
   per	
   la	
   persistenza	
   dei	
   dati	
   di	
   Liferay.	
   Non	
   saranno	
   affrontanti	
  
temi	
  di	
  tuning	
  e	
  performance	
  riguardo	
  questa	
  tipologia	
  di	
  configurazione.	
  
	
  


                           1. Requisiti	
  
      Per	
   terminare	
   con	
   successo	
   la	
   configurazione	
   Liferay/PostgreSQL	
   devono	
  
essere	
  soddisfatti	
  una	
  serie	
  di	
  requisiti	
  software:	
  
      	
  
                  • Liferay	
  6.0	
  
                  • PostgreSQL	
  8	
  o	
  superiore1	
  
                  • JDBC	
  Driver	
  per	
  PostgreSQL2	
  
	
  
      La	
   versione	
   Liferay	
   di	
   riferimento	
   è	
   la	
   6.0.6	
   nell’edizione	
   Community	
  
distribuita	
   con	
   il	
   Servlet	
  Container	
  Tomcat.	
   Il	
   driver	
   JDBC	
   per	
   PostgreSQL	
   è	
   già	
  
distribuito	
  con	
  la	
  versione	
  di	
  Liferay	
  e	
  risiede	
  all’interno	
  della	
  directory	
  {liferay-­‐
home}/{tomcat}/lib/ext.	
  
      	
  Il	
   driver	
   JDBC	
   per	
   PostgreSQL	
   fornito	
   con	
   Liferay	
   è	
   un	
   JDBC	
   Type	
   33.	
   Ho	
  
pubblicato	
   sul	
   mio	
   repository	
   Gist	
   JDBC	
   Type	
   Test	
   Class	
   una	
   classe	
   di	
   test	
   per	
  
identificare	
  il	
  tipo	
  di	
  driver	
  JDBC.	
  	
  
	
                                             	
  




	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
1    	
  La	
  versione	
  utilizzata	
  per	
  la	
  stesura	
  di	
  quest’articolo	
  è	
  la	
  8.4	
  installata	
  con	
  una	
  configurazione	
  di	
  default	
  sul	
  sistema	
  
operativo	
  CentOS	
  5.6	
  (virtualizzato).	
  
2	
  I	
  driver	
  JDBC	
  per	
  PostgreSQL	
  e	
  tutta	
  la	
  documentazione	
  relativa	
  sono	
  disponibili	
  all’indirizzo	
  

http://jdbc.postgresql.org/index.html	
  	
  
3	
  I	
  driver	
  di	
  tipo	
  3	
  sono	
  i	
  cosiddetti	
  net	
  driver:	
  in	
  questo	
  caso	
  il	
  driver	
  è	
  diviso	
  in	
  due	
  parti	
  come	
  il	
  tipo	
  2,	
  ma	
  i	
  due	
  strati	
  

adesso	
  comunicano	
  tramite	
  un	
  protocollo	
  proprietario	
  o	
  alle	
  volte	
  anche	
  via	
  TCP/IP	
  o	
  HTTP.	
  
	
  
16/06/11	
                                                                                                                                                                                                                1	
  

                  This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                                                                                                                                               	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                                                                                                                                                  Blog:	
  http://musarra.wordpress.com	
  
                                                                                                                                                                                                                                   Mail:	
  antonio.musarra@gmail.com	
  
	
  
                           2. Scenario	
  di	
  configurazione	
  
            Lo	
   scenario	
   affrontato	
   è	
   molto	
   semplice	
   e	
   in	
   linea	
   con	
   quanto	
   previsto	
   da	
  
Liferay	
  stessa.	
  Per	
  ragioni	
  di	
  semplicità	
  è	
  stata	
  volutamente	
  scelta	
  la	
  versione	
  di	
  
Liferay	
  che	
  include	
  Tomcat	
  (come	
  Servlet	
  Container),	
  lo	
  scenario	
  resta	
  comunque	
  
valido	
   per	
   qualunque	
   altro	
   tipo	
   di	
   Servlet	
   Container	
   o	
   Application	
   Server	
   J2EE	
  
supportati	
   da	
   Liferay.	
   Consiglio	
   la	
   lettura	
   del	
   documento	
   ufficiale	
   Liferay	
  Portal	
  
6.0	
  –	
  Administration	
  Guide	
   e	
   in	
   particolare	
   della	
   sezione	
   Installing	
  Liferay	
  on	
  an	
  
Existing	
  Application	
  Server.	
  	
  	
  	
  
	
  




                                                                                                                                                                                                                                                                        	
  
Figura	
  1	
  Scenario	
  di	
  configurazione	
  Liferay/PostgreSQL	
  per	
  la	
  persistenza	
  dei	
  dati.	
  

	
  
      La	
   Figura	
   1	
   mostra	
   lo	
   scenario	
   di	
   configurazione	
   desiderato	
   per	
   la	
   nostra	
  
installazione	
   di	
   Liferay	
   Portal	
   Server.	
   Nel	
   diagramma	
   sono	
   indicate	
   le	
  
configurazioni	
   di	
   rete	
   (che	
   nel	
   vostro	
   caso	
   potrebbero	
   essere	
   anche	
   diverse)	
   a	
  
scopo	
  puramente	
  dimostrativo.	
  	
  
      La	
  connessione	
  verso	
  il	
  data	
  base	
  sarà	
  eseguita	
  e	
  gestita	
  attraverso	
  un	
  JDBC	
  
Connection	
   Pool4	
  configurato	
   sul	
   Servlet	
   Container	
   o	
   Application	
   Server.	
   Gli	
   step	
  
necessari	
   al	
   completamento	
   della	
   configurazione	
   che	
   vedremo	
   nel	
   resto	
   dei	
  
successivi	
  paragrafi	
  sono:	
  
      	
  
             • Configurazione	
  del	
  data	
  base;	
  
             • Configurazione	
  del	
  Connection	
  Pool;	
  
             • Configurazione	
  di	
  Liferay	
  Portal.	
  
	
  



	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
4	
  Consiglio	
  la	
  lettura	
  dei	
  documenti	
  Connection	
  Pool	
  e	
  JDBC	
  Connection	
  Pooling	
  Best	
  Practices	
  
16/06/11	
                                                                                                                                                                                                                                                                     2	
  

                  This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                                                                                                                                                  	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                          Blog:	
  http://musarra.wordpress.com	
  
                                                                                                           Mail:	
  antonio.musarra@gmail.com	
  
	
  
         3. Configurazione	
  di	
  PostgreSQL	
  
         Liferay	
  richiede	
  che	
  il	
  data	
  base	
  sui	
  cui	
  si	
  vuol	
  fare	
  la	
  persistenza	
  dei	
  dati	
  
sia	
   correttamente	
   configurato,	
   ciò	
   si	
   traduce	
   nell’espletamento	
   dei	
   seguenti	
  
punti:	
  
         	
  
              • Configurazione	
  dei	
  parametri	
  di	
  rete;	
  
              • Creazione	
  dell’utente	
  che	
  accederà	
  al	
  data	
  base;	
  
              • Creazione	
  del	
  data	
  base	
  che	
  ospiterà	
  i	
  dati	
  di	
  Liferay.	
  
	
  
         Per	
   rispondere	
   al	
   primo	
   punto	
   indicato	
   sopra,	
   è	
   necessario	
   accertarsi	
   che	
  
PostgreSQL	
   sia	
   configurato	
   in	
   modo	
   tale	
   che	
   sia	
   in	
   listen	
   sull’interfaccia	
   di	
   rete	
  
che	
   sarà	
   poi	
   utilizzata	
   per	
   la	
   connessione	
   da	
   parte	
   di	
   Liferay.	
   La	
   verifica	
   ed	
  
eventuale	
   modifica	
   dei	
   parametri	
   di	
   rete	
   è	
   abbastanza	
   semplice.	
   	
   Attraverso	
   il	
  
comando	
   mostrato	
   nel	
   Listato	
   1	
   verifichiamo	
   che	
   il	
   data	
   base	
   sia	
   in	
   listen	
   sulla	
  
corretta	
  interfaccia	
  di	
  rete,	
  così	
  come	
  indicato	
  in	
  Figura	
  1.	
  
	
  
# netstat -tanp | grep LISTEN | grep 5432

Listato	
  1	
  Comando	
  per	
  la	
  verifica	
  del	
  servizio	
  TCP/IP	
  di	
  PostgreSQL.	
  

	
  

tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 9177/postmaster

Listato	
  2	
  Output	
  del	
  comando	
  netstat.	
  

	
  
       L’output	
   del	
   comando	
   evidenzia	
   che	
   il	
   data	
   base	
   è	
   il	
   listen	
   solamente	
  
sull’interfaccia	
   di	
   loopback	
   (127.0.0.1),	
   occorre	
   quindi	
   configurare	
   il	
   servizio	
  
TCP/IP	
   del	
   data	
   base	
   in	
   listen	
   sull’interfaccia	
   avente	
   l’indirizzo	
   IP	
   impostato	
   a	
  
192.168.56.101.	
   Il	
   file	
   configurazione	
   interessato	
   alla	
   modifica	
   è	
   mostrato	
   al	
  
Listato	
   3.	
   E’	
   stato	
   aggiunto	
   l’indirizzo	
   192.168.56.101	
   su	
   cui	
   accettare	
  
connessioni	
   TCP/IP	
   in	
   ingresso.	
   Affinché	
   la	
   modifica	
   sia	
   applicata,	
   sarà	
  
necessario	
  eseguire	
  il	
  restart	
  del	
  data	
  base.	
  
	
  
#----------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#----------------------------------------------------------------

#      - Connection Settings -
#      What IP address(es) to listen on;
#      Comma-separated list of addresses;
#      Defaults to 'localhost','*' = all

listen_addresses = '127.0.0.1,192.168.56.101'

Listato	
  3	
  File	
  di	
  configurazione	
  postgresql.conf.	
  

            Eseguendo	
   nuovamente	
   il	
   comando	
   mostrato	
   nel	
   Listato	
   1	
   vedremo	
   che	
  
oltre	
   l’indirizzo	
   di	
   loopback	
   	
   in	
   listen	
   sulla	
   porta	
   TCP/IP	
   5432,	
   sarà	
   presente	
  
anche	
   il	
   nuovo	
   indirizzo,	
   così	
   come	
   illustrato	
   al	
   Listato	
   4.	
   La	
   porta	
   TCP/IP	
  
assegnata	
  da	
  Internet	
  Assigned	
  Numbers	
  Authority	
  -­‐	
  IANA	
  al	
  servizio	
  del	
  data	
   base	
  
è	
  la	
  5432,	
  sui	
  sistemi	
  Unix/Linux/BSD	
  consultare	
  il	
  file	
  /etc/services.	
  	
  
16/06/11	
                                                                                                                                             3	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                          Blog:	
  http://musarra.wordpress.com	
  
                                                                                                           Mail:	
  antonio.musarra@gmail.com	
  
	
  
	
  
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 9177/postmaster
tcp 0 0 192.168.56.101:5432 0.0.0.0:* LISTEN 9177/postmaster

Listato	
  4	
  Output	
  del	
  comando	
  netstat	
  dopo	
  la	
  modifica	
  della	
  configurazione	
  di	
  PostgreSQL.	
  

	
  
          Completata	
  la	
  configurazione	
  del	
  servizio	
  TCP/IP	
  del	
  data	
  base,	
  è	
  possibile	
  
proseguire	
   con	
   la	
   creazione	
   dell’utenza	
   che	
   sarà	
   utilizzata	
   da	
   Liferay	
   per	
   la	
  
connessione	
  e	
  tutte	
  le	
  altre	
  operazioni	
  necessarie	
  (sia	
  DML	
  sia	
  DDL).	
  Il	
  comando	
  
a	
   seguire	
   è	
   responsabile	
   della	
   creazione	
   dell’utente	
   liferay-­‐1,	
   per	
   ragioni	
   di	
  
sicurezza	
   l’utenza	
   è	
   stata	
   creata	
   con	
   qualche	
   limite,	
   infatti,	
   è	
   consigliabile	
  
limitare	
  il	
  raggio	
  d’azione	
  dell’utenza	
  al	
  solo	
  schema	
  di	
  competenza.	
  	
  
          Generalmente	
  i	
  comandi	
  che	
  agiscono	
  sul	
  data	
  base	
  devono	
  essere	
  eseguiti	
  
con	
  il	
  grado	
  di	
   dba,	
   l’utenza	
   di	
   default	
  del	
   sistema	
   operativo	
   avente	
   il	
   ruolo	
   dba	
  è	
  
postgres.	
  
	
  
	
  
$ createuser -D -R -S -e -E -P liferay-1

	
  Listato	
  5	
  Creazione	
  dell’utente	
  liferay-­‐1.	
  

	
  
          Il	
   comando	
   chiederà	
   l’immissione	
   di	
   una	
   password	
   a	
   vostra	
   scelta,	
   in	
  
questo	
  caso	
  la	
  password	
  assegnata	
  è	
  liferay12345.	
  	
  
          Per	
   terminare	
   la	
   configurazione	
   dell’utente,	
   serve	
   istruire	
   il	
   data	
   base	
  
affinché	
   consenta	
   connessioni	
   in	
   ingresso	
   da	
   parte	
   dell’utente	
   appena	
   creato	
  
dalla	
   rete	
   di	
   classe	
   192.168.56.0/24,	
   per	
   far	
   ciò	
   bisogna	
   aggiungere	
   una	
   nuova	
  
direttiva	
  al	
  file	
  di	
  configurazione	
  pg_hba.conf.	
  
	
  
	
  
# PostgreSQL Client Authentication Configuration File
# ===================================================

# TYPE              DATABASE                  USER         CIDR-ADDRESS                           METHOD

# "local" is for Unix domain socket connections only
local   all         all                                                                           ident

# IPv4 local connections:
host    all         all                                    127.0.0.1/32                           ident
host    all         all                                    127.0.0.1/32                           md5
host    all         all                                    172.16.1.0/24                          md5
host    all         all                                    192.168.56.0/24                        md5

Listato	
  6	
  Aggiunta	
  dell’autorizzazione	
  di	
  connessione	
  da	
  reti	
  192.168.56.0/24.	
  

	
  
         L’ultima	
   opera	
   di	
   configurazione	
   è	
   quella	
   più	
   importante,	
   la	
   creazione	
   del	
  
data	
   base	
   che	
   chiameremo	
   liferay-­‐1,	
   così	
   come	
   l’utente.	
   Sempre	
   con	
   il	
   grado	
   di	
  
dba	
  procediamo	
  con	
  il	
  comando	
  illustrato	
  nel	
  Listato	
  7.	
  
	
  
$ createdb -e -E UTF-8 -O liferay-1 liferay-1

Listato	
  7	
  Creazione	
  del	
  data	
  base	
  liferay-­‐1.	
  

             	
  

16/06/11	
                                                                                                                                             4	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                              Blog:	
  http://musarra.wordpress.com	
  
                                                                                                               Mail:	
  antonio.musarra@gmail.com	
  
	
  
      Il	
  data	
  base	
  è	
  stato	
  creato	
  con	
  un	
  tipo	
  di	
  encoding	
  UTF-­‐8	
  e	
  owner	
  l’utente	
  
liferay-­‐1	
   creato	
   in	
   precedenza.	
   Dopo	
   il	
   riavvio	
   del	
   data	
   base,	
   necessario	
   per	
  
applicare	
   le	
   nuove	
   regole	
   di	
   connessione,	
   è	
   possibile	
   verificare	
   che	
   la	
   nuova	
  
configurazione	
  funzioni	
  correttamente.	
  La	
  verifica	
  è	
  molto	
  semplice,	
  basterebbe	
  
eseguire	
  una	
  connessione	
  con	
  un	
  qualunque	
  tipo	
  di	
  client,	
  il	
  comando	
  a	
  seguire	
  
mostra	
   una	
   connessione	
   al	
   data	
   base	
   creato	
   in	
   precedenza	
   utilizzando	
   il	
   client	
  
pgsql.	
  
	
  
$ psql -h 192.168.56.101 -U liferay-1 liferay-1

Listato	
  8	
  Connessione	
  al	
  data	
  base	
  di	
  Liferay.	
  

	
  
	
  
psql (8.4.7)

liferay-1=> l
                                  List of databases
   Name    |   Owner   | Encoding | Collation |      Ctype    |   Access privileges
-----------+-----------+----------+-------------+-------------+-----------------------
 liferay-1 | liferay-1 | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres | postgres | UTF8       | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8      | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                              : postgres=CTc/postgres
 template1 | postgres | UTF8      | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                              : postgres=CTc/postgres
(4 rows)

liferay-1=>

Listato	
  9	
  Vista	
  dei	
  data	
  base	
  dopo	
  la	
  connessione	
  al	
  data	
  base	
  liferay-­‐1.	
  

	
  
         Con	
   quest’ultima	
   verifica	
   la	
   configurazione	
   di	
   PostgreSQL	
   è	
   ultimata	
   e	
   il	
  
data	
   base	
   è	
   pronto	
   per	
   ospitare	
   i	
   dati	
   di	
   Liferay.	
   E’	
   possibile	
   approfondire	
   la	
  
configurazione	
   trattata	
   in	
   questo	
   paragrafo	
   consultando	
   la	
   documentazione	
  
ufficiale	
  PostgreSQL	
  8.4	
  Server	
  Administration.	
  
	
  


         4. Configurazione	
  di	
  Tomcat	
  
         Il	
   nostro	
   scenario	
   di	
   configurazione	
   (vedere	
   la	
   Figura	
   1)	
   prevede	
   che	
   la	
  
connessione	
   verso	
   il	
   data	
   base	
   PostgreSQL	
   sia	
   gestita	
   attraverso	
   un	
   Connection	
  
Pool.	
  La	
  configurazione	
  di	
  un	
  Database	
  Connection	
  Pool	
  (DBCP)	
  su	
  Tomcat	
  come	
  
risorsa	
   Java	
   Naming	
   and	
   Directory	
   Interface	
   (JNDI)	
   è	
   molto	
   semplice.	
   La	
  
documentazione	
   Apache	
   Tomcat	
   6.0	
   -­‐	
   JNDI	
   Datasource	
   HOW-­‐TO	
   è	
   ben	
   fatta	
   e	
  
molto	
   chiara,	
   comprende	
   inoltre	
   anche	
   il	
   caso	
   di	
   configurazione	
   per	
   un	
   RDBMS	
  
PostgreSQL.	
   Nel	
   Listato	
   10	
   la	
   configurazione	
   della	
   risorsa	
   definita	
   come	
  
jdbc/LiferayPool.	
  
	
  
<Resource name="jdbc/LiferayPool" auth="Container" type="javax.sql.DataSource"
      maxActive="100" maxIdle="30" maxWait="10000"
      username="liferay-1" password="liferay12345"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://liferay-portal-db-1.local:5432/liferay-1?charSet=UTF-8"/>

Listato	
  10	
  Parte	
  del	
  file	
  di	
  configurazione	
  context.xml.	
  

16/06/11	
                                                                                                                                                 5	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                              	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                          Blog:	
  http://musarra.wordpress.com	
  
                                                                                                           Mail:	
  antonio.musarra@gmail.com	
  
	
  
      Il	
   file	
   di	
   configurazione	
   completo	
   è	
   disponibile	
   sul	
   mio	
   repository	
   Gist	
  
all’indirizzo	
   Apache	
   Tomcat	
   6.0	
   -­‐	
   JNDI	
   Datasource.	
   Il	
   file	
   di	
   configurazione	
  
context.xml	
  è	
  locato	
  in	
  {liferay-­‐home}/{tomcat}/conf.	
  
	
  


         5. Configurazione	
  di	
  Liferay	
  
       La	
   configurazione	
   del	
   data	
   base	
   nella	
   versione	
   6.0	
   di	
   Liferay	
   è	
   rimasta	
  
uguale	
  alla	
  precedente	
  release	
  5.2.	
  Il	
  nostro	
  scenario	
  di	
  configurazione	
  prevede	
  
l’utilizzo	
   di	
   un	
   Database	
   Connection	
   Pool	
   (DBCP)	
   configurato	
   in	
   precedenza	
   ed	
  
esposto	
  come	
  risorsa	
  JNDI.	
  	
  
       In	
   maniera	
   molto	
   semplice	
   è	
   possibile	
   indicare	
   a	
   Liferay	
   il	
   nome	
   della	
  
risorsa	
  JNDI	
  all’interno	
  del	
  file	
  di	
  properties	
  portal-­‐ext.properties	
  specificando	
  la	
  
proprietà	
  indicata	
  al	
  Listato	
  11.	
  
	
  
	
  
jdbc.default.jndi.name=jdbc/LiferayPool

Listato	
  11	
  Configurazione	
  del	
  data	
  base	
  via	
  JNDI.	
  

        La	
   directory	
   {liferay-­‐home}/{tomcat}/webapps/ROOT/WEB-­‐INF/classes	
  
contiene	
   il	
   file	
  portal-­‐ext.properties.	
   Non	
   è	
   detto	
   che	
   il	
   file	
   sia	
   presente,	
   qualora	
  
non	
  fosse	
  presente,	
  occorre	
  crearlo	
  da	
  zero	
  e	
  conterrà	
  la	
  sola	
  riga	
  mostrato	
  nel	
  
procedente	
  listato.	
  
	
  


         6. Start	
  di	
  Liferay	
  con	
  la	
  nuova	
  configurazione	
  
         Dopo	
   aver	
   completato	
   tutte	
   le	
   fasi	
   di	
   configurazione,	
   possiamo	
   procedere	
  
con	
  l’avvio	
  di	
  Liferay	
  Portal	
  e	
  verificare	
  che	
  la	
  nuova	
  configurazione	
  funzioni	
  in	
  
modo	
  corretto.	
  	
  
         Il	
   primo	
   avvio	
   è	
   quello	
   più	
   delicato	
   che	
   richiederà	
   un	
   tempo	
   di	
   start-­‐up	
  
superiore	
   al	
   normale	
   per	
   via	
   del	
   setup	
   (che	
   include	
   numerose	
   operazioni)	
  
richiesto	
   per	
   il	
   nuovo	
   data	
   base	
   PostgreSQL.	
   Al	
   Listato	
   12	
   sono	
   mostrate	
   le	
  
informazioni	
  più	
  rilevanti	
  estratte	
  dal	
  file	
  di	
  log	
  catalina.out	
  di	
  Tomcat.	
  
	
  
Loading file:/opt/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-
INF/classes/portal-ext.properties
12:45:34,784 INFO [DialectDetector:69] Determining dialect for PostgreSQL 8
12:45:34,890 INFO [DialectDetector:49] Using dialect
org.hibernate.dialect.PostgreSQLDialect
Starting Liferay Portal Community Edition 6.0.6 CE (Bunyan / Build 6006 / February 17,
2011)
12:45:50,056 ERROR [JDBCExceptionReporter:101] ERROR: relation "lock_" does not exist
  Position: 403
12:45:50,585 WARN [ReleaseLocalServiceImpl:143] ERROR: relation "release_" does not
exist
  Position: 25
12:45:50,588 INFO [ReleaseLocalServiceImpl:84] Create tables and populate with
default data
12:45:54,093 INFO [BaseDB:400] Database supports case sensitive queries
12:46:06,270 INFO [ServiceComponentLocalServiceImpl:187] Running Chat SQL scripts
12:46:13,704 INFO [ServiceComponentLocalServiceImpl:187] Running Kaleo SQL scripts
12:46:14,957 INFO [ServiceComponentLocalServiceImpl:187] Running Mail SQL scripts

	
  Listato	
  12	
  Estratto	
  dal	
  file	
  log	
  catalina.out	
  al	
  primo	
  avvio.	
  
16/06/11	
                                                                                                                                             6	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                          Blog:	
  http://musarra.wordpress.com	
  
                                                                                                           Mail:	
  antonio.musarra@gmail.com	
  
	
  
     Non	
   appena	
   il	
   server	
   avrà	
   completato	
   la	
   fase	
   di	
   start-­‐up,	
   sarà	
   possibile	
  
accedere	
   a	
   Liferay	
   puntando	
   all’indirizzo	
   http://liferay-­‐portal-­‐fe-­‐1.local:8080.	
   In	
  
Figura	
  2	
  è	
  mostrato	
  il	
  pannello	
  di	
  controllo	
  nella	
  sezione	
  delle	
  info	
  utente.	
  
	
  
	
  




                                                                                                                                                            	
  
	
  Figura	
  2	
  Pannello	
  di	
  controllo	
  Liferay	
  dopo	
  l’avvio.	
  

	
  
         	
  L’esecuzione	
   del	
   comando	
   netstat	
   (così	
   come	
   indicato	
   nel	
   Listato	
   13)	
   su	
  
una	
   delle	
   due	
   macchine,	
   mostra	
   le	
   connessioni	
   attive	
   verso	
   la	
   base	
   dati.	
   Nel	
  
comando	
  è	
  stato	
  volutamente	
  omesso	
  il	
  parametro	
  n	
  in	
  modo	
  che	
  sia	
  eseguito	
  il	
  
lookup	
  degli	
  indirizzi	
  IP	
  nei	
  rispettivi	
  nomi.	
  
         	
  
	
  
# netstat -ta | grep ESTABLISHED | grep postgres

Listato	
  13	
  Comando	
  netstat	
  per	
  la	
  visualizzazione	
  delle	
  connessioni	
  verso	
  PostgreSQL.	
  

	
  
tcp      0   0    liferay-portal-db-:postgres                     liferay-portal-fe-1.l:49784                      ESTABLISHED
tcp      0   0    liferay-portal-db-:postgres                     liferay-portal-fe-1.l:49737                      ESTABLISHED
tcp      0   0    liferay-portal-db-:postgres                     liferay-portal-fe-1.l:49739                      ESTABLISHED
tcp      0   0    liferay-portal-db-:postgres                     liferay-portal-fe-1.l:49740                      ESTABLISHED

	
  Listato	
  14	
  Output	
  del	
  comando	
  netstat.	
  

	
  


16/06/11	
                                                                                                                                             7	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                          Blog:	
  http://musarra.wordpress.com	
  
                                                                                                           Mail:	
  antonio.musarra@gmail.com	
  
	
  
         7. Risorse	
  
        A	
  seguire	
  una	
  breve	
  lista	
  delle	
  risorse	
  disponibili	
  in	
  rete	
  che	
  possono	
  essere	
  
rilevanti	
  come	
  approfondimento	
  del	
  tema	
  trattato	
  da	
  quest’articolo.	
  
	
  
Item	
   Nome	
  risorsa	
                                                           Descrizione	
  
1	
       Installing	
  Liferay	
  for	
  an	
  Enterprise	
                         Questo	
  documento	
  
                                                                                     descrive	
  l’installazione	
  di	
  
                                                                                     Liferay	
  in	
  ambienti	
  di	
  
                                                                                     tipo	
  Enterprise	
  e	
  le	
  
                                                                                     pratiche	
  più	
  comuni.	
  
2	
       Installing	
  a	
  Bundle	
                                                Questo	
  documento	
  
                                                                                     descrive	
  la	
  struttura	
  del	
  
                                                                                     bundle	
  e	
  la	
  relativa	
  
                                                                                     installazione.	
  
3	
       Liferay	
  Wiki	
  Guide	
                                                 Wiki	
  di	
  raccolta	
  articoli	
  
                                                                                     forniti	
  dallo	
  staff	
  di	
  
                                                                                     Liferay	
  e	
  dalla	
  comunità.	
  	
  
4	
       Database	
  Configuration	
                                                Questo	
  documento	
  
                                                                                     contiene	
  informazioni	
  su	
  
                                                                                     come	
  cambiare	
  l’RDBMS	
  
                                                                                     di	
  default.	
  
	
  


         8. Conclusioni	
  
         Sono	
   appena	
   al	
   mio	
   terzo	
   giorno	
   di	
   convivenza	
   con	
   Liferay,	
   e	
   proprio	
   in	
  
questo	
   giorno	
   ho	
   deciso	
   di	
   togliere	
   HSQL	
   è	
   mettere	
   sotto	
   il	
   cofano	
   di	
   Liferay	
   il	
  
data	
   base	
   PostgreSQL.	
   L’esperienza	
   su	
   questo	
   tipo	
   di	
   configurazione	
   è	
   stata	
  
molto	
   positiva,	
   riscontrando	
   semplicità	
   e	
   immediatezza	
   davvero	
   notevoli,	
  
probabilmente	
   il	
   framework	
   Spring	
   in	
   coppia	
   con	
   l’ORM	
   Hibernate	
   sono	
   i	
  
“benefattori”.	
   Non	
   sarebbe	
   stato	
   male	
   consentire	
   come	
   possibilità	
   la	
   creazione	
  
automatica	
  del	
  data	
  base.	
  	
  




16/06/11	
                                                                                                                                             8	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  

More Related Content

What's hot

Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Antonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRMAntonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Running Kettle Job by API
Running Kettle Job by APIRunning Kettle Job by API
Running Kettle Job by APIAntonio Musarra
 
Configure Kettle debug session
Configure Kettle debug sessionConfigure Kettle debug session
Configure Kettle debug sessionAntonio Musarra
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideAntonio Musarra
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriAlessandro Nadalin
 
#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven Worldkino2k
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
PHP Documentation APIs on the fly
PHP Documentation APIs on the flyPHP Documentation APIs on the fly
PHP Documentation APIs on the flyAntonio Musarra
 
Linux Day2008 Wordpress
Linux Day2008 WordpressLinux Day2008 Wordpress
Linux Day2008 Wordpresstonibottos
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Claudio Cardinali
 

What's hot (20)

Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRM
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
J-SugarCRM UserSync 1.0
J-SugarCRM UserSync 1.0J-SugarCRM UserSync 1.0
J-SugarCRM UserSync 1.0
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
 
Running Kettle Job by API
Running Kettle Job by APIRunning Kettle Job by API
Running Kettle Job by API
 
Configure Kettle debug session
Configure Kettle debug sessionConfigure Kettle debug session
Configure Kettle debug session
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuide
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
PHP Documentation APIs on the fly
PHP Documentation APIs on the flyPHP Documentation APIs on the fly
PHP Documentation APIs on the fly
 
Linux Day2008 Wordpress
Linux Day2008 WordpressLinux Day2008 Wordpress
Linux Day2008 Wordpress
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
 

Viewers also liked

Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)Antonio Musarra
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Antonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Antonio Musarra
 

Viewers also liked (8)

Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Introduzione al Web 2.0
Introduzione al Web 2.0Introduzione al Web 2.0
Introduzione al Web 2.0
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 

Similar to Come configurare Liferay 6.0 per PostgreSQL

Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkMassimo Schiro
 
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione DoceboFormaLms
 
Distribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverDistribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverGianluca Gimigliano
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansDavide Nardone
 
Creazione di una REST API in Liferay
Creazione di una REST API in LiferayCreazione di una REST API in Liferay
Creazione di una REST API in LiferayNunzio Mastrapasqua
 
Azure cointainer instances e sql server
Azure cointainer instances e sql serverAzure cointainer instances e sql server
Azure cointainer instances e sql serverDanilo Dominici
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.Paolo Valenti
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...MariaDB plc
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPressPaolo Valenti
 
Drupal - per chi vuole iniziare
Drupal - per chi vuole iniziareDrupal - per chi vuole iniziare
Drupal - per chi vuole iniziareSalvatore Paone
 
Extended summary of “Understanding the Performance Costs and Benefits of Pri...
Extended summary of “Understanding the Performance Costs  and Benefits of Pri...Extended summary of “Understanding the Performance Costs  and Benefits of Pri...
Extended summary of “Understanding the Performance Costs and Benefits of Pri...RiccardoDeMonte
 
Sencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceSencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceGiuseppe Toto
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 

Similar to Come configurare Liferay 6.0 per PostgreSQL (20)

Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione Docebo
 
TesiEtta
TesiEttaTesiEtta
TesiEtta
 
Distribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverDistribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più server
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with Netbeans
 
Creazione di una REST API in Liferay
Creazione di una REST API in LiferayCreazione di una REST API in Liferay
Creazione di una REST API in Liferay
 
Azure cointainer instances e sql server
Azure cointainer instances e sql serverAzure cointainer instances e sql server
Azure cointainer instances e sql server
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPress
 
Drupal - per chi vuole iniziare
Drupal - per chi vuole iniziareDrupal - per chi vuole iniziare
Drupal - per chi vuole iniziare
 
Corso Java 2 - AVANZATO
Corso Java 2 - AVANZATOCorso Java 2 - AVANZATO
Corso Java 2 - AVANZATO
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
Extended summary of “Understanding the Performance Costs and Benefits of Pri...
Extended summary of “Understanding the Performance Costs  and Benefits of Pri...Extended summary of “Understanding the Performance Costs  and Benefits of Pri...
Extended summary of “Understanding the Performance Costs and Benefits of Pri...
 
Sencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceSencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codice
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Swagger con JBoss
Swagger con JBossSwagger con JBoss
Swagger con JBoss
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 

Come configurare Liferay 6.0 per PostgreSQL

  • 1. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     Come  configurare  Liferay  6.0  per   PostgreSQL   Nel   precedente   articolo   Come   configurare   Eclipse   per   Liferay   Portal   in   Mac   OS  X,   pubblicato   sul   mio   blog,   abbiamo   visto   come   configurare   un   ambiente   di  sviluppo  completo  per  Liferay  6.0.  La  distribuzione  Liferay  di  default  prevede   l’utilizzo   del   data   base   HSQL  (Hypersonic)   per   la   persistenza   dei   dati.   L’utilizzo   di   questo  tipo  di  data  base  in  ambienti  di  produzione  non  è  però  consigliato.   Nel  corso  di  quest’articolo  vedremo  Step-­‐by-­‐Step  come  configurare  il  data   base   PostgreSQL   per   la   persistenza   dei   dati   di   Liferay.   Non   saranno   affrontanti   temi  di  tuning  e  performance  riguardo  questa  tipologia  di  configurazione.     1. Requisiti   Per   terminare   con   successo   la   configurazione   Liferay/PostgreSQL   devono   essere  soddisfatti  una  serie  di  requisiti  software:     • Liferay  6.0   • PostgreSQL  8  o  superiore1   • JDBC  Driver  per  PostgreSQL2     La   versione   Liferay   di   riferimento   è   la   6.0.6   nell’edizione   Community   distribuita   con   il   Servlet  Container  Tomcat.   Il   driver   JDBC   per   PostgreSQL   è   già   distribuito  con  la  versione  di  Liferay  e  risiede  all’interno  della  directory  {liferay-­‐ home}/{tomcat}/lib/ext.    Il   driver   JDBC   per   PostgreSQL   fornito   con   Liferay   è   un   JDBC   Type   33.   Ho   pubblicato   sul   mio   repository   Gist   JDBC   Type   Test   Class   una   classe   di   test   per   identificare  il  tipo  di  driver  JDBC.                                                                                                                         1  La  versione  utilizzata  per  la  stesura  di  quest’articolo  è  la  8.4  installata  con  una  configurazione  di  default  sul  sistema   operativo  CentOS  5.6  (virtualizzato).   2  I  driver  JDBC  per  PostgreSQL  e  tutta  la  documentazione  relativa  sono  disponibili  all’indirizzo   http://jdbc.postgresql.org/index.html     3  I  driver  di  tipo  3  sono  i  cosiddetti  net  driver:  in  questo  caso  il  driver  è  diviso  in  due  parti  come  il  tipo  2,  ma  i  due  strati   adesso  comunicano  tramite  un  protocollo  proprietario  o  alle  volte  anche  via  TCP/IP  o  HTTP.     16/06/11   1   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 2. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     2. Scenario  di  configurazione   Lo   scenario   affrontato   è   molto   semplice   e   in   linea   con   quanto   previsto   da   Liferay  stessa.  Per  ragioni  di  semplicità  è  stata  volutamente  scelta  la  versione  di   Liferay  che  include  Tomcat  (come  Servlet  Container),  lo  scenario  resta  comunque   valido   per   qualunque   altro   tipo   di   Servlet   Container   o   Application   Server   J2EE   supportati   da   Liferay.   Consiglio   la   lettura   del   documento   ufficiale   Liferay  Portal   6.0  –  Administration  Guide   e   in   particolare   della   sezione   Installing  Liferay  on  an   Existing  Application  Server.             Figura  1  Scenario  di  configurazione  Liferay/PostgreSQL  per  la  persistenza  dei  dati.     La   Figura   1   mostra   lo   scenario   di   configurazione   desiderato   per   la   nostra   installazione   di   Liferay   Portal   Server.   Nel   diagramma   sono   indicate   le   configurazioni   di   rete   (che   nel   vostro   caso   potrebbero   essere   anche   diverse)   a   scopo  puramente  dimostrativo.     La  connessione  verso  il  data  base  sarà  eseguita  e  gestita  attraverso  un  JDBC   Connection   Pool4  configurato   sul   Servlet   Container   o   Application   Server.   Gli   step   necessari   al   completamento   della   configurazione   che   vedremo   nel   resto   dei   successivi  paragrafi  sono:     • Configurazione  del  data  base;   • Configurazione  del  Connection  Pool;   • Configurazione  di  Liferay  Portal.                                                                                                                     4  Consiglio  la  lettura  dei  documenti  Connection  Pool  e  JDBC  Connection  Pooling  Best  Practices   16/06/11   2   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 3. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     3. Configurazione  di  PostgreSQL   Liferay  richiede  che  il  data  base  sui  cui  si  vuol  fare  la  persistenza  dei  dati   sia   correttamente   configurato,   ciò   si   traduce   nell’espletamento   dei   seguenti   punti:     • Configurazione  dei  parametri  di  rete;   • Creazione  dell’utente  che  accederà  al  data  base;   • Creazione  del  data  base  che  ospiterà  i  dati  di  Liferay.     Per   rispondere   al   primo   punto   indicato   sopra,   è   necessario   accertarsi   che   PostgreSQL   sia   configurato   in   modo   tale   che   sia   in   listen   sull’interfaccia   di   rete   che   sarà   poi   utilizzata   per   la   connessione   da   parte   di   Liferay.   La   verifica   ed   eventuale   modifica   dei   parametri   di   rete   è   abbastanza   semplice.     Attraverso   il   comando   mostrato   nel   Listato   1   verifichiamo   che   il   data   base   sia   in   listen   sulla   corretta  interfaccia  di  rete,  così  come  indicato  in  Figura  1.     # netstat -tanp | grep LISTEN | grep 5432 Listato  1  Comando  per  la  verifica  del  servizio  TCP/IP  di  PostgreSQL.     tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 9177/postmaster Listato  2  Output  del  comando  netstat.     L’output   del   comando   evidenzia   che   il   data   base   è   il   listen   solamente   sull’interfaccia   di   loopback   (127.0.0.1),   occorre   quindi   configurare   il   servizio   TCP/IP   del   data   base   in   listen   sull’interfaccia   avente   l’indirizzo   IP   impostato   a   192.168.56.101.   Il   file   configurazione   interessato   alla   modifica   è   mostrato   al   Listato   3.   E’   stato   aggiunto   l’indirizzo   192.168.56.101   su   cui   accettare   connessioni   TCP/IP   in   ingresso.   Affinché   la   modifica   sia   applicata,   sarà   necessario  eseguire  il  restart  del  data  base.     #---------------------------------------------------------------- # CONNECTIONS AND AUTHENTICATION #---------------------------------------------------------------- # - Connection Settings - # What IP address(es) to listen on; # Comma-separated list of addresses; # Defaults to 'localhost','*' = all listen_addresses = '127.0.0.1,192.168.56.101' Listato  3  File  di  configurazione  postgresql.conf.   Eseguendo   nuovamente   il   comando   mostrato   nel   Listato   1   vedremo   che   oltre   l’indirizzo   di   loopback     in   listen   sulla   porta   TCP/IP   5432,   sarà   presente   anche   il   nuovo   indirizzo,   così   come   illustrato   al   Listato   4.   La   porta   TCP/IP   assegnata  da  Internet  Assigned  Numbers  Authority  -­‐  IANA  al  servizio  del  data   base   è  la  5432,  sui  sistemi  Unix/Linux/BSD  consultare  il  file  /etc/services.     16/06/11   3   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 4. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com       tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 9177/postmaster tcp 0 0 192.168.56.101:5432 0.0.0.0:* LISTEN 9177/postmaster Listato  4  Output  del  comando  netstat  dopo  la  modifica  della  configurazione  di  PostgreSQL.     Completata  la  configurazione  del  servizio  TCP/IP  del  data  base,  è  possibile   proseguire   con   la   creazione   dell’utenza   che   sarà   utilizzata   da   Liferay   per   la   connessione  e  tutte  le  altre  operazioni  necessarie  (sia  DML  sia  DDL).  Il  comando   a   seguire   è   responsabile   della   creazione   dell’utente   liferay-­‐1,   per   ragioni   di   sicurezza   l’utenza   è   stata   creata   con   qualche   limite,   infatti,   è   consigliabile   limitare  il  raggio  d’azione  dell’utenza  al  solo  schema  di  competenza.     Generalmente  i  comandi  che  agiscono  sul  data  base  devono  essere  eseguiti   con  il  grado  di   dba,   l’utenza   di   default  del   sistema   operativo   avente   il   ruolo   dba  è   postgres.       $ createuser -D -R -S -e -E -P liferay-1  Listato  5  Creazione  dell’utente  liferay-­‐1.     Il   comando   chiederà   l’immissione   di   una   password   a   vostra   scelta,   in   questo  caso  la  password  assegnata  è  liferay12345.     Per   terminare   la   configurazione   dell’utente,   serve   istruire   il   data   base   affinché   consenta   connessioni   in   ingresso   da   parte   dell’utente   appena   creato   dalla   rete   di   classe   192.168.56.0/24,   per   far   ciò   bisogna   aggiungere   una   nuova   direttiva  al  file  di  configurazione  pg_hba.conf.       # PostgreSQL Client Authentication Configuration File # =================================================== # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 host all all 172.16.1.0/24 md5 host all all 192.168.56.0/24 md5 Listato  6  Aggiunta  dell’autorizzazione  di  connessione  da  reti  192.168.56.0/24.     L’ultima   opera   di   configurazione   è   quella   più   importante,   la   creazione   del   data   base   che   chiameremo   liferay-­‐1,   così   come   l’utente.   Sempre   con   il   grado   di   dba  procediamo  con  il  comando  illustrato  nel  Listato  7.     $ createdb -e -E UTF-8 -O liferay-1 liferay-1 Listato  7  Creazione  del  data  base  liferay-­‐1.     16/06/11   4   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 5. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     Il  data  base  è  stato  creato  con  un  tipo  di  encoding  UTF-­‐8  e  owner  l’utente   liferay-­‐1   creato   in   precedenza.   Dopo   il   riavvio   del   data   base,   necessario   per   applicare   le   nuove   regole   di   connessione,   è   possibile   verificare   che   la   nuova   configurazione  funzioni  correttamente.  La  verifica  è  molto  semplice,  basterebbe   eseguire  una  connessione  con  un  qualunque  tipo  di  client,  il  comando  a  seguire   mostra   una   connessione   al   data   base   creato   in   precedenza   utilizzando   il   client   pgsql.     $ psql -h 192.168.56.101 -U liferay-1 liferay-1 Listato  8  Connessione  al  data  base  di  Liferay.       psql (8.4.7) liferay-1=> l List of databases Name | Owner | Encoding | Collation | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+----------------------- liferay-1 | liferay-1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postgres (4 rows) liferay-1=> Listato  9  Vista  dei  data  base  dopo  la  connessione  al  data  base  liferay-­‐1.     Con   quest’ultima   verifica   la   configurazione   di   PostgreSQL   è   ultimata   e   il   data   base   è   pronto   per   ospitare   i   dati   di   Liferay.   E’   possibile   approfondire   la   configurazione   trattata   in   questo   paragrafo   consultando   la   documentazione   ufficiale  PostgreSQL  8.4  Server  Administration.     4. Configurazione  di  Tomcat   Il   nostro   scenario   di   configurazione   (vedere   la   Figura   1)   prevede   che   la   connessione   verso   il   data   base   PostgreSQL   sia   gestita   attraverso   un   Connection   Pool.  La  configurazione  di  un  Database  Connection  Pool  (DBCP)  su  Tomcat  come   risorsa   Java   Naming   and   Directory   Interface   (JNDI)   è   molto   semplice.   La   documentazione   Apache   Tomcat   6.0   -­‐   JNDI   Datasource   HOW-­‐TO   è   ben   fatta   e   molto   chiara,   comprende   inoltre   anche   il   caso   di   configurazione   per   un   RDBMS   PostgreSQL.   Nel   Listato   10   la   configurazione   della   risorsa   definita   come   jdbc/LiferayPool.     <Resource name="jdbc/LiferayPool" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="liferay-1" password="liferay12345" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://liferay-portal-db-1.local:5432/liferay-1?charSet=UTF-8"/> Listato  10  Parte  del  file  di  configurazione  context.xml.   16/06/11   5   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 6. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     Il   file   di   configurazione   completo   è   disponibile   sul   mio   repository   Gist   all’indirizzo   Apache   Tomcat   6.0   -­‐   JNDI   Datasource.   Il   file   di   configurazione   context.xml  è  locato  in  {liferay-­‐home}/{tomcat}/conf.     5. Configurazione  di  Liferay   La   configurazione   del   data   base   nella   versione   6.0   di   Liferay   è   rimasta   uguale  alla  precedente  release  5.2.  Il  nostro  scenario  di  configurazione  prevede   l’utilizzo   di   un   Database   Connection   Pool   (DBCP)   configurato   in   precedenza   ed   esposto  come  risorsa  JNDI.     In   maniera   molto   semplice   è   possibile   indicare   a   Liferay   il   nome   della   risorsa  JNDI  all’interno  del  file  di  properties  portal-­‐ext.properties  specificando  la   proprietà  indicata  al  Listato  11.       jdbc.default.jndi.name=jdbc/LiferayPool Listato  11  Configurazione  del  data  base  via  JNDI.   La   directory   {liferay-­‐home}/{tomcat}/webapps/ROOT/WEB-­‐INF/classes   contiene   il   file  portal-­‐ext.properties.   Non   è   detto   che   il   file   sia   presente,   qualora   non  fosse  presente,  occorre  crearlo  da  zero  e  conterrà  la  sola  riga  mostrato  nel   procedente  listato.     6. Start  di  Liferay  con  la  nuova  configurazione   Dopo   aver   completato   tutte   le   fasi   di   configurazione,   possiamo   procedere   con  l’avvio  di  Liferay  Portal  e  verificare  che  la  nuova  configurazione  funzioni  in   modo  corretto.     Il   primo   avvio   è   quello   più   delicato   che   richiederà   un   tempo   di   start-­‐up   superiore   al   normale   per   via   del   setup   (che   include   numerose   operazioni)   richiesto   per   il   nuovo   data   base   PostgreSQL.   Al   Listato   12   sono   mostrate   le   informazioni  più  rilevanti  estratte  dal  file  di  log  catalina.out  di  Tomcat.     Loading file:/opt/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB- INF/classes/portal-ext.properties 12:45:34,784 INFO [DialectDetector:69] Determining dialect for PostgreSQL 8 12:45:34,890 INFO [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect Starting Liferay Portal Community Edition 6.0.6 CE (Bunyan / Build 6006 / February 17, 2011) 12:45:50,056 ERROR [JDBCExceptionReporter:101] ERROR: relation "lock_" does not exist Position: 403 12:45:50,585 WARN [ReleaseLocalServiceImpl:143] ERROR: relation "release_" does not exist Position: 25 12:45:50,588 INFO [ReleaseLocalServiceImpl:84] Create tables and populate with default data 12:45:54,093 INFO [BaseDB:400] Database supports case sensitive queries 12:46:06,270 INFO [ServiceComponentLocalServiceImpl:187] Running Chat SQL scripts 12:46:13,704 INFO [ServiceComponentLocalServiceImpl:187] Running Kaleo SQL scripts 12:46:14,957 INFO [ServiceComponentLocalServiceImpl:187] Running Mail SQL scripts  Listato  12  Estratto  dal  file  log  catalina.out  al  primo  avvio.   16/06/11   6   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 7. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     Non   appena   il   server   avrà   completato   la   fase   di   start-­‐up,   sarà   possibile   accedere   a   Liferay   puntando   all’indirizzo   http://liferay-­‐portal-­‐fe-­‐1.local:8080.   In   Figura  2  è  mostrato  il  pannello  di  controllo  nella  sezione  delle  info  utente.          Figura  2  Pannello  di  controllo  Liferay  dopo  l’avvio.      L’esecuzione   del   comando   netstat   (così   come   indicato   nel   Listato   13)   su   una   delle   due   macchine,   mostra   le   connessioni   attive   verso   la   base   dati.   Nel   comando  è  stato  volutamente  omesso  il  parametro  n  in  modo  che  sia  eseguito  il   lookup  degli  indirizzi  IP  nei  rispettivi  nomi.       # netstat -ta | grep ESTABLISHED | grep postgres Listato  13  Comando  netstat  per  la  visualizzazione  delle  connessioni  verso  PostgreSQL.     tcp 0 0 liferay-portal-db-:postgres liferay-portal-fe-1.l:49784 ESTABLISHED tcp 0 0 liferay-portal-db-:postgres liferay-portal-fe-1.l:49737 ESTABLISHED tcp 0 0 liferay-portal-db-:postgres liferay-portal-fe-1.l:49739 ESTABLISHED tcp 0 0 liferay-portal-db-:postgres liferay-portal-fe-1.l:49740 ESTABLISHED  Listato  14  Output  del  comando  netstat.     16/06/11   7   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 8. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     7. Risorse   A  seguire  una  breve  lista  delle  risorse  disponibili  in  rete  che  possono  essere   rilevanti  come  approfondimento  del  tema  trattato  da  quest’articolo.     Item   Nome  risorsa   Descrizione   1   Installing  Liferay  for  an  Enterprise   Questo  documento   descrive  l’installazione  di   Liferay  in  ambienti  di   tipo  Enterprise  e  le   pratiche  più  comuni.   2   Installing  a  Bundle   Questo  documento   descrive  la  struttura  del   bundle  e  la  relativa   installazione.   3   Liferay  Wiki  Guide   Wiki  di  raccolta  articoli   forniti  dallo  staff  di   Liferay  e  dalla  comunità.     4   Database  Configuration   Questo  documento   contiene  informazioni  su   come  cambiare  l’RDBMS   di  default.     8. Conclusioni   Sono   appena   al   mio   terzo   giorno   di   convivenza   con   Liferay,   e   proprio   in   questo   giorno   ho   deciso   di   togliere   HSQL   è   mettere   sotto   il   cofano   di   Liferay   il   data   base   PostgreSQL.   L’esperienza   su   questo   tipo   di   configurazione   è   stata   molto   positiva,   riscontrando   semplicità   e   immediatezza   davvero   notevoli,   probabilmente   il   framework   Spring   in   coppia   con   l’ORM   Hibernate   sono   i   “benefattori”.   Non   sarebbe   stato   male   consentire   come   possibilità   la   creazione   automatica  del  data  base.     16/06/11   8   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike