quarta-feira, dezembro 29, 2004

PowerBuilder - Conectando com Oracle 9

1 – Objetivo
Este documento tem como objetivo orientar as equipes nós procedimentos necessários para os sistemas utilizarem o SGBD Oracle 9.x.
2 – Configurações do Cliente Oracle
Para se conectar com o Oracle 9 recomenda-se a utilização do cliente do Oracle da mesma versão do servidor (Cliente do Oracle 9, com o mesmo release do servidor).
A conexão utilizando Clientes do Oracle 8 não é recomendada, apesar de funcionar, pois testes indicaram uma perda de performance de 30% nós acessos a banco de dados, além da impossibilidade de se utilizar os recursos.
Ao instalar o cliente Oracle 9, deve-se tomar cuidado com versões anteriores deste SGBD. O recomendado é que sejam desinstaladas todas as versões anteriores de Cliente Oracle nas máquinas (Em algumas versões, a opção de desinstalação do Oracle não funciona, sendo necessário remover os arquivos e chaves do Registry manualmente). Após a desinstalação completa, deve-se instalar o novo cliente Oracle, evitando conflitos entre versões. Lembramos que as versões mais recentes são compatíveis com versões anteriores, permitindo o Cliente do Oracle 9 conectar em um Servidor com Oracle 8 ou Oracle 7.
Outro ponto interessante de se observar e a chave do registry que define com o idioma (Language) que será utilizado pelo Cliente. Está chave e definida automaticamente pelo cliente Oracle no momento da instalação do mesmo, onde o instalador observa a configuração da máquina (Regional Settings, Versão do Sistema Operacional e etc...) e configura o Cliente. Está “auto-configuração” nem sempre funciona, podendo causar conflitos entre o servidor e o cliente (Tratamento de pontos decimais, Formato de Data e etc...).
Para ter certeza que o idioma do cliente está correto, deve-se verificar a chave do Registry NLS_LANG (Geralmente localizada em HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0) e verificar se a mesma está compatível com a configuração no servidor. No Brasil, os valores mais encontrados nesta chave são BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252 (Formato Padrão para o Brasil) ou AMERICAN_AMERICA.WE8ISO8859P1 (Formato Padrão para o EUA).

3 – Configurações no PowerBuilder
Para se conectar o PowerBuilder no Oracle 9, devemos levar em consideração os seguintes pontos:
API : Devemos utilizar a API do Oracle 9 para a conexão (DBMS=O90 ORACLE9I (9.0.1)) e para utilizarmos está API, é necessário que o Cliente do Oracle 9 esteja instalado na máquina. A conexão utilizando a API de Oracle 8 funciona (utilizando o Cliente 8 ou 9), mas causa a perda de performance relativa a 30%.
DBPARM : Ao se conectar utilizando o Cliente do Oracle 9, é obrigatória a configuração dos seguintes parâmetros em desenvolvimento, Homologação e produção, e deve ser configurado nos arquivos INI e na Dr.Lock:
Timestamp (TimeStamp='No') : Este parâmetro é novo e configura o PowerBuilder para tratar os campos DateTime como valores DateTime, e não com valores TimesTamp (Está é a nova definição da Oracle para campos DateTime e, por isso, a forma de trabalho Default da API do Oracle 9);
CommitOnDisconnect (CommitOnDisconnect='No') : Por default, quando ocorre uma desconexão com o Banco de Dados, é executado o Commit nos dados, o que é errado e pode causar erros nos dados. Está configuração força o Banco de Dados realizar um RollBack no momento que ocorre uma desconexão com o mesmo (Falha de luz, Parada no Debug, CTRL + ALT + DEL, etc...)
DelimitIdentifier (DelimitIdentifier='No') : Este parâmetro deve ser configurado para evitar a utilização de “ (Aspas Duplas) no nome das tabelas nas queries. Em sistemas que utilizam vários SGBDs, como o caso dos sistemas da attps, é necessário selecionar esta opção para se evitar conflitos com outros SGBDs.
PBCatalogOwner (PBCatalogOwner=’sis_att_sistemas’) : Está configuração indica em qual Catalog (Usuário do banco de dados Oracle) estão as tabelas do sistema do PowerBuilder. É aconselhável configurar este parâmetro com o mesmo nome do usuário que é utilizado para conectar ao Banco de Dados
DisableBind (DisableBind=0) : Está configuração habilita o recurso de BIND do oracle, o que aumenta a segurança no trafego de informações e o ganho de performance nas queries. O grande problema deste parâmetro é que não permite visualizar as informações (parâmetros) que o PowerBuilder está enviando para o Banco de Dados, dificultando a execução dos Traces. Devemos tomar muito cuidado quando desabilitarmos o BIND (DisableBind=1), principalmente no ambiente de produção, sempre lembrando de Habilitá-lo (DisableBind=0) novamente no final dos testes

Abaixo encontra-se um exemplo de parâmetros de conexão para Oracle 9:
// Profile attbh253_oracle9
SQLCA.DBMS = "O90 ORACLE9I (9.0.1)"
SQLCA.LogPass = <*******>
SQLCA.ServerName = "attbh253"
SQLCA.LogId = "sis_att"
SQLCA.AutoCommit = False
SQLCA.DBParm = "CommitOnDisconnect='No',DelimitIdentifier='No',PBCatalogOwner='sis_att', DisableBind=0"

4 – DLLs necessárias ao PowerBuilder
Para que o PowerBuilder trabalhar com o Oracle 9, são necessárias as seguintes DLLs, com as respectivas versões:
· pbdwe80.dll (Versão 8.0.3.9977)
· pbrtc80.dll (Versão 8.0.3.9977 )
· pbvm80.dll (Versão 8.0.3.9977 )
· LIBJCC.DLL (25/06/2003 03:02:00)
· PBO9080.DLL (Versão 8.0.3.9977)


Nenhum comentário: