SlideShare a Scribd company logo
1 of 15
Download to read offline
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 1 / 15
Liferay Portal CE 7.4: Come configurare Oracle
Database 19c
Nel corso di queste ultime settimane ho ricevuto tramite i miei canali di contatto diverse richieste di supporto per
configurare le immagini Docker di Liferay Portal CE 7.4 con Oracle Database 19c, ho deciso pertanto di scrivere questo
articolo per rispondere a tutti coloro che abbiano questa specifica esigenza.
Per leggere agevolmente questo articolo è richiesta una buona base di conoscenza del portale Liferay dal punto di vista
sistemistico e di Docker (e in genere degli ambienti basati su container e sistemi di virtualizzazione).
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
1. Contesto dell'ambiente
2. Requisiti Software
3. Prima di avviare il container
4. Avvio del container
5. Bonus
6. Conclusioni
7. Risorse
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 2 / 15
1. Contesto dell'ambiente
Onde evitare fraintendimenti è importante definire fin da subito qual è il contesto dell'ambiente che andremo a configurare
ed eseguire.
La configurazione che andremo a creare è orientata a un ambiente di sviluppo/test e gli strumenti software che
utilizzeremo sono essenzialmente quelli indicati a seguire.
Liferay Portal CE 7.4 GA3
Oracle Database 19c
Docker
Il diagramma di figura 1 schematizza l'ambiente target su cui applicheremo la configurazione.
Figura 1 - Contesto dell'ambiente di configurazione ed esecuzione
Ipotizziamo che l'ambiente di configurazione ed esecuzione mostrato dal diagramma di figura 1 possa essere costruito
sulla propria macchina di sviluppo, quest'ultima deve disporre di risorse hardware adeguate a eseguire Liferay Portal e
Oracle Database 19c.
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 3 / 15
Dal diagramma di figura 1, l'oggetto di nostro interesse è esclusivamente la sezione che riguarda Liferay Portal; significa,
che un'istanza di Oracle Database 19c deve essere già configurata e pronta all'uso. La configurazione di un'istanza Oracle
Database 19c è stata già trattata dall'articolo Come usare Oracle Database 19c Pre-Built Developer VM pubblicato
recentemente sul blog Antonio Musarra's Blog.
Visto che abbiamo chiarito il fatto che quello che andremo a costruire è orientanto ad un ambiente di sviluppo/test,
personalmente ho utilizzato sia il mio MacBook Pro i7 16GB sia la mia Workstation da Smart Worker. Consiglio comunque
di consultare quali sono i requisiti hardware dei due prodotti: Liferay Portal e Oracle Database 19c.
2. Requisiti Software
Realizzare quanto mostrato dal diagramma di figura 1 richiede che siano soddisfatti una serie di requisiti.
Sistema Operativo (Host): macOS o Linux/Unix o Windows
Docker Engine versione 19.x o 20.x
Oracle VirtualBox 6.1
Oracle JDBC 1
4.2 Driver
Liferay Database All In One 1.2.1
Come indicato nel capitolo precedente, ho utilizzato i miei due ambienti di sviluppo/test, pertanto ho avuto modo di usare
due sistemi operativi: macOS Monterey (12.1) e Fedora 35 Workstation.
Per quanto concerne Docker Engine, ho utilizzato la versione 20.10.11 (sia su macOS sia su Fedora 35 Workstation),
mentre di Oracle VirtualBox ho usato la versione 6.1.30r148432.
La verifica della versione di Docker Engine e Oracle VirtualBox, è possibile portarla a termine utilizzando i comandi a
seguire.
Console 1 - Verifica della versione di Docker Engine e Oracle VirtualBox
Il requisito di Oracle VirtualBox coincide con la disponibilità di un'istanza Oracle Database 19c. La procedura su come
implementare questo requisito è ampiamente descritta dall'articolo Come usare Oracle Database 19c Pre-Built Developer
VM.
# Get the Docker version info
$ docker version
# Get the Oracle VirtualBox version info
$ VBoxManage --version
1
2
3
4
5
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 4 / 15
Affinché Liferay sia in grado di stabilire una connessione con il database Oracle, è necessario fornire (all'installazione di
Liferay) il driver JDBC da scaricare direttamente dal sito Oracle seguendo il link ojdbc8.jar. Il download del driver richiede
che disponiate di un account sul portale Oracle.
La Community Edition del portale Liferay, OOTB (out-of-the-box) funziona esclusivamente con database (RDBMS 2
) non
commerciali, Oracle database è quindi escluso.
Il progetto Liferay Database All In One aggiunge il supporto ai database commerciali come Oracle a Liferay Portal CE. È
necessario quindi scaricare la versione 1.2.1 dal repository Maven seguendo il link liferay-portal-database-all-in-one-
support-1.2.1.
Nota! In questo momento l'ultima versione disponibile di Liferay Portal CE è la 7.4 GA7. Il motivo per cui in questo articolo
facciamo riferimento alla versione 7.4 GA3 deriva dal fatto che l'ultima versione (1.2.1) del driver Liferay Database All In
One è stata testata con la versione 7.4 GA3 di Liferay Portal.
Una volta soddisfatti tutti i requisiti, possiamo andare avanti con il setup del container di Liferay per fare in modo che
faccia uso del database Oracle.
3. Prima di avviare il container
Dal diagramma di figura 1 è chiaro che faremo uso dell'immagine Docker di Liferay Portal CE 7.4 GA3 per creare il
container di Liferay configurato in modo che si connetta al database Oracle 19c.
Le risorse di riferimento per Liferay Docker sono le seguenti:
Starting with a Docker Image
Using Liferay Docker Images
Liferay DXP Images
Liferay Portal Images
Dobbiamo fare in modo che il container di Liferay che andremo a configurare sia predisposto con il driver JDBC Oracle, il
driver Liferay Database All In One e la configurazione adeguata che consenta a Liferay di stabilire e usare la connessione
verso il database Oracle. Per rendere possibile tutto questo, è indispensabile preparare la struttura di directory e file
mostrata in console 2.
Questa struttura sarà poi montata usando il bind mounts di Docker in fase di creazione del container.
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 5 / 15
(1) Creazione struttura directory
(2) Copia driver JDBC
(3) Copia driver Liferay Database All In One
(4) Creazione environment file per configurazione Liferay
Console 2 - Struttura directory e file per la configurazione del container Liferay
Nota! Dalla versione 7.4 GA3 di Liferay è stato introdotto il meccanismo cosiddetto Shielded Container, cambia quindi la
directory ($LIFERAY_HOME/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib) su cui installare il driver JDBC e il
driver Database All In One. Il README del progetto Database All In One riporta nel dettaglio questa particolare nota
d'installazione (3. Installation notes for Liferay 7.4 GA3).
L'intero contenuto di quanto rappresentato in console 2 può essere creato sulla propria home directory (~) seguendo il
flusso indicato dalla figura a seguire.
Figura 2 - Flusso per il setup della struttura di directory e file
.
├── deploy
├── docker-liferay-env-file.env
└── files
└── tomcat
└── webapps
└── ROOT
└── WEB-INF
└── shielded-container-lib
├── liferay-portal-database-all-in-one-support-1.2.1.jar
└── ojdbc8.jar
1
2
3
4
5
6
7
8
9
10
11
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 6 / 15
A seguire la sequenza di comandi necessari per creare la struttura di directory e file così come indicata in console 2.
Console 3 - Comandi per la creazione della struttura di directory del container Liferay
Utilizzando questa struttura di directory (Scanned Container Folders) e file (Providing Files to the Container) è possibile
configurare Liferay a nostro piacimento.
Il file ~/liferay-74-docker-oracle/docker-liferay-env-file.env contiene in particolare la configurazione
per la connessione verso il database Oracle. Queste informazioni devono essere riviste in base alla propria configurazione
del database Oracle.
Il parametro di environment LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_CONNECTION_UPPERCASET_IMEOUT che
corrisponde al parametro di configurazione jdbc.default.connectionTimeout è stato impostato con un valore elevato
rispetto allo standard di 30s per evitare errore di Socket Read Timeout sulla connessione Oracle. Questo errore potrebbe
accadere nel caso in cui le risorse hardware siano limitate.
# Step 1 - Creazione struttura directory
$ mkdir ~/liferay-74-docker-oracle
$ mkdir ~/liferay-74-docker-oracle/deploy
$ mkdir ~/liferay-74-docker-oracle/files
$ mkdir -p ~/liferay-74-docker-oracle/files/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib
# Step 2 - Copia driver JDBC (ipotizzando il download su ~/Downloads)
cp ~/Downloads/ojdbc8.jar ~/liferay-74-docker-oracle/files/tomcat/webapps/ROOT/WEB-
INF/shielded-container-lib
# Step 3 - Copia driver Liferay Database All In One (ipotizzando il download su ~/Downloads)
cp ~/Downloads/liferay-portal-database-all-in-one-support-1.2.1.jar ~/liferay-74-docker-
oracle/files/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib
# Step 4 - Creazione environment file per configurazione Liferay
echo
"LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME=oracle.jdbc.OracleDr
iver
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_URL=jdbc:oracle:thin:@192.168.56.5:1521/orcl
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_CONNECTION_UPPERCASET_IMEOUT=600000
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_USERNAME=lportal
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_PASSWORD=lportal
LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_DEPENDENCY_PERIOD_MANAGER_PERIOD_SYNC
_PERIOD_TIMEOUT=1800
LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_OSGI_PERIOD_CONSOLE=11311" >
~/liferay-74-docker-oracle/docker-liferay-env-file.env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 7 / 15
Il parametro di environment
LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_DEPENDENCY_PERIOD_MANAGER_PERIOD
_SYNC_PERIOD_TIMEOUT che corrisponde al parametro di configurazione
module.framework.properties.dependency.manager.sync.timeout è stato impostato al valore di 1800s rispetto allo
standard di 60s per evitare l'errore WARN [http-nio-8080-exec-1][DependencyManagerSyncImpl:85]
Dependency manager sync timeout after waiting 60s e di conseguenza correre il rischio che il portale non
venga correttamente inizializzato. Per maggiori informazioni fare riferimento a LPS-102056 Upgrade DependencyManger
and enable its concurrent activation e Dependency Manager - Thread Model.
Una volta completata la struttura di directory e file così come mostrata in console 2, siamo pronti per creare ed eseguire il
container di Liferay Portal CE 7.4 configurato per usare il database Oracle.
4. Avvio del container
A questo punto siamo pronti per avviare il container di Liferay Portal CE 7.4 configurato per usare il database Oracle.
Prima di procedere con l'avvio del container accertiamoci però che l'istanza di Oracle Database 19c sia su e che lo schema
dedicato a Liferay sia presente. Possiamo condurre questa verifica eseguendo i comandi indicati in console 4 dal terminale
del sistema host. La dicitura SQL> in console 4 rappresenta il prompt di Oracle SQL Developer Command-Line (SQLcl).
Console 4 - Verifica dell'istanza Oracle Database 19c
# Step 1 - Connessione alla macchina Oracle Database 19c via ssh
# (sostituire l'indirizzo IP con il proprio).
$ ssh oracle@192.168.56.5
# Step 2 - Connessione allo schema lportal via Oracle SQL Developer Command-Line (SQLcl) e
verifica versione di Oracle
[oracle@localhost ~]$ sql /nolog
SQL> connect lportal/lportal
SQL> SELECT BANNER_FULL FROM V$VERSION;
1
2
3
4
5
6
7
8
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 8 / 15
La figura 3 mostra l'output della sequenza dei comandi eseguiti e mostrati in console 4. Adesso che siamo certi che
l'istanza Oracle sia operativa, possiamo procedere con l'avvio del container così come indicato indicato in console 5.
Figura 3 - Test di connessione al database Oracle 19c
Console 5 - Avvio del container Liferay Portal CE 7.4 configurato per Oracle Database
Il parametro --env-file docker-liferay-env-file.env fa in modo che siano impostate le varibili di ambiente
così come definite sul file specificato con lo scopo applicare la configurazione al portale Liferay.
La figura 4 mostra l'output del comando che esegue il pull dell'immagine liferay/portal:7.4.2-ga3 dal repository
di Docker Hub.
# Step 1 - Pull dell'immagine liferay/portal:7.4.2-ga3
$ docker pull liferay/portal:7.4.2-ga3
# Step 2 - Avvio del container Liferay Portal CE 7.4
$ cd ~/liferay-74-docker-oracle
$ docker run --rm -it --name liferay74ga3-oracle19c -p 8080:8080 -p 11311:11311 -v
$(pwd):/mnt/liferay --env-file docker-liferay-env-file.env liferay/portal:7.4.2-ga3
1
2
3
4
5
6
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 9 / 15
Figura 4 - Pull dell'immagine liferay/portal:7.4.2-ga3 da Docker Hub
La figura 5 mostra invece l'avvio del container di Liferay e in particolare l'evidenza che Liferay abbia instaurato la
connessione verso il database Oracle e iniziato a eseguire la creazione di tutti gli oggetti sul database Oracle.
Figura 5 - Avvio del container Liferay Portal CE 7.4 configurato per Oracle Database
Il primo avvio potrebbe durare qualche minuto, al termine il portale dovrebbe essere raggiungibile all'indirizzo
http://localhost:8080 (vedi figura 6) e la Gogo Shell accessibile alla porta 11311 via telnet localhost
11311 .
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 10 / 15
Figura 6 - Accesso al portale Liferay dopo lo start-up via Docker
5. Bonus
Eccoci arrivati al capitolo bonus! In cosa consiste? Presto detto.
SQL DDL per la creazione tablespace e schema per il database del portale Liferay
Archivio zip contenente la struttura di directory e file vista al capitolo 3. Prima di avviare il container
In console 6 sono mostrati tutti i comandi necessari per creare tablespace e schema per il database del portale Liferay. La
dicitura SQL> in console 6 rappresenta il prompt di SQLcl. I comandi indicati in console 6 sono validi se eseguiti
sull'instanza Oracle Database 19c creata attraverso l'immagine Oracle VirtualBox rilasciata da Oracle stessa.
# Step 1 - Connessione alla macchina Oracle Database 19c via ssh
# (sostituire l'indirizzo IP con il proprio).
$ ssh oracle@192.168.56.5
# Step 2 - Connessione allo schema lportal via Oracle SQL Developer Command-Line (SQLcl) e
verifica versione di Oracle
[oracle@localhost ~]$ sql /nolog
1
2
3
4
5
6
7
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 11 / 15
Console 6 - Comandi per la creazione di tablespace e schema per il database del portale Liferay
I parametri utilizzati per la creazione dei tablespace dedicati a Liferay Portal sono in genere adeguati per un ambiente di
sviluppo/test; consiglio comunque di fare riferimento al DBA Oracle quando dovete inizializzare il database di Liferay per gli
ambienti di pre-produzione e produzione.
Seguendo il link liferay-74-docker-oracle dovreste poter scaricare il file zip liferay-74-docker-oracle.zip il cui contenuto è
quello indicato al capitolo 3. Prima di avviare il container. Utilizzando questo zip file vi risparmiate di scaricare il driver
JDBC di Oracle e il Liferay Database All In One. Il checksum md5 dell'archivio è MD5 (liferay-74-docker-
oracle.zip) = 5281ff4582baaab5f9d5fc1f1b84f1b9
# Step 3 - Connessione al database Oracle come sysdba utilizzando l'utente sys e
# password oracle
SQL> connect sys/oracle as sysdba
# Step 4 - Passaggio al container Oracle
SQL> ALTER SESSION SET container = ORCL;
# Step 5 - Creazione tablespace per i dati di Liferay
SQL> CREATE TABLESPACE liferay_data logging DATAFILE
'/u01/app/oracle/oradata/ORCLCDB/liferay_data.dbf' SIZE 64m
autoextend ON NEXT 32m maxsize 4096m blocksize 8k EXTENT management local;
# Step 6 - Creazione tablespace per i dati temporanei
SQL> CREATE TEMPORARY TABLESPACE liferay_temp tempfile
'/u01/app/oracle/oradata/ORCLCDB/liferay_temp.dbf'
SIZE 64m autoextend ON NEXT 32m maxsize 2048m blocksize 8k
EXTENT management local;
# Step 7 - Creazione utente/schema lportal
SQL> CREATE USER lportal IDENTIFIED BY lportal DEFAULT TABLESPACE
liferay_data TEMPORARY TABLESPACE liferay_temp PROFILE
DEFAULT account unlock;
# Step 8 - Assegnazione grant allo user lportal
GRANT CONNECT TO lportal;
GRANT RESOURCE TO lportal;
GRANT UNLIMITED TABLESPACE TO lportal;
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 12 / 15
6. Conclusioni
Con questo breve articolo abbiamo visto quale sia il modo di configurare un ambiente di sviluppo/test basato sulle
immagini Docker di Liferay Portal CE, dove quest'ultimo è configurato per avere un database Oracle come RDBMS.
Lo stesso scenario è applicabile anche alle immagini DXP del portale Liferay, con la sola differenza che non è necessario
installare il driver Liferay Database All In One.
7. Risorse
A seguire una serie di risorse che riguardano gli argomenti che sono stati trattati nel corso di questo articolo.
How to setup Docker container Oracle Database 19c for Liferay Development Environment del blog Antonio Musarra's
Blog
How to build a Docker Liferay 7.2 image with the Oracle Database support del blog Antonio Musarra's Blog
Come installare Liferay 7 su JBoss EAP con il supporto per Oracle Database del canale YouTube di Antonio Musarra's
Blog
Come creare immagini Docker Liferay DXP Red Hat JBoss EAP del blog SMC TechBlog
Docker: Sviluppare e rilasciare software tramite container - Libro di Serena Sensini
Pillole di Docker del canale YouTube EmmeCiLab - Informatica e Matematica
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 13 / 15
Antonio Musarra, Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Copertina e impaginazione di Antonio Musarra antonio.musarra@gmail.com
Prima edizione digitale Gennaio 2022 (versione 1.0.0)
Serie: Liferay Deployment Guide (#lfrdeploymentguide)
Promosso da: Antonio Musarra's Blog https://www.dontesta.it
Canali Social
https://twitter.com/antonio_musarra
https://www.linkedin.com/in/amusarra/
https://www.facebook.com/antoniomusarrablog/
https://www.slideshare.net/amusarra
NOTE SUL COPYRIGHT:
Tutti i diritti d’autore e connessi sulla presente opera appartengono all’autore Antonio Musarra. Per volontà dell’autore
quest’opera è rilasciata nei termini della licenza Creative Commons Attribuzione – Non Commerciale – Condividi allo
stesso modo 3.0 Italia (CC BY-NC-SA 3.0 IT) il cui testo integrale è disponibile alla pagina web https://goo.gl/jYtSzA
Tutti i marchi riportati appartengo ai legittimi proprietari; marchi di terzi, nomi di prodotti, nomi commerciali, nomi
corporativi e società citati possono essere marchi di proprietà dei rispettivi titolari o marchi registrati d’altre società e sono
stati utilizzati a puro scopo esplicativo ed a beneficio del possessore, senza alcun fine di violazione dei diritti di copyright
vigenti.
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 14 / 15
1. In informatica JDBC (Java DataBase Connectivity), è un connettore (driver) per database che consente l'accesso e la gestione della persistenza dei dati sulle basi
di dati da qualsiasi programma scritto con il linguaggio di programmazione Java, indipendentemente dal tipo di DBMS utilizzato. È costituito da un'API object
oriented orientata ai database relazionali, raggruppata nel package java.sql, che serve ai client per connettersi a un database fornendo i metodi per interrogare e
modificare i dati (fonte Wikipedia ) ↩
2. Il termine relational database management system (RDBMS, sistema per la gestione di basi di dati relazionali) indica un database management system basato
sul modello relazionale, introdotto da Edgar F. Codd. Oltre a questi, anche se meno diffusi a livello commerciale, esistono sistemi di gestione di basi di dati che
implementano modelli dei dati alternativi a quello relazionale: gerarchico, reticolare e a oggetti (fonte Wikipedia ). ↩
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
No. 15 / 15

More Related Content

What's hot

Events in tems products
Events in tems productsEvents in tems products
Events in tems productsTo Anh
 
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part II
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part IIPre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part II
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part IICA Technologies
 
IMS Registration Flow
IMS Registration FlowIMS Registration Flow
IMS Registration FlowKent Loh
 
Lte protocol Stack
Lte protocol StackLte protocol Stack
Lte protocol StackShoeb Ahmed
 
CA IDMS Performance and Tuning
CA IDMS Performance and TuningCA IDMS Performance and Tuning
CA IDMS Performance and TuningCA Technologies
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
VoLTE KPI Performance Explained
VoLTE KPI Performance ExplainedVoLTE KPI Performance Explained
VoLTE KPI Performance ExplainedVikas Shokeen
 
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...End to End volte ims sip call flow Guide - Mobile originating and Mobile term...
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...Vikas Shokeen
 
Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6 Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6 Raghu Udiyar
 
VoLTE Flows and CS network
VoLTE Flows and CS networkVoLTE Flows and CS network
VoLTE Flows and CS networkKarel Berkovec
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화OpenStack Korea Community
 
VoLTE Interfaces , Protocols & IMS Stack
VoLTE Interfaces , Protocols & IMS StackVoLTE Interfaces , Protocols & IMS Stack
VoLTE Interfaces , Protocols & IMS StackVikas Shokeen
 
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...John Campbell
 
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best PracticesOracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best PracticesMarkus Michalewicz
 

What's hot (20)

Events in tems products
Events in tems productsEvents in tems products
Events in tems products
 
Acp by atoll
Acp by atollAcp by atoll
Acp by atoll
 
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part II
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part IIPre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part II
Pre-Con Ed: Introduction to CA Datacom Key Concepts and Facilities Part II
 
IMS Registration Flow
IMS Registration FlowIMS Registration Flow
IMS Registration Flow
 
BASIC GSM
BASIC GSMBASIC GSM
BASIC GSM
 
Lte protocol Stack
Lte protocol StackLte protocol Stack
Lte protocol Stack
 
Capa 2
Capa 2Capa 2
Capa 2
 
CA IDMS Performance and Tuning
CA IDMS Performance and TuningCA IDMS Performance and Tuning
CA IDMS Performance and Tuning
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
VoLTE KPI Performance Explained
VoLTE KPI Performance ExplainedVoLTE KPI Performance Explained
VoLTE KPI Performance Explained
 
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...End to End volte ims sip call flow Guide - Mobile originating and Mobile term...
End to End volte ims sip call flow Guide - Mobile originating and Mobile term...
 
IMS + VoLTE Overview
IMS + VoLTE OverviewIMS + VoLTE Overview
IMS + VoLTE Overview
 
Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6 Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6
 
VoLTE Flows and CS network
VoLTE Flows and CS networkVoLTE Flows and CS network
VoLTE Flows and CS network
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
 
VoLTE Interfaces , Protocols & IMS Stack
VoLTE Interfaces , Protocols & IMS StackVoLTE Interfaces , Protocols & IMS Stack
VoLTE Interfaces , Protocols & IMS Stack
 
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
 
08. DRIVE TEST Analysis
08. DRIVE TEST Analysis08. DRIVE TEST Analysis
08. DRIVE TEST Analysis
 
Udev
UdevUdev
Udev
 
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best PracticesOracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
 

Similar to Liferay Portal CE 7.4: Come configurare Oracle Database 19c

Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansDavide Nardone
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfrescoMirco Leo
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Valerio Radice
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker dotnetcode
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerLuca Congiu
 
Layer di persistenza in una applicazione Eclipse RCP
Layer di persistenza in una applicazione Eclipse RCPLayer di persistenza in una applicazione Eclipse RCP
Layer di persistenza in una applicazione Eclipse RCPNelson Firmani
 
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...Giulio Vian
 
ASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksNicolò Carandini
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Giancarlo Valente
 
Distribuire una libreria Java per usarla come dipendenza gradle
Distribuire una libreria Java per usarla come dipendenza gradleDistribuire una libreria Java per usarla come dipendenza gradle
Distribuire una libreria Java per usarla come dipendenza gradlePaolo Montalto
 
Introduzione al java
Introduzione al javaIntroduzione al java
Introduzione al javaGiovanni Pace
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide SitoDavide Sito
 

Similar to Liferay Portal CE 7.4: Come configurare Oracle Database 19c (20)

Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Battaglia Navale
Battaglia NavaleBattaglia Navale
Battaglia Navale
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with Netbeans
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Layer di persistenza in una applicazione Eclipse RCP
Layer di persistenza in una applicazione Eclipse RCPLayer di persistenza in una applicazione Eclipse RCP
Layer di persistenza in una applicazione Eclipse RCP
 
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
 
ASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework Benchmarks
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)
 
Distribuire una libreria Java per usarla come dipendenza gradle
Distribuire una libreria Java per usarla come dipendenza gradleDistribuire una libreria Java per usarla come dipendenza gradle
Distribuire una libreria Java per usarla come dipendenza gradle
 
Introduzione al java
Introduzione al javaIntroduzione al java
Introduzione al java
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
 

More from Antonio Musarra

Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio 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
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio 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
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomAntonio Musarra
 
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.Antonio Musarra
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio 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
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUSAntonio Musarra
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Antonio Musarra
 
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
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientAntonio Musarra
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio 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
 

More from Antonio Musarra (20)

Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
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...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
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
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual Appliance
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services Custom
 
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minuti
 
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
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUS
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0
 
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
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF Client
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 

Liferay Portal CE 7.4: Come configurare Oracle Database 19c

  • 1. Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 1 / 15
  • 2. Liferay Portal CE 7.4: Come configurare Oracle Database 19c Nel corso di queste ultime settimane ho ricevuto tramite i miei canali di contatto diverse richieste di supporto per configurare le immagini Docker di Liferay Portal CE 7.4 con Oracle Database 19c, ho deciso pertanto di scrivere questo articolo per rispondere a tutti coloro che abbiano questa specifica esigenza. Per leggere agevolmente questo articolo è richiesta una buona base di conoscenza del portale Liferay dal punto di vista sistemistico e di Docker (e in genere degli ambienti basati su container e sistemi di virtualizzazione). Liferay Portal CE 7.4: Come configurare Oracle Database 19c 1. Contesto dell'ambiente 2. Requisiti Software 3. Prima di avviare il container 4. Avvio del container 5. Bonus 6. Conclusioni 7. Risorse Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 2 / 15
  • 3. 1. Contesto dell'ambiente Onde evitare fraintendimenti è importante definire fin da subito qual è il contesto dell'ambiente che andremo a configurare ed eseguire. La configurazione che andremo a creare è orientata a un ambiente di sviluppo/test e gli strumenti software che utilizzeremo sono essenzialmente quelli indicati a seguire. Liferay Portal CE 7.4 GA3 Oracle Database 19c Docker Il diagramma di figura 1 schematizza l'ambiente target su cui applicheremo la configurazione. Figura 1 - Contesto dell'ambiente di configurazione ed esecuzione Ipotizziamo che l'ambiente di configurazione ed esecuzione mostrato dal diagramma di figura 1 possa essere costruito sulla propria macchina di sviluppo, quest'ultima deve disporre di risorse hardware adeguate a eseguire Liferay Portal e Oracle Database 19c. Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 3 / 15
  • 4. Dal diagramma di figura 1, l'oggetto di nostro interesse è esclusivamente la sezione che riguarda Liferay Portal; significa, che un'istanza di Oracle Database 19c deve essere già configurata e pronta all'uso. La configurazione di un'istanza Oracle Database 19c è stata già trattata dall'articolo Come usare Oracle Database 19c Pre-Built Developer VM pubblicato recentemente sul blog Antonio Musarra's Blog. Visto che abbiamo chiarito il fatto che quello che andremo a costruire è orientanto ad un ambiente di sviluppo/test, personalmente ho utilizzato sia il mio MacBook Pro i7 16GB sia la mia Workstation da Smart Worker. Consiglio comunque di consultare quali sono i requisiti hardware dei due prodotti: Liferay Portal e Oracle Database 19c. 2. Requisiti Software Realizzare quanto mostrato dal diagramma di figura 1 richiede che siano soddisfatti una serie di requisiti. Sistema Operativo (Host): macOS o Linux/Unix o Windows Docker Engine versione 19.x o 20.x Oracle VirtualBox 6.1 Oracle JDBC 1 4.2 Driver Liferay Database All In One 1.2.1 Come indicato nel capitolo precedente, ho utilizzato i miei due ambienti di sviluppo/test, pertanto ho avuto modo di usare due sistemi operativi: macOS Monterey (12.1) e Fedora 35 Workstation. Per quanto concerne Docker Engine, ho utilizzato la versione 20.10.11 (sia su macOS sia su Fedora 35 Workstation), mentre di Oracle VirtualBox ho usato la versione 6.1.30r148432. La verifica della versione di Docker Engine e Oracle VirtualBox, è possibile portarla a termine utilizzando i comandi a seguire. Console 1 - Verifica della versione di Docker Engine e Oracle VirtualBox Il requisito di Oracle VirtualBox coincide con la disponibilità di un'istanza Oracle Database 19c. La procedura su come implementare questo requisito è ampiamente descritta dall'articolo Come usare Oracle Database 19c Pre-Built Developer VM. # Get the Docker version info $ docker version # Get the Oracle VirtualBox version info $ VBoxManage --version 1 2 3 4 5 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 4 / 15
  • 5. Affinché Liferay sia in grado di stabilire una connessione con il database Oracle, è necessario fornire (all'installazione di Liferay) il driver JDBC da scaricare direttamente dal sito Oracle seguendo il link ojdbc8.jar. Il download del driver richiede che disponiate di un account sul portale Oracle. La Community Edition del portale Liferay, OOTB (out-of-the-box) funziona esclusivamente con database (RDBMS 2 ) non commerciali, Oracle database è quindi escluso. Il progetto Liferay Database All In One aggiunge il supporto ai database commerciali come Oracle a Liferay Portal CE. È necessario quindi scaricare la versione 1.2.1 dal repository Maven seguendo il link liferay-portal-database-all-in-one- support-1.2.1. Nota! In questo momento l'ultima versione disponibile di Liferay Portal CE è la 7.4 GA7. Il motivo per cui in questo articolo facciamo riferimento alla versione 7.4 GA3 deriva dal fatto che l'ultima versione (1.2.1) del driver Liferay Database All In One è stata testata con la versione 7.4 GA3 di Liferay Portal. Una volta soddisfatti tutti i requisiti, possiamo andare avanti con il setup del container di Liferay per fare in modo che faccia uso del database Oracle. 3. Prima di avviare il container Dal diagramma di figura 1 è chiaro che faremo uso dell'immagine Docker di Liferay Portal CE 7.4 GA3 per creare il container di Liferay configurato in modo che si connetta al database Oracle 19c. Le risorse di riferimento per Liferay Docker sono le seguenti: Starting with a Docker Image Using Liferay Docker Images Liferay DXP Images Liferay Portal Images Dobbiamo fare in modo che il container di Liferay che andremo a configurare sia predisposto con il driver JDBC Oracle, il driver Liferay Database All In One e la configurazione adeguata che consenta a Liferay di stabilire e usare la connessione verso il database Oracle. Per rendere possibile tutto questo, è indispensabile preparare la struttura di directory e file mostrata in console 2. Questa struttura sarà poi montata usando il bind mounts di Docker in fase di creazione del container. Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 5 / 15
  • 6. (1) Creazione struttura directory (2) Copia driver JDBC (3) Copia driver Liferay Database All In One (4) Creazione environment file per configurazione Liferay Console 2 - Struttura directory e file per la configurazione del container Liferay Nota! Dalla versione 7.4 GA3 di Liferay è stato introdotto il meccanismo cosiddetto Shielded Container, cambia quindi la directory ($LIFERAY_HOME/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib) su cui installare il driver JDBC e il driver Database All In One. Il README del progetto Database All In One riporta nel dettaglio questa particolare nota d'installazione (3. Installation notes for Liferay 7.4 GA3). L'intero contenuto di quanto rappresentato in console 2 può essere creato sulla propria home directory (~) seguendo il flusso indicato dalla figura a seguire. Figura 2 - Flusso per il setup della struttura di directory e file . ├── deploy ├── docker-liferay-env-file.env └── files └── tomcat └── webapps └── ROOT └── WEB-INF └── shielded-container-lib ├── liferay-portal-database-all-in-one-support-1.2.1.jar └── ojdbc8.jar 1 2 3 4 5 6 7 8 9 10 11 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 6 / 15
  • 7. A seguire la sequenza di comandi necessari per creare la struttura di directory e file così come indicata in console 2. Console 3 - Comandi per la creazione della struttura di directory del container Liferay Utilizzando questa struttura di directory (Scanned Container Folders) e file (Providing Files to the Container) è possibile configurare Liferay a nostro piacimento. Il file ~/liferay-74-docker-oracle/docker-liferay-env-file.env contiene in particolare la configurazione per la connessione verso il database Oracle. Queste informazioni devono essere riviste in base alla propria configurazione del database Oracle. Il parametro di environment LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_CONNECTION_UPPERCASET_IMEOUT che corrisponde al parametro di configurazione jdbc.default.connectionTimeout è stato impostato con un valore elevato rispetto allo standard di 30s per evitare errore di Socket Read Timeout sulla connessione Oracle. Questo errore potrebbe accadere nel caso in cui le risorse hardware siano limitate. # Step 1 - Creazione struttura directory $ mkdir ~/liferay-74-docker-oracle $ mkdir ~/liferay-74-docker-oracle/deploy $ mkdir ~/liferay-74-docker-oracle/files $ mkdir -p ~/liferay-74-docker-oracle/files/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib # Step 2 - Copia driver JDBC (ipotizzando il download su ~/Downloads) cp ~/Downloads/ojdbc8.jar ~/liferay-74-docker-oracle/files/tomcat/webapps/ROOT/WEB- INF/shielded-container-lib # Step 3 - Copia driver Liferay Database All In One (ipotizzando il download su ~/Downloads) cp ~/Downloads/liferay-portal-database-all-in-one-support-1.2.1.jar ~/liferay-74-docker- oracle/files/tomcat/webapps/ROOT/WEB-INF/shielded-container-lib # Step 4 - Creazione environment file per configurazione Liferay echo "LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME=oracle.jdbc.OracleDr iver LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_URL=jdbc:oracle:thin:@192.168.56.5:1521/orcl LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_CONNECTION_UPPERCASET_IMEOUT=600000 LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_USERNAME=lportal LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_PASSWORD=lportal LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_DEPENDENCY_PERIOD_MANAGER_PERIOD_SYNC _PERIOD_TIMEOUT=1800 LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_OSGI_PERIOD_CONSOLE=11311" > ~/liferay-74-docker-oracle/docker-liferay-env-file.env 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 7 / 15
  • 8. Il parametro di environment LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_DEPENDENCY_PERIOD_MANAGER_PERIOD _SYNC_PERIOD_TIMEOUT che corrisponde al parametro di configurazione module.framework.properties.dependency.manager.sync.timeout è stato impostato al valore di 1800s rispetto allo standard di 60s per evitare l'errore WARN [http-nio-8080-exec-1][DependencyManagerSyncImpl:85] Dependency manager sync timeout after waiting 60s e di conseguenza correre il rischio che il portale non venga correttamente inizializzato. Per maggiori informazioni fare riferimento a LPS-102056 Upgrade DependencyManger and enable its concurrent activation e Dependency Manager - Thread Model. Una volta completata la struttura di directory e file così come mostrata in console 2, siamo pronti per creare ed eseguire il container di Liferay Portal CE 7.4 configurato per usare il database Oracle. 4. Avvio del container A questo punto siamo pronti per avviare il container di Liferay Portal CE 7.4 configurato per usare il database Oracle. Prima di procedere con l'avvio del container accertiamoci però che l'istanza di Oracle Database 19c sia su e che lo schema dedicato a Liferay sia presente. Possiamo condurre questa verifica eseguendo i comandi indicati in console 4 dal terminale del sistema host. La dicitura SQL> in console 4 rappresenta il prompt di Oracle SQL Developer Command-Line (SQLcl). Console 4 - Verifica dell'istanza Oracle Database 19c # Step 1 - Connessione alla macchina Oracle Database 19c via ssh # (sostituire l'indirizzo IP con il proprio). $ ssh oracle@192.168.56.5 # Step 2 - Connessione allo schema lportal via Oracle SQL Developer Command-Line (SQLcl) e verifica versione di Oracle [oracle@localhost ~]$ sql /nolog SQL> connect lportal/lportal SQL> SELECT BANNER_FULL FROM V$VERSION; 1 2 3 4 5 6 7 8 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 8 / 15
  • 9. La figura 3 mostra l'output della sequenza dei comandi eseguiti e mostrati in console 4. Adesso che siamo certi che l'istanza Oracle sia operativa, possiamo procedere con l'avvio del container così come indicato indicato in console 5. Figura 3 - Test di connessione al database Oracle 19c Console 5 - Avvio del container Liferay Portal CE 7.4 configurato per Oracle Database Il parametro --env-file docker-liferay-env-file.env fa in modo che siano impostate le varibili di ambiente così come definite sul file specificato con lo scopo applicare la configurazione al portale Liferay. La figura 4 mostra l'output del comando che esegue il pull dell'immagine liferay/portal:7.4.2-ga3 dal repository di Docker Hub. # Step 1 - Pull dell'immagine liferay/portal:7.4.2-ga3 $ docker pull liferay/portal:7.4.2-ga3 # Step 2 - Avvio del container Liferay Portal CE 7.4 $ cd ~/liferay-74-docker-oracle $ docker run --rm -it --name liferay74ga3-oracle19c -p 8080:8080 -p 11311:11311 -v $(pwd):/mnt/liferay --env-file docker-liferay-env-file.env liferay/portal:7.4.2-ga3 1 2 3 4 5 6 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 9 / 15
  • 10. Figura 4 - Pull dell'immagine liferay/portal:7.4.2-ga3 da Docker Hub La figura 5 mostra invece l'avvio del container di Liferay e in particolare l'evidenza che Liferay abbia instaurato la connessione verso il database Oracle e iniziato a eseguire la creazione di tutti gli oggetti sul database Oracle. Figura 5 - Avvio del container Liferay Portal CE 7.4 configurato per Oracle Database Il primo avvio potrebbe durare qualche minuto, al termine il portale dovrebbe essere raggiungibile all'indirizzo http://localhost:8080 (vedi figura 6) e la Gogo Shell accessibile alla porta 11311 via telnet localhost 11311 . Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 10 / 15
  • 11. Figura 6 - Accesso al portale Liferay dopo lo start-up via Docker 5. Bonus Eccoci arrivati al capitolo bonus! In cosa consiste? Presto detto. SQL DDL per la creazione tablespace e schema per il database del portale Liferay Archivio zip contenente la struttura di directory e file vista al capitolo 3. Prima di avviare il container In console 6 sono mostrati tutti i comandi necessari per creare tablespace e schema per il database del portale Liferay. La dicitura SQL> in console 6 rappresenta il prompt di SQLcl. I comandi indicati in console 6 sono validi se eseguiti sull'instanza Oracle Database 19c creata attraverso l'immagine Oracle VirtualBox rilasciata da Oracle stessa. # Step 1 - Connessione alla macchina Oracle Database 19c via ssh # (sostituire l'indirizzo IP con il proprio). $ ssh oracle@192.168.56.5 # Step 2 - Connessione allo schema lportal via Oracle SQL Developer Command-Line (SQLcl) e verifica versione di Oracle [oracle@localhost ~]$ sql /nolog 1 2 3 4 5 6 7 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 11 / 15
  • 12. Console 6 - Comandi per la creazione di tablespace e schema per il database del portale Liferay I parametri utilizzati per la creazione dei tablespace dedicati a Liferay Portal sono in genere adeguati per un ambiente di sviluppo/test; consiglio comunque di fare riferimento al DBA Oracle quando dovete inizializzare il database di Liferay per gli ambienti di pre-produzione e produzione. Seguendo il link liferay-74-docker-oracle dovreste poter scaricare il file zip liferay-74-docker-oracle.zip il cui contenuto è quello indicato al capitolo 3. Prima di avviare il container. Utilizzando questo zip file vi risparmiate di scaricare il driver JDBC di Oracle e il Liferay Database All In One. Il checksum md5 dell'archivio è MD5 (liferay-74-docker- oracle.zip) = 5281ff4582baaab5f9d5fc1f1b84f1b9 # Step 3 - Connessione al database Oracle come sysdba utilizzando l'utente sys e # password oracle SQL> connect sys/oracle as sysdba # Step 4 - Passaggio al container Oracle SQL> ALTER SESSION SET container = ORCL; # Step 5 - Creazione tablespace per i dati di Liferay SQL> CREATE TABLESPACE liferay_data logging DATAFILE '/u01/app/oracle/oradata/ORCLCDB/liferay_data.dbf' SIZE 64m autoextend ON NEXT 32m maxsize 4096m blocksize 8k EXTENT management local; # Step 6 - Creazione tablespace per i dati temporanei SQL> CREATE TEMPORARY TABLESPACE liferay_temp tempfile '/u01/app/oracle/oradata/ORCLCDB/liferay_temp.dbf' SIZE 64m autoextend ON NEXT 32m maxsize 2048m blocksize 8k EXTENT management local; # Step 7 - Creazione utente/schema lportal SQL> CREATE USER lportal IDENTIFIED BY lportal DEFAULT TABLESPACE liferay_data TEMPORARY TABLESPACE liferay_temp PROFILE DEFAULT account unlock; # Step 8 - Assegnazione grant allo user lportal GRANT CONNECT TO lportal; GRANT RESOURCE TO lportal; GRANT UNLIMITED TABLESPACE TO lportal; 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 12 / 15
  • 13. 6. Conclusioni Con questo breve articolo abbiamo visto quale sia il modo di configurare un ambiente di sviluppo/test basato sulle immagini Docker di Liferay Portal CE, dove quest'ultimo è configurato per avere un database Oracle come RDBMS. Lo stesso scenario è applicabile anche alle immagini DXP del portale Liferay, con la sola differenza che non è necessario installare il driver Liferay Database All In One. 7. Risorse A seguire una serie di risorse che riguardano gli argomenti che sono stati trattati nel corso di questo articolo. How to setup Docker container Oracle Database 19c for Liferay Development Environment del blog Antonio Musarra's Blog How to build a Docker Liferay 7.2 image with the Oracle Database support del blog Antonio Musarra's Blog Come installare Liferay 7 su JBoss EAP con il supporto per Oracle Database del canale YouTube di Antonio Musarra's Blog Come creare immagini Docker Liferay DXP Red Hat JBoss EAP del blog SMC TechBlog Docker: Sviluppare e rilasciare software tramite container - Libro di Serena Sensini Pillole di Docker del canale YouTube EmmeCiLab - Informatica e Matematica Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 13 / 15
  • 14. Antonio Musarra, Liferay Portal CE 7.4: Come configurare Oracle Database 19c Copertina e impaginazione di Antonio Musarra antonio.musarra@gmail.com Prima edizione digitale Gennaio 2022 (versione 1.0.0) Serie: Liferay Deployment Guide (#lfrdeploymentguide) Promosso da: Antonio Musarra's Blog https://www.dontesta.it Canali Social https://twitter.com/antonio_musarra https://www.linkedin.com/in/amusarra/ https://www.facebook.com/antoniomusarrablog/ https://www.slideshare.net/amusarra NOTE SUL COPYRIGHT: Tutti i diritti d’autore e connessi sulla presente opera appartengono all’autore Antonio Musarra. Per volontà dell’autore quest’opera è rilasciata nei termini della licenza Creative Commons Attribuzione – Non Commerciale – Condividi allo stesso modo 3.0 Italia (CC BY-NC-SA 3.0 IT) il cui testo integrale è disponibile alla pagina web https://goo.gl/jYtSzA Tutti i marchi riportati appartengo ai legittimi proprietari; marchi di terzi, nomi di prodotti, nomi commerciali, nomi corporativi e società citati possono essere marchi di proprietà dei rispettivi titolari o marchi registrati d’altre società e sono stati utilizzati a puro scopo esplicativo ed a beneficio del possessore, senza alcun fine di violazione dei diritti di copyright vigenti. Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 14 / 15
  • 15. 1. In informatica JDBC (Java DataBase Connectivity), è un connettore (driver) per database che consente l'accesso e la gestione della persistenza dei dati sulle basi di dati da qualsiasi programma scritto con il linguaggio di programmazione Java, indipendentemente dal tipo di DBMS utilizzato. È costituito da un'API object oriented orientata ai database relazionali, raggruppata nel package java.sql, che serve ai client per connettersi a un database fornendo i metodi per interrogare e modificare i dati (fonte Wikipedia ) ↩ 2. Il termine relational database management system (RDBMS, sistema per la gestione di basi di dati relazionali) indica un database management system basato sul modello relazionale, introdotto da Edgar F. Codd. Oltre a questi, anche se meno diffusi a livello commerciale, esistono sistemi di gestione di basi di dati che implementano modelli dei dati alternativi a quello relazionale: gerarchico, reticolare e a oggetti (fonte Wikipedia ). ↩ Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 15 / 15