Exemplo de um cluster com mais de uma instância de uma fila
Neste exemplo de um cluster com mais de uma instância de uma fila, as mensagens serão roteadas para instâncias diferentes da fila. É possível forçar uma mensagem para uma instância específica da fila e é possível optar por enviar uma sequência de mensagens para um de um dos gerenciadores de filas.
Figura 1 mostra um cluster no qual há mais de uma definição para a fila Q3. Se um aplicativo em QM1
coloca uma mensagem em Q3 e ele não sabe necessariamente qual instância do Q3 está indo processar sua mensagem. Se um aplicativo estiver em execução no QM2 ou QM4, onde há instâncias locais de Q3e a instância local de Q3 é aberta por padrão. Configurando o atributo da fila CLWLUSEQe a instância local da fila podem ser tratados da mesma forma que uma ocorrência remota da fila.
A opção MQOPEN DefBind controla se o gerenciador de filas de destino é escolhido quando a chamada MQOPEN é emitido ou quando a mensagem for transferido da fila de transmissão.
- A fila de destino está indisponível quando a mensagem chega no gerenciador de fila de destino.
- O estado da fila foi mudado.
- A mensagem foi colocada utilizando um alias de fila de clusters e nenhuma instância da fila de destino existe no gerenciador de filas no qual a instância do alias da fila do cluster está definida.

Um fator que pode impedir que as mensagens sejam roteadas novamente será se as mensagens foram designadas a um gerenciador de filas ou canal fixado com MQBND_BIND_ON_OPEN. As mensagens ligadas ao MQOPEN nunca são realocadas para outro canal. Observe também que a realocação de mensagem apenas ocorre quando um canal de cluster está realmente falhando. Realocação não ocorrerá se o canal já tiver falhado.
O sistema tentará rotear uma mensagem se o gerenciador de filas de destino ficar fora de serviço. Ao fazêloe isto não afeta a integridade da mensagem correndo o risco de perdê-la ou criando uma duplicata. Se um gerenciador de filas falhar e deixar uma mensagem pendentee essa mensagem não será roteada novamente.
Em IBM® MQ for z/OS®, o canal não para completamente até que o processo de realocação de mensagens seja concluído. Parar o canal com o modo
configurado como FORCE ou TERMINATE interrompe o processo, portanto, se você
fizer isso, algumas mensagens BIND_NOT_FIXED poderão já ter sido realocadas para
outro canal ou as mensagens poderão estar fora de ordem.
Observação:- Antes de configurar um cluster que possui múltiplas instâncias da mesma fila, assegure que suas mensagens não tenham dependências entre si. Por exemplo, precisando ser processadas em uma sequência específica ou pelo mesmo gerenciador de filas.
- Torne as definições para diferentes instâncias da mesma fila idênticas. Caso contrário, você obterá resultados diferentes de diferentes chamadas MQINQ.