Suporte RDBMS no AEM 6.4

Visão geral

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.

OBSERVAÇÃO

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.

Bancos de Dados Suportados

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.

Etapas de configuração

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.

OBSERVAÇÃO

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:

  1. 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.

  2. Copie o jar do AEM 6.3 no diretório de instalação.

  3. Crie uma pasta chamada crx-quickstart\install no diretório de instalação.

  4. 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
  5. 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
    OBSERVAÇÃO

    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.

  6. Em seguida, prepare os pacotes OSGi do JDBC para serem usados com o AEM:

    1. Baixe o arquivo ZIP em https://dev.mysql.com/downloads/connector/j/
      • deve ser >= 5.1.38
    2. Extraia o mysql-connector-java-version-bin.jar (pacote) do arquivo
    3. Use o console da Web para instalar e iniciar o pacote :
      • Vá para http://serveraddress:serverport/system/console/bundles
      • Selecione Instalar/Atualizar
      • Navegue até o pacote selecionado extraído do arquivo ZIP baixado
      • Verifique se o Driver JDBC da Oracle Corporation para MySQLcom.mysql.jdbc está ativo e inicie-o.
  7. Finalmente, comece AEM com os modos de execução crx3 e crx3rdb:

    java -jar quickstart.jar -r crx3,crx3rdb
    

Opções de configuração da fonte de dados

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);
    • c 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.

Formatos da string de URL

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).

Limitações conhecidas

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.

Nesta página