Oracle 9i – Conexões de rede

Parte I – Entendendo as conexões ao servidor de BD

Irei iniciar esta série de artigos tratando do assunto de conexão ao servidor Oracle 9i. Apesar de parecer ser uma tarefa banal, em muitos casos a solução do problema está simplesmente em configurar corretamente a conexão ao servidor de BD.

A melhor maneira de isso acontecer é a partir do entendimento de cada parâmetro, cada linha de configuração dos arquivos responsáveis por este processo .

Uma vez entendido o procedimento, dificilmente seremos surpreendidos por mensagens de erro de conexão , que nem sempre são tão óbvias quanto parecem.

Conexões na Rede Oracle

Utilizamos uma rede Oracle para estabelecer conexões entre a aplicação e o servidor Oracle em um ambiente de rede, considerando os seguintes fatores:

  • A configuração de rede ;
  • A localização dos nós de rede ;
  • A aplicação que acessará o BD;
  • O protocolo de rede que será utilizado.

Os tipos de conexão utilizados dividem-se em três categorias :

  • Aplicações Cliente-Servidor (Client-Server);
  • Aplicações Java;
  • Aplicações de Cliente Web (Web Client).

Conexão em aplicações Cliente-Servidor

A função de uma rede Oracle é simplesmente habilitar uma conexão entre um cliente e um servidor de BD Oracle. Nada mais é que um componente presente em ambos os lados da conexão e é a camada mais alta do protocolo de rede .

Quando uma conexão é iniciada em um cliente para o servidor de BD, as informações desta requisição são passadas para baixo nas camadas de rede do cliente, são transportadas através do meio físico de rede e finalmente são enviadas para cima nas camadas de rede do servidor. A Figura 1 ilustra o processo.

06-06pic03.JPG
Figura 1.
Conexão em uma aplicação Cliente-Servidor.

Aplicação do Cliente .

A aplicação do cliente ( como o SQL*Plus, por exemplo ) utiliza a OCI (Oracle Call Interface ) para se comunicar com o servidor de BD. A OCI nada mais é que um componente que fornece interface entre a aplicação do cliente e a linguagem SQL que o BD pode entender.

Two Task Common.

Ou simplesmente TTC é o responsável pela conversão do tipo de dado e o character set entre os diferentes formatos presentes no cliente e servidor de BD. É uma implementação da camada de apresentação do modelo OSI.

Rede Oracle, Camada Base .

A camada base da rede Oracle é a responsável em estabelecer e manter a conexão entre a aplicação do cliente e o servidor de BD. Deve estar presente em ambos os lados da conexão .

No lado cliente, é responsável pelos seguintes assuntos de conectividade:

  • Localização do servidor de BD;
  • Se um ou mais protocolos estão envolvidos na conexão;
  • Como manusear exceções e interrupções.

Já no lado servidor , além de responsabilizar-se pelas mesmas atividades executadas no lado cliente, trabalha com o “ ouvidor ” (listener) para receber pedidos de conexão .

Esta camada também se comunica com o serviço de nomeação e com o Oracle Advanced Security para garantir conexões seguras.

É a implementação da camada de sessão do modelo OSI.

Protocolo de Suporte Oracle.

É responsável pelo mapeamento das funcionalidades da Rede Oracle para os protocolos padrão das industrias usados em conexões entre as aplicações cliente e o servidor de BD. Esta camada suporta os seguintes protocolos de rede :

  • TCP/IP;
  • TCP/IP com SSL;
  • Named Pipes.

OPI (Oracle Program Interface )

Interface utilizada pelo servidor de BD Oracle ao invés da OCI. É a camada de rede responsável por responder a cada uma das possíveis mensagens vindas da OCI.

Conexão em aplicações de cliente Web

Podemos estabelecer conexões com um servidor de BD Oracle através de navegadores Web. É possível de duas maneiras :

  • Utilizando um servidor Web como camada intermediária ;
  • Conectando-se diretamente ao servidor Oracle através de http.

Servidor Web como camada intermediária

Nesta modalidade de conexão, o navegador Web utiliza-se do protocolo HTTP para “ chamar ” uma aplicação ou applet Java em um servidor Web. O servidor Web, assumindo o papel de cliente com a rede Oracle instalada, conecta-se ao servidor de BD Oracle utilizando a rede Oracle ( Figura 2 ). A rede Oracle deve estar instalada tanto no servidor Web ( que atua como cliente ) quanto no servidor de BD Oracle.

06-06pic04.JPG
Figura 2. Conexão de um cliente através de servidor Web.

Cliente Web utilizando aplicação Java

Caso a escolha de conexão entre o servidor Web e o Servidor de BD Oracle tenha sido uma aplicação Java, o servidor Web será o cliente e será necessário utilizar um driver JDBC para comunicação com a rede Oracle para conectar-se ao servidor de BD Oracle. Não podemos esquecer que o servidor de BD também deverá estar configurado com a rede Oracle.

É interessante notar que não há diferença na maneira com que os dados são passados para baixo ou para cima nas camadas de rede do cliente e do servidor de BD. Este esquema é mostrado na Figura 3 .

06-06pic05.JPG
Figura 3. Conexão de um cliente com aplicação Java em servidor Web.

Cliente Web utilizando applet Java

Já no caso de um applet Java ser “chamado” no servidor Web para iniciar uma conexão com o servidor Oracle (o servidor Web também passa a ser o cliente ) o driver JDBC Thin é utilizado. Este driver “ conversa ” com a rede Java para comunicar-se com o servidor de BD Oracle, que deve estar configurado com a rede Oracle. Ele utiliza uma implementação Java da camada base da rede Oracle, chamada rede Java (JavaNet) e uma implementação Java do TTC, chamado JavaTTC. ( Figura 4 )

As diferenças de transporte dos dados entre as camadas de rede terminam por aqui .

06-06pic06.JPG
Figura 4. Conexão de um cliente com applet Java em servidor Web.

Conexão Web utilizando HTTP

Neste tipo de conexão, a rede Oracle não é necessária nem no cliente nem no servidor, porém o servidor de BD Oracle deve estar configurado para suportar este protocolo. Outro ponto é que não é necessário também um servidor de Web para a conexão. A Figura 5 mostra este esquema.

06-06pic07.JPG
Figura 5. Conexão Web usando HTTP.

Podemos configurar o “ ouvidor ” (listener) para aceitar conexões HTTP. É comumente usado para conexões a aplicações que são parte do banco de dados, por exemplo, pode-se usar o Oracle Internet File System ( sistema de arquivos de internet Oracle) para exibir o conteúdo do banco de dados para o cliente através de uma grande variedade de protocolos, inclusive HTTP. Este esquema é ilustrado pela Figura 6 .

06-06pic08.JPG
Figura 6.
Conexão direta através de navegador Web.

Conclusões

Finalizo aqui esta primeira parte sobre conexão ao banco de dados Oracle. Veja que e grande o número de possibilidades de configuração de ambiente para acesso ao banco. O mais importante é efetivamente entender o mecanismo utilizado pela ferramenta para que não haja surpresas no momento da conexão. A partir do momento que o processo é conhecido, torna-se muito mais fácil identificar eventuais problemas que impossibilitam interagir com o BD simplesmente por falha em uma conexão. Quando o ambiente está configurado de acordo com a necessidade imposta pelo sistema, a probabilidade de problemas deste tipo diminui sensivelmente.

Espero que tenha sido útil e espero também que você acompanhe esta série de artigos sobre conexão ao banco de dados Oracle.

Um grande abraço e até a próxima.

Leia também