O suporte para a persistência do banco de dados relacional no AEM é implementado usando o Documento Microkernel. O Microkernel do Documento é a base que também é usada para implementar a persistência do MongoDB.
Ele consiste em uma API Java baseada na API Java Mongo. Uma implementação de uma API BlobStore também é fornecida. Por padrão, os blobs são armazenados no banco de dados.
Para obter mais informações sobre os detalhes de implementação, consulte a documentação RDBDocumentStore e RDBBlobStore.
O suporte para PostgreSQL 9.4 também é fornecido, mas somente para fins de demonstração. Ele não estará disponível para ambientes de produção.
Para obter mais informações sobre o nível de suporte ao banco de dados relacional no AEM, consulte a página Requisitos técnicos.
O repositório é criado pela configuração do serviço DocumentNodeStoreService
OSGi. Foi estendido para suportar a persistência do banco de dados relacional, além do MongoDB.
Para que funcione, uma fonte de dados precisa ser configurada com AEM. Isso é feito pelo arquivo org.apache.sling.datasource.DataSourceFactory.config
. Os drivers JDBC para o respectivo banco de dados precisam ser fornecidos separadamente, já que os pacotes OSGi estão dentro da configuração local.
Para obter etapas sobre como criar pacotes OSGi para drivers JDBC, consulte esta documentação no site Apache Sling.
Alguns dos drivers SQL já estão empacotados como pacotes OSGi.
Se esse for o caso, basta copiar o arquivo jar para install-path/crx-quickstart/install/9.
Depois que os pacotes estiverem em vigor, siga as etapas abaixo para configurar o AEM com a persistência RDB:
Verifique se o daemon do banco de dados foi iniciado e se você tem um banco de dados ativo para uso com AEM.
Copie o AEM 6.3 jar no diretório de instalação.
Crie uma pasta chamada crx-quickstart\install
no diretório de instalação.
Configure o armazenamento de nó do documento criando um arquivo de configuração com o seguinte nome no diretório crx-quickstart\install
:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
Configure a fonte de dados e os parâmetros JDBC criando outro arquivo de configuração com o seguinte nome na pasta crx-quickstart\install
:
org.apache.sling.datasource.DataSourceFactory-oak.config
Para obter informações detalhadas sobre a configuração da fonte de dados para cada banco de dados suportado, consulte Opções de configuração da fonte de dados.
Em seguida, prepare os pacotes JDBC OSGi a serem usados com AEM:
mysql-connector-java-version-bin.jar
(conjunto) do arquivoFinalmente, o start AEM com os modos de execução crx3
e crx3rdb
:
java -jar quickstart.jar -r crx3,crx3rdb
A configuração org.apache.sling.datasource.DataSourceFactory-oak.config
OSGi é usada para configurar os parâmetros necessários para a comunicação entre o AEM e a camada de persistência do banco de dados.
As seguintes opções de configuração estão disponíveis:
datasource.name:
O nome da fonte de dados. O padrão é oak
.
url:
A string de URL do banco de dados que precisa ser usado com o JDBC. Cada tipo de banco de dados tem seu próprio formato de string de URL. Para obter mais informações, consulte Formatos de cadeia de caracteres de URL abaixo.
driverClassName:
O nome da classe do driver JDBC. Isso será diferente dependendo do banco de dados que você deseja usar e, subsequentemente, do driver que é necessário para se conectar a ele. Abaixo estão os nomes de classe para todos os bancos de dados suportados pela AEM:
org.postgresql.Driver
PostgreSQL;com.ibm.db2.jcc.DB2Driver
DB2;oracle.jdbc.OracleDriver
para Oracle;com.mysql.jdbc.Driver
MySQL e MariaDB (experimental);om.microsoft.sqlserver.jdbc.SQLServerDriver
para Microsoft SQL Server (experimental).username:
O nome de usuário em que o banco de dados é executado.
password:
A senha do banco de dados.
Um formato de string de URL diferente é usado na configuração da fonte de dados, dependendo do tipo de banco de dados que precisa ser usado. Abaixo está uma lista de formatos para os bancos de dados que AEM atualmente compatíveis:
jdbc:postgresql:databasename
PostgreSQL;
jdbc:db2://localhost:port/databasename
DB2;
jdbc:oracle:thin:localhost:port:SID
para Oracle;
jdbc:mysql://localhost:3306/databasename
MySQL e MariaDB (experimental);
jdbc:sqlserver://localhost:1453;databaseName=name
para Microsoft SQL Server (experimental).
Embora o uso simultâneo de várias instâncias AEM com um único banco de dados seja suportado pela persistência de RDBMS, as instalações simultâneas não são.
Para contornar esse problema, primeiro execute a instalação com um único membro e adicione os outros depois que a primeira instalação terminar.