NOTA: No Elipse E3/Power é indicado selecionar a opção “Usar drivers ADO Oracle” na janela de configuração do objeto banco de dados, devido a descontinuidade do driver ADO do Windows. Também recomendamos a utilização do cliente Oracle atualizado, igual ou superior a versão 12c, mesmo que o servidor seja de uma versão inferior ao cliente.
1) Introdução
Esse documento trata as particularidades do funcionamento do E3 com o Oracle.
Aqui não é demonstrado nenhum tipo de configuração do Oracle. Isso deve ser feito por profissional habilitado a esse tipo de instalação e configuração. Entretanto, alguns itens de configuração são utilizados para que o E3 acesse o servidor. Dessa maneira, ter informações básicas sobre o funcionamento de um servidor Oracle é fundamental para o sucesso na configuração do projeto no E3.
2) Configuração da conexão
A comunicação com o BD Oracle é feita no E3 de maneira semelhante aos outros tipos de servidores disponíveis: MS Access (que é o banco usado como padrão) e MS SQL Server. Os parâmetros a serem configurados são ilustrados abaixo. Esses parâmetros devem ser conseguidos junto ao administrador do banco de dados. Devido à complexidade de operação e administração de um servidor Oracle, assuntos como instalação e configuração básica não são cobertos nesse documento. Normalmente a opção pelo Oracle (ou mesmo pelo MS SQL Server) acarreta a inclusão de responsáveis pela manutenção/administração desse banco.
Os parâmetros ilustrados acima são:
- Conexão: nome da conexão disponibilizada pelo administrador do banco.
- Usuário: usuário disponibilizado no banco para conexão pelo Elipse E3. Dependendo do tipo de objeto a ser utilizado no projeto, deverá ter diferentes permissões. Uma tabela ilustrativa das necessidades conforme o objeto segue nesse documento.
- Senha: referente ao usuário com o qual se pretende realizar o logon.
3) Mensagens de erros e restrições
A conexão a qualquer banco de dados através do E3 pode ser monitorada através da criação de arquivos de log. Esses logs são criados automaticamente a partir das ações efetuadas pelo E3 Server e não cobrem apenas os bancos de dados. Entretanto, o tipo de mensagem logada deixa clara a origem dos erros.
Foram catalogadas, com o objetivo de facilitar a localização de falhas alguns códigos de erros, que foram provocados intencionalmente. Seguem abaixo algumas descrições de erros e as possíveis causas (algumas restrições de uso do banco são comentadas nos próprios erros).
Error = ORA-01031: insufficient privileges
Na maioria dos casos, esta mensagem é gerada quando o usuário não possui privilégios suficientes para criar um objeto, como por exemplo: tabelas, procedures, views, etc.
Error = ORA-01017: invalid username/password; logon denied
Mensagem gerada em log quando a senha ou usuário estão incorretos. Verificar se na conexão disponibilizada existe o usuário cadastrado.
Error = ORA-12154: TNS: não foi possível resolver nome de serviço
Caso o nome da conexão não seja encontrada, será gravada essa mensagem. Mesmo com o banco instalado corretamente e operando, é possível que o nome da conexão contenha erros.
Verificar por exemplo, o uso de maiúsculas e minúsculas no nome da conexão.
Error = ORA-02264: nome já usado por uma restrição existente
O uso de índices ou chaves primárias com o mesmo nome não é permitido, podendo causar erros de criação das tabelas e também de escrita e consulta aos dados. Para evitar esse erro, crie e configure diferentes nomes de índices ou chaves primárias no E3.
Error = ORA-01403: dados não encontrados
Ao ocorrer um erro como o uso de índices de mesmo nome, geralmente aparece o erro acima. Normalmente, esse erro acompanha outro que detalha melhor o tipo de problema que está ocorrendo.
Error = ORA-00001: restrição exclusiva (SYSTEM.E3INDEX) violada
Sempre que for feita uma tentativa de escrita de um registro onde o campo definido como chave primária tiver o valor repetido, a escrita será recusada e a mensagem acima será exibida. É interessante verificar que o nome da chave é mostrada (nesse caso, a chave SYSTEM.E3INDEX) no formato Usuário.NomeChave. Dependendo do projeto, esse erro é esperado, mas na grande maioria é importante verificar se a chave é a mais adequada. Para ilutrar essa afirmação, poderemos ver dois casos:
- Sistema de Telemedição de Energia: Visando gravar todos os dados de um dia, as rotinas usadas para coleta admitem tolerâncias a mais e a menos no horário a ser coletado. Assim, alguns dos registros terão de ser escritos mais de uma vez. Nesse caso, a ocorrência desse erro é esperada.
- Manutenção de Alarmes: Para esse caso, pode haver mais de um erro por segundo no sistema. Se o campo “E3TimeStamp” for usado como chave-primária, pode haver a perda de algumas ocorrências de alarme, o que prejudica a análise posterior dos eventos. Nesse caso, re-estudar a chave-primária pode ser a solução adequada.
4) Objetos do E3 e permissões
É necessário configurar as permissões no BD para a utilização dos objetos E3 em uma aplicação. Essas permissões são listadas abaixo:
OBJETO |
PERMISSÕES |
Fórmulas | Permissão Completa |
Histórico de Usuário | Escrita e Consulta a tabelas existentes |
Histórico | Permissão Completa |
Servidor de Alarmes | Permissão Completa |
Storage | Permissão Completa |
Nas permissões, a expressão Permissão Completa significa que o usuário deverá ter, no mínimo as permissões para:
- Criar tabela.
- Criar índices e chaves.
- Remover tabelas existentes.
- Inserir e excluir dados nas tabelas criadas.
- Consultas sobre as tabelas resultantes.
- Criar Stored Procedures.
Permissões de administração do servidor (como criação de usuários etc.) não são necessárias ao usuário disponível para o E3.