Gravação de Log utilizando MSMQ e BizTalk

Setembro 11, 2007 at 3:24 am 1 comentário

Contexto:
Em um projeto que trabalho, existem algumas interfaces que fazem comunicação com o Mainframe, com diferentes objetivos. Estas interfaces fazem uso excessivo de Event Viewer, para acompanhamento dos processos, visualização de erros, avisos, início e fim de processos. Atualmente existem 15 interfaces, o que gera uma quantidade alta de logs e dificulta qualquer ação sobre estas informações.

Problema:
Como criar uma solução que possibilite consultas, filtros e relatórios sobre estes Logs, sem interferir na performance do web service?

Solução:
A primeira decisão neste caso é armazenar as informações em banco de dados. E esta decisão é também a razão de inúmeras preocupações:

  1. Como garantir que este acesso ao banco, no momento da execução do web service, não irá interferir no seu processamento principal?
    1. Se o banco estiver fora, o que vai acontecer?
    2. Em caso de timeout?
    3. Em caso de demora na resposta do banco de dados?
    4. etc, etc, etc

A partir destes itens, chegamos a uma solução interessante: tratar os Logs de forma assíncrona, garantindo que o processamento principal do web service não esteja intimamente ligado à gravação de Logs.

Para isso, foi utilizando MSMQ (Microsoft Message Queue – http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx). Este recursos funciona como uma FIFO (First In, First Out). O Web Service envia uma mensagem (LOG) para a fila e outra aplicação, em outro momento, irá tratar esta mensagem, formatando e gravando no banco de dados. Isto garante que a gravação de logs, independente de seu volume, não irá influenciar no processamento principal da aplicação.

msmq3.jpg

 

Note que na arquitetura acima, o BizTalk é responsável por ler a fila e processar a mensagem. Esta escolha foi feita pela garantia que o BTSK6 oferece e pelo seu gerenciamento. 

Abraços!

Anúncios

Entry filed under: Arquitetura.

Acessando Serviços Coisas que aprendi e gostei sobre Debugging – Parte 1

1 Comentário Add your own

  • 1. Anderson Almeida  |  Setembro 11, 2007 às 11:32 pm

    Dá pra colocar que tipo de programa no lugar do biztalk?

    Responder

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendário

Setembro 2007
S T Q Q S S D
« Ago   Nov »
 12
3456789
10111213141516
17181920212223
24252627282930

Most Recent Posts


%d bloggers like this: