Configurando o WSO2 com PostgreSQL

Quando instalamos as ferramentas do WSO2 por padrão vem configurado com o banco H2, mas hoje vamos ver como alterar para o PostgreSQL dessa forma deixando nossa arquitetura mais robusta.

1. Configurando a base

Primeiro de tudo temos que criar a base de dados no Postgre, para isso vamos utilizar a ferramenta PgAdmin que ja vem na instalação do PostgreSQL. Abra o PgAdmin e clique com o botão direito em cima de DataBases e selecione a opção New Database.

Na nova janela coloque o nome da nova database de gregdb e clique em OK

Agora vamos criar um novo usuário, clique com o botão direito em cima de Login Roles e selecione a opção New Login Role

Na nova janela configure da seguinte maneira:

  • Role Name: gregadmin
  • Password: gregadmin
  • Password (again): gregadmin

Para finalizar clique em OK

2. Configurando o Registry

Agora vamos alterar as configurações do Registry, abra o arquivo registry.xml que se encontra no diretório $GREG_HOME/repository/conf, onde $GREG_HOME é o local onde  está instalado o WSO2 Governance Registry,
e adicione as seguintes linhas.

[sourcecode language=”xml”]
<dbConfig name="postgresql-db">
<url>jdbc:postgresql://localhost:5432/gregdb</url>
<userName>gregadmin</userName>
<password>gregadmin</password>
<driverName>org.postgresql.Driver</driverName>
<maxActive>80</maxActive>
<maxWait>60000</maxWait>
<minIdle>5</minIdle>
</dbConfig>
[/sourcecode]

Explicando a configuração:

  • url: Endereço JDBC para o banco
  • username: Usuário para conectar ao banco
  • password: Senha do usuário
  • driverName: Nome do driver
  • maxActive: O número máximo de conexões ativas
  • maxWait: O número máximo de milissegundos que o pool de espera para uma conexão ser devolvido
  • minIdle: O número mínimo de conexões ativas que pode permanecer inativo no pool

Depois de criado a conexão temos que ativa-la, altere a opção currentDBConfig para a coneão que acabamos de criar.

[sourcecode language=”xml”]
<currentDBConfig>postgresql-db</currentDBConfig>
[/sourcecode]

Agora vamos editar o arquivo user-mgt.xml que se encontra no mesmo diretório ($GREG_HOME/repository/conf) e faça a seguinte alteração.

[sourcecode language=”xml”]
<Configuration>

<Property name="url">jdbc:postgresql://localhost:5432/gregdb</Property>
<Property name="userName">gregadmin</Property>
<Property name="password">gregadmin</Property>
<Property name="driverName">org.postgresql.Driver</Property>
<Property name="maxActive">50</Property>
<Property name="maxWait">60000</Property>
<Property name="minIdle">5</Property>
</Configuration>
[/sourcecode]

3. Adicionando o Driver

Para que nossa conexão com o banco funcione, temos que fazer o download do driver JDBC em http://jdbc.postgresql.org/download.html, baixe a versão JDBC4 e depois copie o JAR para o diretório $GREG_HOME/repository/components/lib

4. Criando a base

Para finalizar, vamos criar as tabelas na base, para isso temos que iniciar o serviço do Registy com a opção -Dsetup.

[sourcecode language=”xml”]
./wso2server.sh -Dsetup
[/sourcecode]

ATENÇÃO: Essa opção só deve ser executada apenas uma vez

Vamos acessar o PgAdmin e verificar se as tabelas foram criadas

5. Configurando o DS, WSAS, ESB

Depois de ter criado a base do Registry, podemos configurar os outros servers para se comunicar com a base Postgre. Basicamente é o mesmo processo temos que editar o arquivo registry.xml adicionando as configurações de conexão com o banco.

Data Services

  • Abra o arquivo $DS_HOME/repository/conf/registry.xml e adicione a configuração do Postgre conforme descrito acima
  • Abra o arquivo $DS_HOME/repository/conf/user-mgt.xml e altere a configuração de conexão conforme descrito acima
  • adicione o jar no diretório $DS_HOME/repository/components/lib

Application Services

  • Abra o arquivo $WSAS_HOME/repository/conf/registry.xml e adicione a configuração do Postgre conforme descrito acima
  • Abra o arquivo $WSAS_HOME/repository/conf/user-mgt.xml e altere a configuração de conexão conforme descrito acima
  • adicione o jar no diretório $WSAS_HOME/repository/components/lib

Enterprise Service Bus

  • Abra o arquivo $ESB_HOME/repository/conf/registry.xml e adicione a configuração do Postgre conforme descrito acima
  • Abra o arquivo $ESB_HOME/repository/conf/user-mgt.xml e altere a configuração de conexão conforme descrito acima
  • adicione o jar no diretório $ESB_HOME/repository/components/lib

Depois de alterado as configurações, podemos iniciar os serviços normalmente (sem a opção -Dsetup)

Agora nosso ambiente está configurado para usar o PostgreSQL, se você quiser usar o MySQL, Oracle, SQLServer como SGBD pode usar esses mesmos passos apenas alterando as configurações de conexão.

Até a próxima!

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.