quinta-feira, 5 de janeiro de 2012

Ajuste automático de numero sequencial de canais de MQ

Em primeiro lugar o MQ é um produto muito estável. normalmente a causa do problema não será o MQ, poderá ser maquina, rede, usuario... mas o MQ é um santo ^^

No meu caso costumo utilizar o MQ 5.3 que apesar de ser muito bom não tem nativamente alguns recursos que poderiam ajudar em momentos difíceis.

Se você tem muitos canais de MQ estabelecidos sabe que será trabalhoso restabelecer todos caso alguma desgraça aconteça, ainda mais se for envolver terceiros no processo.

Esse script resolve o caso. ele pega o numero sequencial que a outra ponta espera e sincroniza os canais sozinhos. faz o que um bom analista faria só que muito mais rápido, só depende dos tempos de retryng do mq =)


Obs:
Diretorio: /var/mqm/qmgrs/QMGR/errors

tail -f AMQERR01.LOG |
awk -v teste=0 '{
if ( /AMQ9526:/ )
{
c = $8
channel = substr(c,2,(length(c)-3))
teste = 1
}
if (teste) {
if ( /amqrmtra/ || /amqrfpta/ ) {
system("echo \"STOP CHL("channel")\" > reset")
system("echo \"RESET CHL("channel") SEQNUM("seqnum")\" >> reset")
system("echo \"START CHL("channel")\" >> reset")
system("echo \"END\" >> reset")
system("cat reset | runmqsc QMGR > reset.log")
system("cat reset.log")
teste = 0}
else{if ( $1 ~ /number./ ) {seqnum = $7}}
}
}'
exit






Nenhum comentário:

Postar um comentário