terça-feira, 21 de julho de 2015

WebSphere MQ - Troubleshhoting MQ Server - Activity trace

Existem várias situações que precisamos habilitar trace para troubleshooting.

O trace padrão do MQ pode ser habilitado via comando:
strmqtrc -e -t all -t detail -l 100

Para desabilitar o trace:
endmqtrc -a

Os traces serão gerados no diretório padrão [../qmgrs/nome_queue_manager/trace] no formato AMQ...

Há casos onde precisamos de informações mais detalhadas de todas as atividades realizadas no MQ (Activity trace).
Podemos, por exemplo, obter o conteúdo de todas as mensagens e o correlation id das mesmas para troubleshooting envolvendo o Message Broker. Para isso:

1. Editar o arquivo de Activity trace, [../qmgrs/nome_queue_manager/mqat.ini].
Exemplo de valores: TraceLevel=HIGH, TraceMessageData=100, StopOnGetTraceMsg=OFF

2. Habilitar Activity trace: via MQ Explorer clique com o botão direito em cima do Queue Manager > Online monitoring > Activity trace > ON. Ou, via comando ALTER QMGR ACTVTRC(ON).

3. Efetuar as operações desejadas no MQ Server

4. Desabilitar o Activity trace

5. Visualizar os traces: /usr/mqm/samp/bin/amqsact -m nome_queue_manager -v > saida.txt

6. Visualizar o conteúdo do arquivo saida.txt

Vale ressaltar que Activity trace tem um grande peso sobre a performance do ambiente. Só habilite em momentos de troubleshooting e de modo controlado.

Link de referência: http://www.ibm.com/developerworks/websphere/library/techarticles/1306_bushby/1306_bushby.html

quarta-feira, 15 de julho de 2015

WebSphere MQ - Troubleshhoting MQ Client

Em alguns casos há falha de conectividade entre as aplicações que utilizam MQ Client e o MQ Server como, por exemplo, reason code 2539 [RC2539): MQRC_CHANNEL_CONFIG_ERROR]

Através do MQ Client podemos testar a conectividade com o MQ Server através dos próprios utilitários do MQ, normalmente localizado em "c:\program files (x86)\ibm\websphere mq\tools\c\samples\bin", utilizando os comandos abaixo.

1. Validar a conexão entre o MQ Client e MQ Server
amqscnxc.exe -x nome_do_servidor -c nome_do_canal nome_do_queue_manager

Exemplo: amqscnxc.exe -x servidor01 -c canal01 QM01
Nesse caso, será possível validar se realmente há um problema de conectividade entre o MQ Client e o MQ Server ou se há algum erro vindo da aplicação.
Em algumas situações, foi possível ver que o nome do servidor está configurado incorretamente na aplicação.

2. Inserir uma mensagem na fila
set MQSERVER=nome_do_canal/TCP/nome_do_servidor(1414)
amqsputc nome_da_fila nome_do_queue_manager

Exemplo:
set MQSERVER=SYSTEM.DEF.SVRCONN/TCP/servidor01(1414)
amqsput fila01 QM01
Nesse caso, será possível validar se há algum problema para inserir uma mensagen na fila.
Em algumas situações, foi possível identificar que o usuário utilizado na aplicação não tem permissão para inserir mensagem na fila. Quando isso ocorre, é possível identificar com precisão a falta de permissão no MQ Server no arquivos "../errors/AMQERR01.LOG"

3. Habilitar traces
Em situações mais complexas pode ser necessário habilitar trace e reproduzir o problema para análise ou mesmo encaminhar traces para o Fornecedor (IBM). Os traces ficam gravados no diretório "..\websphere mq\trace" do MQ Client.

- Habilitar trace no MQ Client
strmqtrc -e -t all -t detail -l 100

- Desabilitar trace no MQ Client
endmqtrc -a

4. Verificar lentidão
E alguns casos pode ser percebdio lentidão de conexão entre o MQ Client e o MQ Server. Uma das causas é IPv6 lookup.
Links de referência: http://www-01.ibm.com/support/docview.wss?uid=swg21306138 e http://www-01.ibm.com/support/docview.wss?uid=swg21515397