Este tópico contém orientações para lidar com alguns problemas comuns que podem surgir durante a execução de fluxos de mensagens.
Este erro faz a mensagem ser direcionada para o terminal Failure.
BIP2211: (Mensagem ode configuração inválida contendo o valor de atributo [attribute value]
que não é válido para o atributo de destino [target attribute name],
objeto [object name]; os valores válidos são [valid values])
Você pode ter conectado o terminal Failure do nó MQInput a um nó sucessivo em vez do terminal Out. O terminal Out é o terminal intermediário dos três. As mensagens direcionadas para um terminal Out não conectado são descartadas.
Se o terminal Failure do nó MQInput tiver sido conectado (por exemplo, a um nó MQOutput), estas mensagens não aparecerão.
Conectar um nó a um terminal Failure de qualquer nó indica que você projetou o fluxo de mensagens para lidar com todo o processamento de erro. Se você conectar um terminal Failure a um nó MQOutput, seu fluxo de mensagens ignorará todos os erros que ocorrem.
Esta ação produz uma entrada de rastreio de usuário somente dos nós que a mensagem visita.
Nos sistemas distribuídos, você pode recuperar as entradas de rastreio utilizando o comando mqsireadlog , formatá-las utilizando o comando mqsiformatlog e visualizar os registros formatados para verificar o caminho da mensagem através do fluxo de mensagens.
Para z/OS, edite e envie a tarefa
BIPRELG
em
COMPONENTPDS para executar os comandos mqsireadlog e mqsiformatlog para rastreios de
processo.
Reenvie sua mensagem para o fluxo de mensagens. O rastreio no nível de depuração produz muitos detalhes adicionais sobre por que a mensagem está seguindo uma determinada rota e você pode, então, determinar as razões para as ações tomadas pelo fluxo de mensagens.
Não se esqueça de ativar o rastreio quando tiver solucionado o problema, caso contrário, o desempenho será afetado de forma adversa.
SQL0954C Não há armazenamento suficiente disponível no heap de aplicativo para processar a instrução.
No
z/OS, um SQLSTATE de HY014 pode
ser retornado com um código SQL igual a -99999, indicando que o
processo DataFlowEngine atingiu o limite de processos do
DB2
z/OS de 254 identificadores de
instruções SQL preparadas.
Por razões de desempenho, depois que a instrução é preparada, a instrução e o identificador são salvos em um cache para reduzir o número de chamadas à função SQLPrepare. Se a instrução já estiver no cache, o identificador da instrução será retornado para que possa ser executado novamente com parâmetros recém-ligados.
A cadeia da instrução é utilizada para executar a consulta no cache. Utilizando cadeias SQL codificadas que diferem ligeiramente para cada mensagem, a instrução não é localizada no cache e uma função SQLPrepare é sempre executada (e um novo cursor ODBC é aberto). Ao utilizar as instruções PASSTHRU, utilize marcadores de parâmetros de forma que a mesma instrução SQL preparada possa ser utilizada para cada mensagem processada, sendo que os parâmetros são ligados no tempo de execução. Essa abordagem é mais eficiente em termos de recursos de banco de dados e, para instruções que são executadas repetidamente, é mais rápida.
Contudo, nem sempre é possível utilizar marcadores de parâmetros, ou você pode querer construir dinamicamente as cadeias das instruções SQL em tempo de execução. Isso potencialmente faz com que muitas instruções SQL únicas sejam armazenadas no cache. O próprio cache não cresce tanto, já que essas instruções em si geralmente não são grandes, mas muitas alocações de memória pequenas podem levar à fragmentação de memória.
Alguns procedimentos de exemplo para ajudá-lo na configuração de listas de destino são fornecidos em Ocupando o Destino na Árvore Ambiente Local. Você pode utilizar esses procedimentos sem alteração ou modificá-los para seus próprios requisitos.
Se o problema persistir,esvazie wsplugin6.conf, reinicie o intermediário e implemente os fluxos de mensagens novamente.
BIP5347 é geralmente emitida durante a etapa 1. Esse problema pode apresentar-se intermitente; se você reiniciar o grupo de execução, às vezes a mensagem será processada corretamente.
BIP5347 geralmente ocorre em AIX, em que é causado pela limitação padrão de dez conexões com memória compartilhada para DB2.
BIP5347 também pode ser causada pela presença de uma restrição de valor data/hora no conjunto de mensagens, o que causa o erro toda vez que o conjunto de mensagens é implementado.
SQL1224N Um agente de banco de dados não pôde ser iniciado para atender a um pedido ou foi finalizado como resultado de um encerramento do sistema de banco de dados ou de um comando force.Consulte a solução desse problema em A mensagem de erro SQL1224N DB2 é emitida ao conectar-se ao DB2.
Impossível analisar a data/hora internamente, 9, 2001-12-17T09:30:47.0Z, yyyy-MM-dd’T’HH:mm:ss.SZZZEsse erro ocorre porque o elemento MRM em questão possui um valor data/hora que não é compatível com a cadeia de formatações de data/hora, portanto, o dicionário é rejeitado. Para resolver esse problema, assegure-se de que o valor data/hora esteja compatível com a cadeia de formatações de data/hora.
BIP2130: Erro ao converter uma cadeia de caracteres de ou para a página de códigos [code page value]
em que [code page value] é -1 ou -2. No entanto, você não especificou uma página de códigos -1 ou -2 em sua árvore de mensagens.
No entanto, você utilizou uma das constantes do WebSphere MQ, MQCCSI_EMBEDDED ou MQCCSI_INHERIT.SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = MQCCSI_INHERIT;por
SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = InputRoot.MQMD.CodedCharSetId;em que a pasta MQMD é o cabeçalho precedente do cabeçalho MQRFH2.
db2set DB2_RR_TO_RS=YES_OVERRIDE_RI
Reinicie o gerenciador de banco de dados do DB2 para que essa alteração tenha efeito.