Il supporto per la persistenza relazionale del database in AEM viene implementato utilizzando il Document Microkernel. Document Microkernel è la base utilizzata anche per implementare la persistenza MongoDB.
È costituita da un'API Java basata sull'API Java di Mongo. Viene inoltre fornita un'implementazione di un'API BlobStore. Per impostazione predefinita, i BLOB sono memorizzati nel database.
Per ulteriori informazioni sull'implementazione, consultare la documentazione relativa a RDBDocumentStore e RDBBlobStore.
È inoltre disponibile il supporto per PostgreSQL 9.4, ma solo a scopo dimostrativo. Non sarà disponibile per gli ambienti di produzione.
Per ulteriori informazioni sul livello di supporto del database relazionale in AEM, vedere la pagina Requisiti tecnici.
Il repository viene creato configurando il servizio DocumentNodeStoreService
OSGi. È stato esteso per supportare la persistenza relazionale del database oltre a MongoDB.
Per consentirne il funzionamento, è necessario configurare un'origine dati con AEM. Questa operazione viene eseguita tramite il file org.apache.sling.datasource.DataSourceFactory.config
. I driver JDBC per il rispettivo database devono essere forniti separatamente come bundle OSGi all'interno della configurazione locale.
Per informazioni sulla creazione di pacchetti OSGi per i driver JDBC, consultate questa documentazione nel sito Web Apache Sling.
Alcuni dei driver SQL sono già compressi come bundle OSGi.
In questo caso, copiate il file jar su install-path/crx-quickstart/install/9.
Una volta installati i bundle, attenetevi alla seguente procedura per configurare AEM con la persistenza RDB:
Accertatevi che il demone del database sia avviato e che sia presente un database attivo da utilizzare con AEM.
Copiate il AEM 6.3 jar nella directory di installazione.
Create una cartella denominata crx-quickstart\install
nella directory di installazione.
Configurare l'archivio dei nodi del documento creando un file di configurazione con il seguente nome nella directory crx-quickstart\install
:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
Configurate l'origine dati e i parametri JDBC creando un altro file di configurazione con il seguente nome nella cartella crx-quickstart\install
:
org.apache.sling.datasource.DataSourceFactory-oak.config
Per informazioni dettagliate sulla configurazione dell'origine dati per ciascun database supportato, vedere Opzioni di configurazione dell'origine dati.
Quindi, preparate i bundle JDBC OSGi da utilizzare con AEM:
mysql-connector-java-version-bin.jar
(bundle) dall'archivioInfine, iniziare AEM con le modalità di esecuzione crx3
e crx3rdb
:
java -jar quickstart.jar -r crx3,crx3rdb
La configurazione org.apache.sling.datasource.DataSourceFactory-oak.config
OSGi viene utilizzata per configurare i parametri necessari per la comunicazione tra AEM e il livello di persistenza del database.
Sono disponibili le seguenti opzioni di configurazione:
datasource.name:
Il nome dell'origine dati. Il valore predefinito è oak
.
url:
Stringa URL del database che deve essere utilizzata con JDBC. Ogni tipo di database ha un proprio formato di stringa URL. Per ulteriori informazioni, vedere Formati di stringa URL di seguito.
driverClassName:
Il nome della classe del driver JDBC. Ciò varia a seconda del database che si desidera utilizzare e, successivamente, del driver necessario per connettersi ad esso. Di seguito sono riportati i nomi delle classi per tutti i database supportati da AEM:
org.postgresql.Driver
per PostgreSQL;com.ibm.db2.jcc.DB2Driver
per DB2;oracle.jdbc.OracleDriver
per Oracle;com.mysql.jdbc.Driver
per MySQL e MariaDB (sperimentale);om.microsoft.sqlserver.jdbc.SQLServerDriver
per Microsoft SQL Server (sperimentale).username:
Il nome utente utilizzato dal database.
password:
La password del database.
Nella configurazione dell'origine dati viene utilizzato un formato di stringa URL diverso a seconda del tipo di database da utilizzare. Di seguito è riportato un elenco di formati per i database che AEM attualmente supportano:
jdbc:postgresql:databasename
per PostgreSQL;
jdbc:db2://localhost:port/databasename
per DB2;
jdbc:oracle:thin:localhost:port:SID
per Oracle;
jdbc:mysql://localhost:3306/databasename
per MySQL e MariaDB (sperimentale);
jdbc:sqlserver://localhost:1453;databaseName=name
per Microsoft SQL Server (sperimentale).
Anche se l'uso simultaneo di più istanze AEM con un singolo database è supportato dalla persistenza RDBMS, le installazioni simultanee non lo sono.
Per risolvere il problema, accertatevi di eseguire prima l'installazione con un singolo membro e di aggiungere gli altri al termine della prima installazione.