Pool de conexões PostgreSQL no Wildfly

De Wiki Integrator do Brasil
Edição feita às 17h41min de 12 de outubro de 2016 por Integratorhost (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Índice

Antes de começar o tutorial

Os passos a seguir devem ser realizados no terminal SSH. Para se conectar no terminal SSH, veja o tópico Acesso SSH.
A porta informada para o acesso ao Wildfly no jboss-cli é ensinado em como visualizar no tópico Usando o jboss-cli.sh.

Sobre o material aqui informado

Todos os passos transmitidos são extremamente técnicos, cujo se referem ao Wildfly. Para detalhes, a documentação do Wildfly é a sua única fonte para a compreensão completa. O suporte de hospedagem se limita aos nossos painéis e serviços. O Wildfly e suas características são de responsabilidade de seus idealizadores.

Utilizando o jboss-cli

Para utilizar o jboss-cli.sh, necessário para compreender este tutorial, veja o tópico Usando o jboss-cli.sh.

Adicionando um módulo através do jboss-cli.sh

O comando a seguir segue o roteiro do trabalho com o PostgreSQL:
1. Suba no seu usuário, aquele diretório que é acessado pelo FTP/SFTP assim que se conecta, o driver JDBC que está operando. Se preferir, utilize o Gerenciador de arquivos.
2. No terminal SSH, utilize o comando mostrado a seguir. No nosso caso, vamos usar como exemplo o Wildfly 10.1.0 instalado e a biblioteca JDBC postgresql-9.4.1211.jre6.jar. O painel Integrator Java EE mostra o Local onde o servidor Java é instalado. Lembrando que a porta do Console Admin do Wildfly deve ser vista antecipadamente no painel Java. Veja como clicando aqui.

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445 --command='module add --name=org.postgresql --resources=postgresql-9.4.1211.jre6.jar --dependencies=javax.api\,javax.transaction.api';

Registrando o driver através do jboss-cli.sh

3. Para registrar o Driver JDBC do PostgreSQL, execute o seguinte comando no terminal SSH.

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445 --commands='/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql, driver-module-name=org.postgresql, driver-datasource-class-name=org.postgresql.Driver, driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)';

A resposta esperada será como esta mostrada a seguir:

{
    "outcome" => "success",
    "response-headers" => {"process-state" => "reload-required"}
}

3.1. No terminal, execute este comando para que seja registrado:

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands=:reload

Definindo o XA-DATASOURCES

4. Neste caso, teremos os seguintes comandos:
4.1. Primeiro comando, registrando o datasource:

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands='/subsystem=datasources/xa-data-source=postgresqlDS:add(driver-name=postgresql, jndi-name=java:/postgresqlDS, valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker, exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter, user-name=clouds_suporte, password=Tr0C@r123, use-java-context=true, use-ccm=true, pool-prefill=true, enabled=false, min-pool-size=3 , max-pool-size=10)';

4.2. Segundo comando, registrando o local do banco de dados, no caso, localhost:

~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands='/subsystem=datasources/xa-data-source="postgresqlDS"/xa-datasource-properties=ServerName:add(value="localhost")'

4.2. O terceiro comando, adicionando o nome do banco de dados:

~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands='/subsystem=datasources/xa-data-source="postgresqlDS"/xa-datasource-properties=DatabaseName:add(value="clouds_teste")'

Os comandos acima devem retornar a seguinte resposta no terminal:

{"outcome" => "success"}

4.3. Terceiro comando:

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands='xa-data-source enable --name=postgresqlDS';

A resposta esperada no terminal:

operation-requires-reload: true            
process-state:             reload-required 

4.4. Para confirmar o que foi configurado, no terminal, execute este último comando:

 ~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands=:reload


Testando o XA-DATASOURCES no jboss-cli

Use o seguinte comando no terminal SSH para testar o pool de conexão criado:

~/appservers/wildfly-10.1.0.Final/bin/jboss-cli.sh  -c controller=localhost:21445  --commands='/subsystem=datasources/xa-data-source=postgresqlDS:test-connection-in-pool'

O resultado esperado como resposta no terminal:

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


Visualizando no Console Admin

Caso queira visualizar o que foi criado, através do Console Admin, veja em Configuration » Subsystems » Datasources » XA e clique em View.