Acessando DB2/400 apartir do ambiente Windowns via ODBC
ODBC
Incentivado pela explosão do poder dos desktops, a tecnologia cliente/servidor está crescendo rapidamente. No ambiente cliente/servidor, é possível aliar a facilidade de uso dos PCs ao acesso aos dados do banco de dados relacional do AS/400 – DB2/400. Esta tecnologia pode ajudá-lo a enfrentar alguns problemas de demanda de usuários e profissionais de sistemas de informação – SI. Usuários demandam facilidade de acesso à dados com interface gráfica e os profissionais de sistemas de informação a crescente necessidade pela informação rápida, precisa e, de preferência, ilustrada com gráficos; isto pode significar um infindável caminho de pedidos de novos relatórios, estatísticas, gráficos, programas, etc.
Exploraremos neste artigo a primeira tecnologia cliente/servidor – ODBC (Open Database Conectivity), descrevendo sua arquitetura e mostrando como configurá-lo para que possamos extrair os dados do banco de dados relacional DB2/400 e poder trabalhar estas informações em ambiente windows.
O que é ODBC?
ODBC é uma interface definida pela Microsoft. O ODBC oferece um padrão de programação de acesso à dados permitindo aos aplicativos acessarem uma variedade de banco de dados utilizando Structured Query Language ( SQL). Qualquer aplicação que suporta Open Database Connectivity (ODBC) permite acesso aos dados que estão no AS/400 de um ambiente Windows, após a instalação e configuração de um driver ODBC. Muitos aplicativos possuem a habilidade de utilizá-lo, como: MS-Word, MS-Excel, Ms-Access, Paradox, Crystal Report, Visual Basic, Impromptu, Powerplay, Visual C, Power Builder, Centura e outros.
O Client Access ODBC driver (32 bits) permite que as aplicações acessem dados no banco de dados do AS/400 através da interface ODBC. A intenção dos tópicos abaixo é fornecer informação para ajudá-lo a utilizar o driver ODBC do Client Access for Windows 95/NT com o DB2/400.
Arquitetura
ODBC utiliza a arquitetura em camadas para implementar um conjunto padrão de rotinas de acesso a dados que trabalha com uma variedade de banco de dados. A figura abaixo mostra as 4 camadas do ODBC: Aplicação , o ODBC driver manager, o driver ODBC e o sistema de gerenciamento de banco de dados relacional (RDBMS).
O diagrama abaixo mostra os componentes associados à arquitetura ODBC.
Aplicação: Executa o processamento e chamadas das funções ODBC para executar comandos SQL.
Driver Manager: Carrega os drivers para uma aplicação, é implementado através da ODBC32.DLL (ODBC.DLL se Windows 3.1) que reside normalmente no \windows\system. O driver manager permite múltiplos drivers estejam ativos simultaneamente utilizando o nome do Data Source fornecido pela aplicação.
Driver ODBC: é uma biblioteca de funções (em Windows Dynamic Link Library – DLL) fornecida pelo RDBMS ou outro fornecedor de software para trabalhar com um específico RDBMS. Por exemplo, a IBM fornece o Client Access for OS/400 for Windows 95/NT ODBC driver para acessar DB2/400. Quando uma aplicação faz uma chamada à uma função ODBC para requisitar uma operação ao banco de dados, o driver ODBC traduz sua chamada para um formato apropriado do sistema de gerenciamento de banco de dados relacional (RDBMS) desejado, no caso DB2/400.
Data Source: Contém a definição de um Driver ODBC utilizado pela Aplicação para acessar um específico RDBMS.
A configuração dos drivers ODBC é um esforço conjunto do driver e do Microsoft ODBC Administrator ODBCAD32.EXE (ODBCADM.EXE for Windows 3.1).
No AS/400, o ODBC é baseado em APPC (Application Program -to -Program Communications), podendo sua conexão ser via TCP/IP ou SNA.
Instalação
Antes da instalação do driver, será preciso instalar o CA/400 no AS/400 e no PC. Para que o driver ODBC seja executado, você deve seguir 3 passos básicos: Instalação do driver, criação do data source e configuração do driver. A instalação do driver é feita através da instalação completa do CA/400 ou da utilização do programa de instalação do driver.
Informações adicionais
Quando você instala o Microsoft Office, um ícone ODBC 32 bit, que representa o ODBC Manager, é instalado no Microsoft Windows Control Panel (Painel de Controle) para permitir a criação de seu data source. No ODBC Manager, é possível configurar 3 tipos de Fonte de dados.
-
NFD do Usuário ou User DSN
-
NFD do Sistema ou System DSN
-
NFD do Arquivo ou File DSN
DSN= Data Source Name
NFD= Nome da Fonte de Dados
NFD do usuário/User DSN : Uma fonte de dados de um usuário específico. É armazenado localmente e está disponível somente para o usuário que o criou. Não são utilizados pelo Microsoft Query 97 (ou seja, MS Word, MS Excel). Se você utilizar comandos do Microsoft Jet, ODBC ou SQL (Structured Query Language) não passando pelo Microsoft Query, os NFDs do usuário são requeridos. São armazenados no Registry do Windows:
HKEY_CURRENT_USER\software\odbc\odbc.ini\ Odbc Data Sources
NFD do sistema/System DSN: Ao contrário do NFD do usuário, o NFD do sistema não é para um usuário específico. O NFD do sistema é armazenado localmente e não é dedicado a um usuário específico. Qualquer usuário que se conectar ao computador e possuir permissão de acesso aos data sources poderá utilizar o NFD do sistema. Alguns programas, como por exemplo o Microsoft SQL Server ou o Microsoft Internet Informations Server (IIS), requerem um NFD do sistema. Este NFD deverá ser criado no servidor onde o programa está localizado. São armazenados no Registry do Windows:
HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\Odbc Data Sources
NFD do arquivo/File DSN: O NFD do arquivo é criado localmente e pode ser compartilhado com outros usuários. É baseado em arquivo, ou seja, é um arquivo.dsn que contém todas as informações requeridas para se conectar à um Data Source. Note que você deve instalar o driver ODBC localmente para utilizar um NFD do arquivo. Microsoft Query utiliza NFD do arquivo, mas Microsoft Jet e ODBC não precisam do NFD do arquivo.
O NFD do arquivo é armazenado por default no diretório Arquivo de Programas\Arquivos Comuns\ODBC\Data Sources. Os NFDs dos arquivos não são armazenados no Registry do Windows.
OBS: Quando você se conectar a um data source existente utilizando Microsoft Query, somente está disponível os NFDs dos arquivos e não os NFDs dos usuários e do sistema. Entretanto, você pode criar um NFD do arquivo que aponte para um NFD do sistema.
-
Crie um NFD do sistema : ex. MEUNFD
-
Crie um NFD do arquivo : ex. TESTE.DSN
-
Edite um arquivo com o mesmo nome dado pelo NFD do arquivo com as seguintes linhas:
[ODBC]
DSN=Nome do data source criado no NFD do sistema MEUNFD
-
Salve com o nome de TESTE.DSN e copie este arquivo para o diretório onde estão localizados os seus arquivos.dsn (Programas\Arquivos Comuns\ODBC\Data Sources).
Para permitir que um NFD do sistema seja compartilhado, você deverá compartilhar o diretório onde este arquivo.DSN se encontra. Faça o seguinte:
-
Utilize o explorer e vá ao diretório Programas\Arquivos Comuns\ODBC\Data Sources
-
Com o botão direito do mouse escolha compartilhamento e digite
Configuração
Com o seu CA/400 for Windows 95/NT instalado, é disponibilizado o ODBC Driver 32 bits.
Configurando um ODBC data source:
-
Escolha
-
Selecione
-
Selecione
-
Selecione ODBC Administration ou através do Painel de Controle, escolha ODBC 32 bits
-
Selecione o tab NFD do Usuário ou NFD do Arquivo e Adicionar
-
Selecione
-
Selecione
-
Digite o nome do data source e selecione o sistema AS/400. (Você deverá possuir uma configuração de conexão ao AS/400 para que possa ser escolhida na criação do data source)
-
Utilize os tabs da configuração do Client Access ODBC para definir qualquer outra propriedade desejada
-
Escolha o tab Server e digite o nome de sua biblioteca no AS/400 onde estarão seus dados
-
Selecione
e na tela do ODBC Administrator, clique -
Seu ODBC data source já está criado.
OBS: Após criado o NFD do arquivo, você deverá escolher a opção de configuração e seguir os passos de 8 à 11 para deixá-lo pronto para utilização.
Performance do ODBC
Quando uma aplicação ODBC tem a performance pobre, desenvolvedores muitas vezes responsabilizam o ODBC ou o SQL. Embora seja verdade que o ODBC pode acarretar um pouco de overhead, a implementação de sua aplicação é fundamental para que você consiga bons resultados neste ambiente. E apesar do overhead causado pelo ODBC, esta tecnologia é um padrão utilizado pela maior parte dos softwares de queries, Data Warehouse e outros.
Para desenvolver uma aplicação utilizando ODBC para acessar DB2/400 e ao mesmo tempo evitar problemas de performance, procure não utilizar a tecnologia de DAO ou MS Data Control, codifique na tecnologia de RDO ou direto nas API’s de ODBC. Outra opção é a utilização de softwares que possuem o conjunto de API’s prontos para acessar DB2/400. como o IBM SDK OLE DB and Active X, DDA/400, TOPCONNECT, etc. Quando possível é indicado utilizar Stored Procedure.
No AS/400, as requisições ODBC são submetidas ao subsistema QSERVER, onde quando utilizando TCP/IP é inicializado um Job no AS/400 chamado QZDASOINIT e quando utilizando ODBC via SNA é inicializado um Job no AS/400 chamado QZDAINIT, servindo a user profile especificada na conexão, sendo executado com a prioridade interativa.
Para avaliar o consumo de recursos e a forma como os dados são acessados via ODBC:
-
WRKACTJOB
-
Digite <5> em frente ao job QZDASOINIT ou QZDAINIT
-
Olhe o número do job, usuário e nome do job
-
Dê o comando STRSRVJOB passando esses parâmetros
-
Ex: STRSRVJOB JOB(004631/QSECOFR/GWSP5001)
-
Dê o comando para inicializar o debugger – STRDBG com UPDPRD(*YES)
-
Olhe com o comando DSPJOBLOG e verifique as mensagens emitidas pelo Optimizer observe principalmente os índices que são criados temporariamente pelo sistema para resolver as chamadas de ODBC e os deixe previamente criados. Execute este processo até que não sejam mais criados índices temporários.
-
Ex: DSPJOB JOB(004631/QSECOFR/GWSP5001)
-
Finalizar o debugger e service job
ENDSRVJOB
ENDDBG