terça-feira, 1 de dezembro de 2009

Acucobol + LOG

Quando nos deparamos com problemas oriundos de falhas de execução nos processos (geralmente processos batch), somente chegamos a solução executando o processo falho novamente por tantas vezes até que tenhamos um ponto de partida para começar a investigação. Nessas situações podemos utilizar um log nos processos, que irá nos situar e reduzir o desperdício de tempo para começar a investigação. A seguir irei demostrar como implementar log de processos em programas acucobol.

Abaixo foi implementado um script que executa o programa cobol, define o nome e diretório onde o log será armazenado. Para executar basta passar como parâmetro o programa acucobol, o script acrescenta informações ao log antes de instanciar o runtime. Já no runtime podemos observar o parâmetro '--time' que acrescenta ao final do log o tempo real de execução, e por fim o parâmetro +ee que identifica o arquivo de log e que ele será alimentado pelo programa a ser executado.

ACU=`echo $1`
DATA_HORA=`date +%d%m%Y_%H%M_%N`
LOG_FILE=/var/log/acucobol/log_$ACU_$DATA_HORA.txt
touch $LOG_FILE
chmod 777 $LOG_FILE
logname >> $LOG_FILE
echo $IP_CLIENTE >> $LOG_FILE
date >> $LOG_FILE
runcbl --time +ee $LOG_FILE $ACU
date >> $LOG_FILE
exit

Agora veremos quais as alterações necessárias no programa acucobol. Inicialmente deve ser declarada em SPECIAL-NAMES, SYSERR IS SYSERR.

SPECIAL-NAMES
SYSERR IS SYSERR.

Pronto, para escrever no log basta utilizar
DISPLAY "GRAVANDO NO LOG" UPON SYSERR

É muito simples e facilitará o monitoramente dos processos. Façam bom uso.

Grato pela oportunidade.

Nenhum comentário:

Postar um comentário