Configurando DataSource no Jboss AS 7 (Postgresql)

Como sabemos, o pessoal do Jboss trabalhou duro no quesito desempenho para o lançamento do seu AS 7. E logo de cara, notamos que além do ótimo desempenho, a mudança de maior impacto foi na reformulação de toda estrutura, para uma Estrutura baseada em Módulos.

Graças à essa mudança,  quando startamos nosso container, ele não vai mais carregar todas as dependências de uma só vez. Agora serão carregados apenas os módulos necessários na inicialização do Jboss.

Os DataSources, agora, são tratados como Módulos. Então devemos “avisar” para o container carregar o Módulo DataSource que criaremos, junto à sua inicialização.

Serão necessários somente 3 passos:

1 – criar diretorios $JBOSS_HOME/modules/<estrutura>/<estrutura>;
2 – criar o module.xml  e colocar nosso driver JDBC no container;
3 – configurar  standalone.xml ou domain.xml para que o datasource seja reconhecido.

obs1: configuraremos pelo standalone.xml. Pelo domain.xml seria interessante apenas no caso de usarmos mais de uma instância do Jboss e quiséssemos que o datasource fique visível para todas elas.

obs2: baixe aqui o Driver do PostgreSQL se ainda não tiver: http://jdbc.postgresql.org/download.html

Mão na massa

1 – Crie a seguinte estrutura de diretórios $JBOSS_HOME/modules/org/postgresql/main

2 – Crie o module.xml  no diretório main (que criaste acima), e coloque também neste mesmo diretório driver JDBC (postgresql-9.1-902.jdbc4.jar).

module.xml
[code type=xml]











A estrutura de arquivos ficará assim:

org
|_ postgresql
|   |_ main
|   |   |_ module.xml
|   |   |_ postgresql-9.1-902.jdbc4.jar

3 – Adicione dentro do arquivo standalone.xml em $JBOSS_HOME/standalone/configuration/:
[code type=xml]



jdbc:postgresql:projeto1
org.postgresql
TRANSACTION_READ_COMMITTED 10
100

true seuUsuarioDaBase suaSenhaDaBase 32 true

e
[code type=xml]


org.postgresql.Driver

(todos os dados configurados de forma explícita, é a configuração default que o jboss utilizaria caso omitíssemos)

Agora basta startar o Jboss e notar no log de saída o DataSource configurado, no meu caso (Projeto1DS).

Referências:

https://community.jboss.org/wiki/DataSourceConfigurationInAS7#Installing_a_JDBC_driver_as_a_module

http://blog.caelum.com.br/jboss-as-7-inovacao-nos-servidores-java-ee/