O suporte para a persistência do banco de dados relacional no AEM é implementado usando o Microkernel de Documento. O Microkernel de Documento é a base que também é usada para implementar a persistência do MongoDB.
Consiste em uma API Java baseada na API Java do 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.
Também é fornecido suporte para PostgreSQL 9.4, 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 configurando-se o serviço DocumentNodeStoreService
OSGi. Ele foi estendido para oferecer suporte à persistência de banco de dados relacional, além do MongoDB.
Para que funcione, uma fonte de dados precisa ser configurada com AEM. Isso é feito por meio do arquivo org.apache.sling.datasource.DataSourceFactory.config
. Os drivers JDBC para o respectivo banco de dados precisam ser fornecidos separadamente como pacotes OSGi dentro da configuração local.
Para obter as etapas sobre como criar pacotes OSGi para drivers JDBC, consulte esta documentação no site do 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 de RDB:
Certifique-se de que o daemon do banco de dados foi iniciado e que você tem um banco de dados ativo para usar com o AEM.
Copie o jar do AEM 6.3 no diretório de instalação.
Crie uma pasta chamada crx-quickstart\install
no diretório de instalação.
Configure o armazenamento do 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 OSGi do JDBC para serem usados com o AEM:
mysql-connector-java-version-bin.jar
(pacote) do arquivoFinalmente, comece AEM com os modos de execução crx3
e crx3rdb
:
java -jar quickstart.jar -r crx3,crx3rdb
A configuração do OSGi org.apache.sling.datasource.DataSourceFactory-oak.config
é 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 cadeia de caracteres do 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 deseja usar e, subsequentemente, do driver necessário para se conectar a ele. Abaixo estão os nomes de classe para todos os bancos de dados suportados pelo AEM:
org.postgresql.Driver
PostgreSQL;com.ibm.db2.jcc.DB2Driver
DB2;oracle.jdbc.OracleDriver
para Oracle;com.mysql.jdbc.Driver
para 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:
jdbc:postgresql:databasename
PostgreSQL;
jdbc:db2://localhost:port/databasename
DB2;
jdbc:oracle:thin:localhost:port:SID
para Oracle;
jdbc:mysql://localhost:3306/databasename
para 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 de AEM com um único banco de dados seja compatível com a persistência do RDBMS, as instalações simultâneas não são.
Para contornar isso, execute a instalação com um único membro primeiro e adicione os outros depois que o primeiro terminar de instalar.