Successfully reported this slideshow.

Liferay Portal CE 7.4: Come configurare Oracle Database 19c

0

Share

1 of 15
1 of 15

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Liferay Portal CE 7.4: Come configurare Oracle Database 19c

  1. 1. Liferay Portal CE 7.4: Come configurare Oracle Database 19c No. 1 / 15
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×