Publicado em 11/02/2004
Há anos que desenvolvo rotinas em PL/SQL para Web e um dos grandes problemas
na criação das rotinas é justamente a depuração.
Quando o erro é de compilação, sem problemas; mas quando o erro ocorre em
tempo de execução, fica difícil detectar o erro, principalmente quando o erro
fica armazenado no Log interno do servidor de aplicação e a mensagem no
browser é nada mais, nada menos que: “Página Não Encontrada”.
Mesmo alterando as opções avançadas do browser para não exibir os erros HTTP
de forma amigável, ainda vemos o erro desse tipo:
o banco de dados no ar, foi chamado na URL o nome errado da package.
A solução é acessarmos o servidor e olharmos o final do arquivo que nos
informa o real motivo do erro.
[Wed Feb 11 14:36:43 2004] [error] mod_plsql: /pls/app/nomeErradoDapackage.procedure HTTP-503 ORA-12541 [Wed Feb 11 15:37:59 2004] [warn] mod_plsql: /pls/app/nomeErradoDapackage.procedure ORA-0 No such object |
Depois dessa informação, basta olhar na documentação para descobrir o erro,
ou então acessar sites como o de
target=”_BLANK”>mensagens de erro do 9i para descobrir o real motivo.
Esse arquivo chama-se error_log e fica dentro do diretório do 9iAS. O
problema é que dificilmente o desenvolvedor tem acesso ao servidor para ficar
visualizando o arquivo, justamente por não ser responsabilidade dele o bom
funcionamento do Oracle 9iAS, e sim alguma pessoa da equipe de infra-estrutura,
ou algum DBA ou administrador de rede.
Para resolver esse problema, eu criei uma pequena rotina que visualiza o log
via browser, facilitando a vida do desenvolvedor.
Os logs poderão ser visualizados dessa forma:
#!/usr/bin/perl
# ############################################ # # Log dos erros Oracle # Criado por Fernando Boaglio # ############################################ # # Altere o valor abaixo para o seu ORACLE_HOME $oracle_home=”/oracle/Ora9″; # Localizacao padrao do arquivo de logs do Apache $arquivo=$oracle_home.”/Apache/Apache/logs/error_log” ; print qq{Content-type: text/html\n\n<html> <head> <title> Logs do HTTP Server </title> </head> <body bgcolor=white> <center><h3>Log de erros do HTTP Server: <HR> <BR><PRE> }; # Exibe as ultimas 20 linhas do arquivo, # modifique o valor se necessario print `tail -n 20 $arquivo`; print qq{ |
Para configurar esse visualizador de log no seu ambiente é bem simples,basta
seguir os 5 passos abaixo:
1.Baixe o arquivo clicando aqui e renomeie-o para log.pl.
2.Altere o arquivo com ORACLE_HOME do seu 9iAS ou 9i
3.Copie o arquivo log.pl para $ORACLE_HOME/Apache/Apache/cgi-bin
4.Permita o arquivo ser executado com chmod 755 $ORACLE_HOME/Apache/Apache/cgi-bin/log.pl
5.Acesse pelo browser a URL:
http://seu_servidor:sua_porta/cgi-bin/log.pl
exemplo:
http://cascao:7777/cgi-bin/log.pl
Pronto!
Agora ficou muito mais fácil identificar os erros!
Bom desenvolvimento!