Home - www.devmedia.com.br


Oracle 9i – Conexões de rede

Parte III – Configuração do lado servidor

Nesta terceira parte, veremos a configuração básica da rede Oracle no lado servidor.
Iremos identificar como o ouvidor (listener) responde aos pedidos de conexão e conheceremos mais a fundo os três métodos de conexão ao servidor de BD Oracle.
Mãos à obra e boa leitura.

O processo ouvidor (listener)
A aplicação cliente faz uma conexão inicial ao servidor de BD através do ouvidor (listener), que por sua vez é um processo que “ouve” as requisições de conexão como representante de um ou mais BDs. Algumas características do listener são:
* Um listener pode “ouvir” mais de um BD;
* Vários listeners podem “ouvir” um mesmo BD afin de promover balanceamento de carga;
* Um listener pode “ouvir” através de vários protocolos;
* O nome padrão do listener em uma rede Oracle é LISTENER;
* O nome do arquivo do listener deve ser listener.ora.
É importante lembrar que a versão 9i do Oracle não suporta versões antigas do listener, mas é possível acessar versões antigas do BD com o listener do Oracle 9i.

                         


Métodos de conexão
Sempre que uma aplicação cliente faz um pedido de conexão para um servidor de BD, o listener executa um dos seguintes métodos de conexão:

* Geração e transmissão de conexão:
Neste método de conexão, o listener gera um processo servidor dedicado e transmite a conexão para o processo servidor para que a conexão entre o cliente e o BD seja feita diretamente. Neste caso, é executada a seqüência de eventos conforme mostrado na Figura 2.

                               


1. Em primeiro lugar, o listener recebe o pedido de conexão vindo da aplicação cliente;
2. Após isso, o listener inicia um processo servidor dedicado e o mesmo herda o pedido de conexão que veio do listener;
3. Finalmente, é estabelecida uma conexão direta entre o cliente e o processo servidor dedicado.
Se, caso haja uma limitação de sistema operacional ou protocolo, e a conexão não possa ser transmitida entre dois processos na mesma máquina, deverá ser utilizado o método de conexão por redirecionamento, que veremos adiante.
Lembro que, quando um cliente disconecta do servidor, o processo servidor dedicado daquele cliente também é finalizado.

* Conexão direta através do despachante:
Quando este método de conexão é utilizado, o listener usa o despachante (dispatcher) como um tipo de manipulador de serviço, que atende diretamente às requisições do cliente. No momento que a requisição do cliente é bem sucedida, é executada a seqüência de eventos conforme mostrado na Figura 3.

                                 


1. O listener recebe o pedido de conexão da aplicação cliente;
2. Envia uma mensagem de redirecionamento para o cliente, informando o endereço de um dispatcher;
3. O cliente finaliza a sessão de rede com o listener e estabelece uma sessão de rede com o dispacher, utilizando-se do endereço de rede fornecido pela mensagem de redirecionamento.

* Sessão de redirecionamento:
Quando encontramos ambientes que não suportam nenhum dos métodos anteriores de conexão, será estabelecida uma sessão de redirecionamento, cujos passos estão mostrados na Figura 4.

                        

1. A aplicação cliente estabelece uma conexão com o listener utilizando o protocolo configurado e envia ao listener um pacote de conexão;
2. O listener verifica se o SID está definido. Em caso afirmativo, o listener irá gerar uma nova linha ou processo para servir à nova conexão. Uma conexão IPC é estabelecida entre o listener e o novo processo;
3. O novo processo seleciona a nova porta TCP/IP em uma lista de portas livres definidas pelo usuário e retorna esta informação para o listener;
4. O listener coloca esta nova porta no pacote de redirecionamento e reenvia à aplicação cliente e a conexão TCP original entre a aplicação cliente e o listener é recomposta;
5. Uma nova conexão TCP é estabelecida para o endereço especificado no pacote de redirecionamento e o pacote de conexão é transmitido ao processo servidor dedicado ou ao despachante, dependendo da configuração;
6. Finalmente, o processo servidor dedicado ou despachante aceita o pedido de conexão e transmite uma mensagem de aceitação de volta à aplicação cliente.
A única diferença quando utilizamos despachantes ou processo servidor dedicado é que, para o primeiro caso, se houver capacidade de conexão em algum despachante que já esteja no ar, não será gerado e iniciado um novo despachante no passo 2.


Conclusões
Nesta terceira parte da série de artigos sobre a conexão ao servidor de BD Oracle, tivemos contato com a maneira pela qual o listener responde aos pedidos de conexão e conhecemos mais profundamente os métodos de conexão utilizados em uma rede Oracle.

Estas informações são especialmente essenciais para detectar possíveis problemas de conexão e, em muitos casos, descobrir que aquele problema que o usuário esta reclamando não está relacionado com o BD e sim com a configuração de sua conexão.

No proximo artigo da série, irei abordar os serviços de configuração e registro, focando nos serviços dinâmico e estático, este segundo é feito através do arquivo listener.ora.
Envie suas dúvidas e sugestões para enriquecer esta coluna.

Estou esperando seu e-mail.

Até a próxima.



 

 

Ricardo Rezende (ricardo@sqlmagazine.com.br) é DBA Oracle na IBM do Brasil em projeto internacional, possui cursos oficiais pela Oracle University, consultor independente de Bancos de Dados, subeditor da revista SQL Magazine, editor do Website da SQL Magazine e professor licenciado pelo Centro Estadual de Educação Tecnológica “Paula Souza” na unidade de Taubaté-SP.

  ARTIGOS    
  Oracle 9i – Conexões de rede, Parte V    
  SQL Magazine Tech Day    
  Oracle 9i – Conexões de rede, Parte IV    
  Oracle 9i – Conexões de rede, Parte III    
  Boas-Vindas do Editor    
  Oracle 9i – Conexões de rede, Parte II    
  Oracle 9i – Conexões de rede, Parte I    
  II CONISLI – 2º Edição do Congresso Internacional de Software Livre    
  RAID – Parte IV
Recomendações de mais Fabricantes
   
  Oracle Open World
   
  Raid - Parte 3
Recomendações dos Fabricantes

   
  Raid - Parte 2
Armazenamento com segurança,
performance e baixo custo

   
  Bases de Dados em Linux
2º edição do evento
   
  Raid - Parte 1
Armazenamento com segurança, performance e baixo custo
   
  Álgebra Relacional – Parte II
Linguagem de consulta formal
   
  Álgebra Relacional – Parte I
Linguagem de consulta formal
   
  Conceitos Fundamentais de Banco de Dados - Parte 2    
  Conceitos Fundamentais de Banco de Dados - Parte 1    
  VIDEO-AULAS    
  Bind Variables no BD Oracle    
       
     

 

Todos os direitos reservados: DevMedia Group
SQL Magazine - 2004