Data Sources

Websphere – Data Source

Datasource é o nome dado ao recurso especificado na arquitetura Java para acesso a banco de dados. Desta forma o programador não precisa se preocupar em criar conexões na aplicação, que serão configuradas e gerenciadas pelo Websphere. Tirando, assim, a complexidade do código e deixando a encargo do Websphere.

O programador irá utilizar um nome único através do recurso JNDI (Java Naming and Directory Interface), que será configurado com juntamente com dados de acesso ao banco de dados, tais como: endereço (IP ou hostname), porta, usuário e senha. Além de permitir uma série de outras configurações; algumas são comuns à maioria dos bancos de dados, como pool de conexões, algumas que são específicas. Sendo esta ultima configurada através de “Custom Properties” (propriedades personalizadas).

Pool de conexões, como o nome diz, é uma piscina ou tanque de conexões. Criar uma conexão via rede é uma tarefa custosa, consome CPU e tempo, muito tempo. O Websphere permite criar várias conexões, chamadas pool de conexões, que ficarão ativas o tempo todo e serão gerenciadas por ele. Quando um aplicativo pede por uma conexão, o Websphere separa um do pool e deixa a aplicação utilizar. Quando a aplicação encerra a utilização, ao invés de encerrar a conexão com o banco, o Websphere simplesmente marca a conexão como livre, deixando para ser utilizada novamente pela mesma ou outro aplicação. Isto funciona porque foi percebido que, na maioria do tempo, uma aplicação está sempre esperando, seja o usuário digitar ou ler o resultado. Quando a aplicação vai, efetivamente, buscar dados no banco de dados, isto ocorre rápido. Sendo assim muitas aplicações sendo utilizadas por centenas de usuário podem manter um pool com poucas conexões.

JDBC Provider

Websphere utiliza o JDBC (Java Data Base Connector), que é um padrão definido na especificação Java para acesso a banco de dados. Normalmente os bancos de dados utilizam um padrão de comunicação próprio, que é diferente do que foi especificado no Java. Foi pensando nisso que a especificação Java oferece um conector para o banco, para padronizar os acessos. Quando um fabricante deseja que seu banco de dados se torne acessível por um programa Java, desenvolvem um tradutor, que converte o modo de comunicação específica do banco de dados para o modo padrão da arquitetura Java.

O Websphere permite configurar um Data Source em duas etapas:

1. Configurar o Provider (driver fornecido pelo fabricante de banco de dados obedecendo ao padrão Java, que traduz a linguagem do banco para o Java);

2. Configurar o Data Source em si (permite imputar os dados para se conectar no banco de dados, o pool de conexões e propriedades personalizadas).

Configurando um JDBC Provider

No menu esquerdo, escolha a opção “Resources > JDBC > JDBC Providers”:

Figura 1

Escolha um escopo no combo e clique no botão “New”:

Figura 2

Será exibida a tela com alguns dados para criação da configuração do JDBC Provider :

Figura 3

A primeira opção é escolher o tipo de banco de dados, caso o banco para qual deseja não esteja na lista, basta escolher “User-defined”:

Figura 4

Para este nosso caso, escolhemos a opção Oracle. Agora temos que escolher o tipo de provedor (varia de fabricante para fabricante, no caso da Oracle teremos apenas “Oracle JDBC Driver”):

Figura 5

Após escolher o tipo, será escolhida a implementação do driver (driver sem suporte a transação “Connection pool data source” ou com suporte a transação “XA data source”), estas opções também podem variar de fabricante para fabricante:

Figura 6

Feito isto daremos um nome ao nosso driver, o Websphere irá sugerir um nome, que pode ser alterado livremente:

Figura 7

Após nomear o nosso provider, vamos definir onde ele está (neste caso baixamos o driver ojdbc6.jar do site da Oracle e salvamos na pasta d:\oracle\driver\11):

Figura 8

Neste ponto o Websphere irá criar uma variável de ambiente chamada “ORACLE_JDBC_DRIVER_PATH” que conterá o caminho para o nosso driver, neste caso “d:\oracle\driver\11”. Ao clicar em “Next” uma tela de resumo será exibida:

Figura 9

Basta clicar em “Finish” para encerrar. Você será direcionado para a tela inicial, onde veremos o nosso Provider criado:

Figura 10

Acima desta lista será exibida uma mensagem requisitando para que a configuração seja salva. Pode ser salva neste ponto ou salvar tudo no final. Fica a critério do administrador:

Figura 11

Data Source

Como vimos até agora, um datasource contem a configuração necessário para acessar um banco de dados, permitindo que o programador não tenha que se preocupar com os detalhes desta configuração. Vimos também que o datasource também necessita de um driver (JDBC Provider), feito pelo fabricante do banco de dados, que permite com que o Java se comunique o banco de dados.

Então podemos descrever o seu funcionamento assim: O Websphere carrega a JVM, que por sua vez carrega as configurações do Datasource, que irá carregar o provider, quem irá permitir a comunicação com o banco de dados. Veja figura abaixo:

Figura 12

Nesta figura temos dois Datasources utilizando o mesmo provider, acessando um banco de dados. O Websphere permite as seguintes configurações:

· Um ou mais datasources utilizando um mesmo provider;

· Cada datasource com o seu próprio provider (esta configuração só faz sentido se temos providers diferentes ou providers iguais que necessitam de configurações diferentes);

Para configurar um datasouce clique em “Resources > JDBC > Data sources”:

Figura 13

Na tela de criação, clique no botão “New”:

Figura 14

Nesta tela vamos configurar:

· O nome do Data source: este campo é utilizado pelo administrador do Websphere para administração, pode ter espaços e deve ser bem claro, para facilitar a identificação, pois os sistemas costumam tem muitos data sources;

· JNDI: este é o nome que o programador irá utilizar, geralmente quando um data source é criado, geralmente foi por necessidade de um sistema, e o este nome já vem definido , caso contrário, deverá ser definido pelo analista de Webpshere;

Figura 15

Uma vez configurado o nome do data source e seu JNDI, devemos definir qual provider vamos utilizar. Neste ponto o Websphere permite a criação de um provider novo ou utilizar um já previamente criado. Se escolhermos um novo provider, serão exibidas as mesmos passos mostrados em JDBC Provider. Neste caso vamos utilizar o provider configurado anteriormente:

Figura 16

Agora temos que criar a URL de conexão, no caso do Oracle obedece ao seguinte padrão: jdbc:oracle:thin:@<servidor>:<porta>:<instância do banco>. Em nosso exemplo o banco está configurado na mesma máquina que o Websphere (localhost), na porta padrão do Oracle 1521 e o nome da instância é teste. Desta forma temos a seguinte URL: jdbc:oracle:thin:@localhost:1521:teste:

Figura 17

Este é o ponto em que será escolhido o usuário e senha para acesso ao banco de dados:

Figura 18

Caso não haja nenhum usuário e senha configurados, então basta clicar em “Global J2C authentication alias” para criar um apelido para a senha e usuário do banco de dados. Normalmente o usuário e senha e criado e passado ao administrador de Websphere pelo administrador de Banco de dados. Clicando no link veremos a seguinte tela:

Figura 19

Clique no botão “New” para criar um novo apelido contendo o usuário e senha do banco de dados. Em certas empresas a segurança é muito rígida, sendo comum o administrador de banco de dados vir e digitar a senha diretamente no console do Websphere, mantendo-a secreta a todos os demais.

Nesta tela vamos digitar o nome do apelido, usuário do banco de dados e a senha (que em alguns casos será o próprio administrador de banco de dados quem irá digitar a senha):

Figura 20

Uma vez criado o apelido, basta clicar em OK. Dependendo da versão do Websphere, ele volta para o começo e temos que iniciar a criação do data source do início. Neste caso veremos uma tela com o apelido criado:

Figura 21

Acima desta lista será exibida uma mensagem requisitando para que a configuração seja salva. Pode ser salva neste ponto ou salvar tudo no final. Fica a critério do administrador:

Figura 22

Uma vez criado o apelido, basta escolhe-lo nos dois primeiros combos:

Figura 23

Clique em “Next” para que a tela final com o resumo seja exibida:

Figura 24

Clicando no botão “Finish” nossa configuração é finalizada e o Websphere irá exibir a tela inicial com o data source recém criado nela:

Figura 25

Acima desta lista será exibida uma mensagem requisitando para que a configuração seja salva:

Figura 26