Páginas

sábado, 30 de agosto de 2014

Configurando um Datasource no JBoss EAP 6


Nesta postagem, veremos como configurar o DataSource no JBoss EAP 6 de duas diferentes formas.
Após configurar o DataSource, mostrarei tambem uma forma simples de realizar testes em DataSources utilizando o JBoss CLI.





Na nova versão do JBoss existem algumas formas de configurar o DataSource, porém irei abordar nesta postagen apenas duas diferentes formas, adicionando o driver do banco por Deploy e adicionando o driver do banco por módulo.

Neste exemplo irei utilizar a versão do JBoss 6.3.0 com o banco de dados PostgreSQL 8.4.

Para baixar o driver do Postgres, acesse este link.

Para simular um ambiente de produção, irei utilizar o meu banco de dados em um servidor separado do meu JBoss, no meu caso, o Banco de Dados estará configurado no IP: 192.168.56.10.

Para quem não souber como criar e configurar um Banco de Dados Postgres, acesse este link para mais informações.

Após baixar o driver do Postgres e já ter o Banco de Dados configurado no IP: 192.168.56.10, vamos agora escolher a forma de configurar o DataSource no JBoss EAP 6.3.0.


Diferença entre a configuração por Deploy e por Módulo


  • Na configuração por Deploy, é necessário que o Deploy do driver seja associado a um ou mais server-group, para casos onde existam muitos server-groups, este tipo de configuração será mais trabalhosa.
  • Na configuração por módulo, este ficará disponível para o servidor de aplicação independente de server-group, podendo ser usado por todos.

Conhecendo agora a diferença entre eles, você pode escolher qual tipo de configuração irá utilizar.

 

 Configurando driver por Deploy

 

1- Após baixar o Driver de acordo com a versão configurada do Postgres, você deverá realizar o deploy e atribuir a um ou mais server-groups, para isso, digite os comandos abaixo no Domain Controller do JBoss 6.3:

[root]# cd /opt/jboss/bin
[root]# ./jboss-cli.sh -c
[domain@localhost:9999 /] deploy <caminho-do-jar> --server-groups=main-server-group 


2- Após completar o deploy, vamos editar o arquivo domain.xml para configurar de fato o DataSource, para isso edite o arquivo com o comando abaixo:

[root]# vim /opt/jboss/domain/configuration/domain.xml


2.1 - Localize neste arquivo o subsystem DataSource. Ao localizar acrescente o conteúdo abaixo para configurar o DataSource:
...
<datasources>
    <datasource jta="true" jndi-name="java:jboss/postgresql/dsTeste" pool-name="dsTeste" enabled=true" use-java-context="true" use-ccm="true">
     <connection-url>jdbc:postgresql://192.168.56.10:5432/teste</connection-url>
     <driver>postgresql-8.4-703.jdbc4.jar</driver>
     <pool>
     <min­-pool­-size>2</min­-pool­-size>
     <max­-pool­-size>20</max­-pool­-size>
     <prefill>true</prefill>
     <use­-strict­-min>false</use­-strict­-min>
     <flush­-strategy>FailingConnectionOnly</flush­-strategy>
   </pool>
  <security>
   <user­-name>4jboss</user­-name>
   <password>4jboss</password>
  </security>
  <validation>
  <check­-valid­-connection­-sql>SELECT 1</check­-valid­-connection­-sql>
    <validate­-on­-match>false</validate­-on­-match>
    <background­-validation>false</background­-validation>
    <use­-fast­-fail>false</use­-fast­-fail>
   </validation>
  </datasource>
....
</datasources>



Reparem que o ítem marcado em vermelho deve levar o mesmo nome do arquivo que foi feito deploy no ítem 1.

Pronto, com estas configurações o DataSource já estará criado e pronto para ser utilizado pelos server-groups que possuírem o deploy do driver.


Configurando driver por Módulo

 

1 - Após baixar o Driver de acordo com a versão configurada do Postgres, você deverá realizar copiá-lo para o diretório de módulos do JBoss EAP 6.3, para isso, siga os passos abaixo:

 1.1 - Crie um novo diretório para o modulo do Banco de Dados em um local apropriado dentro do diretório de módulos, no meu caso, criarei o seguinte caminho: (/opt/jboss/modules/system/layers/base/org/postgresql), para isso, digite o comando abaixo:

[root]# mkdir /opt/jboss/modules/system/layers/base/org/postgresql


 1.2 - Agora que o diretório já foi criado, precisamos seguir a convensão do JBoss e criar outros diretório, para isso, siga os comandos abaixo:

[root]# cd   /opt/jboss/modules/system/layers/base/org/postgresql
[root]# mkdir main

1.3 - Dentro do diretório main criado no ítem anterior, deveremos colocar o driver do postgres e criar um novo arquivo com nome (module.xml) e inserir o conteúdo abaixo, para isso, execute os comandos abaixo:
     
[root]# cd /opt/jboss/modules/system/layers/base/org/postgresql/main
[root]# cp /tmp/postgresql-8.4-703.jdbc4.jar .
[root]# vim module.xml


<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgres">

    <resources>
        <resource-root path="postgresql-8.4-703.jdbc4.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>



2 - Agora que já criamos o nosso módulo do Postgres e configuramos as dependências, vamos editar o arquivo domain.xml e configurar o DataSource de fato, para isso, execute o comando abaixo:

[root]# vim /opt/jboss/domain/configuration/domain.xml
  

2.1 - Localize o subsytem DataSource e acrescente o constúdo abaixo:

 ....
<datasources>
     <datasource jta="true" jndi-name="java:jboss/postgresql/dsTeste" pool-name="dsTeste" enabled=true" use-java-context="true" use-ccm="true">
     <connection-url>jdbc:postgresql://192.168.56.10:5432/teste</connection-url>
     <driver>postgres-jdbc</driver>
     <pool>
     <min-­pool­-size>2</min­-pool­-size>
     <max­-pool­-size>20</max­-poo-l­size>
     <prefill>true</prefill>
     <use­-strict­-min>false</use­-strict­-min>
     <flush­-strategy>FailingConnectionOnly</flush­-strategy>
   </pool>
  <security>
   <user­-name>4jboss</user­-name>
   <password>4jboss</password>
  </security>
  <validation>
  <check­-valid­-connection­-sql>SELECT 1</check­-valid­-connection­-sql>
    <validate­-on­-match>false</validate­-on­-match>
    <background­-validation>false</background­-validation>
    <use­-fast­-fail>false</use­-fast­-fail>
   </validation>
  </datasource>
....
 <drivers>
    <driver> name="postgres-jdbc" module="org.postgresql"/> 
     ....
  </drivers>
</datasources> 

Reparem que os ítens marcados em vermelho possuem o mesmo nome e o ítem marco em azul faz referência ao diretório que criamos dentro do diretório de módulos do JBoss.

Feito isso, já temos o nosso DataSource configurado por módulo pronto para uso por qualquer server-group.


Testando o DataSource

 

Existe uma forma de realizar teste de conexão com o DataSource através do Jboss-cli, este teste pode ser usado em qualquer versão do JBoss EAP 6.x.

Na atual versão 6.3.0 existe na console web uma opção para teste, porém para quem usa versões anteriores esta opção ainda não existe, por isso, mostrarei como realizar o teste pelo CLI.

1- Execute o comando abaixo para iniciar o Jboss CLI:

[root]# /opt/jboss/bin/jboss-cli.sh -c

2- Na linha de comando do JBoss CLI, execute o comando abaixo para realizaro teste de conexão:

[domain@localhost:9999 /] /host=master/server=server-two/subsystem=datasources/data-source=dsTest:test-connection-in-pool 

Os ítens marcados em amarelo podem variar de acordo como foi configurado o seu servidor.

3- O comando acima gera uma saída parecida com esta:

{
    "outcome" => "success",
    "result" => [true]
}

Pronto, já temos um DataSource criado, configurado e testado no nosso ambiente.



Até a próxima.

Nenhum comentário :

Postar um comentário