terça-feira, abril 05, 2011

PowerBuilder - Ativação do PBDebug (-DEB)


Texto criado por Daniel Carvalho

 Fui designado para resolver um problema de performance que estava acontecendo na integração de um sistema, o problema era o seguinte, quando um sistema erá disparado a partir de outro ele demorava 2 HORAS para terminar o processo, mas quando era feito diretamente, não levava mais do que 2 minutos. No mínimo INTRIGANTE!
Ficou comigo então a missão de descobrir o problema de performance e a sua solução!
A primeira coisa a ser feita foi colocar alguns logs dentro do sistema, gerei uma versão e copiei esta para uma outra pasta sem DLL e sem INI, lá só estavam o .EXE e as PBDs. Criei um arquivo BAT que passava a misteriosa string para o sistema: RSE#9#Rel. SEDE por Agência-Debito #1#SQLSERVER##OLE DB#amdteslgn0603#amdteslgn0603 #amdteslgn0603#amdteslgn0603#AMDTESDBS0603# ATTBHZS015 #PROVIDER='SQLOLEDB', DATASOURCE='ATTBHZS015', OJSyntax = 'ANSI'#4#
Na primeira execução notei que TUDO estava lento. Quando fechei o arquivo de log notei que havia um estranho no ninho, um arquivo de nome “XXXXXXX.DBG”. Fiquei ali olhando para aquele arquivo e me perguntando quem diabos tinha colocado ele ali, e pelo horário e owner notei que tinha sido EU! O problema disso é que esse arquivo só deveria ser criado quando fosse passado o parâmetro “/PBDEBUG” para o sistema, o que não era o caso, pois dentro da string misteriosa não havia nenhum sinal deste termo. Apaguei o invasor e tentei executar o sistema passando o nome do arquivo TXT, como se fosse uma execução em lote, e tudo correu sem problemas de performance.
Foi aí que começou a minha luta contra o NADA, pois de alguma forma dentro da string misteriosa existia algum termo não documentando pela Sybase que gerava o arquivo de debug “.DBG”. Retirei toda a string e fui colocando letra por letra e executando o sistema para ver onde que o arquivo .DBG começava a ser gerado, para minha sorte e espanto consegui chegar rapidamente ao “TERMO SECRETO”, ele encontra-se no início da string e nunca encontrei documentação nenhuma falando a respeito dele, o termo misterioso é “-Deb”. Para verificar se isso era realmente o problema conversei com o pessoal da sistema e eles substituíram o “-“ por um espaço e adivinhem.......... O problema de performance foi RESOLVIDO!!!! Agora o problema é explicar para um usuário final que a retirada de um traço resolve o problema de performance.

Nenhum comentário: