Ordenamento de Mensagens Rigoroso Usando Especificações de Ativação ou Portas do Listener do ASF Conectadas ao WebSphere MQ Versão 6.0

A ordenação de mensagens estritas pode ser atingida ao implementar aplicativos de bean acionado por mensagens para o provedor de sistema de mensagens do WebSphere MQ para quando nenhum recurso especial tiver sido codificado no aplicativo para manipular mensagens que chegam fora de ordem.

Para WebSphere Application Server Versão 7 e posterior, as portas listener são estabilizadas. Para obter informações adicionais, leia o artigo sobre recursos estabilizados. Você deve planejar migrar as configurações de implementação do bean acionado por mensagens do WebSphere MQ do uso de portas do listener para o uso de especificações de ativação. [AIX Solaris HP-UX Linux Windows][IBM i]Para obter informações adicionais sobre como configurar as especificações de ativação para o modo não ASF, veja Configurando especificações de ativação para o modo não ASF. No entanto, você não deve iniciar esta migração até ter certeza de que o aplicativo não precisa funcionar nos servidores de aplicativos anteriores ao WebSphere Application Server Versão 7. Por exemplo, se você possuir um cluster do servidor de aplicativos com alguns membros na Versão 6.1 e alguns em uma versão posterior, não deverá migrar os aplicativos nesse cluster para usar as especificações de ativação até depois de ter migrado todos os servidores de aplicativos no cluster para a versão posterior.

As seguintes suposições foram feitas neste cenário:
  • O aplicativo de bean acionado por mensagens (MDB) é transacional.
  • O limite de retorno (BOTHRESH) na fila do WebSphere MQ foi configurado para 0.
  • Você está usando o WebSphere MQ Versão 6.0.

Configuração do WebSphere Application Server para Entrega Ordenada

  • Se você estiver usando nas portas do listener no WebSphere Application Server, Máximo de Sessões deve ser configurado como 1.
  • Se você estiver usando especificações de ativação no WebSphere Application Server, Máximo de Sessões do Servidor deve ser configurado como 1.

Informações importantes sobre esta configuração

  • As portas do listener ASF e as especificações de ativação do WebSphere MQ contêm duas partes separadas, que juntas executam a entrega de mensagens. Essas duas partes são vistas como aplicativos separados pelo gerenciador de filas:
    • Uma parte detecta mensagens conforme elas chegam, mas não as consome. Em vez disso, ela as despacha para a segunda parte.
    • A parte dois é um conjunto de sessões do servidor que aloca um encadeamento para processar a mensagem dentro da transação do aplicativo, e a entrega para o método onMessage() do MDB.
    Nota: Quando uma porta do listener ASF ou a especificação de ativação estiver conectada a um gerenciador de filas do WebSphere MQ Versão 6.0 ou anterior, um mecanismo de pesquisa menos eficiente (com base em um cursor de navegação) será usado para detectar mensagens na fila.

Circunstâncias nas quais as mensagens podem chegar fora de ordem

As mensagens podem chegar fora de ordem com esta implementação nas seguintes circunstâncias:
  • Mensagens podem ser entregues fora de ordem durante uma recuperação de transação:
    Nota: Um conjunto específico de eventos deve ocorrer em uma ordem específica para que esse cenário seja encontrado, o que é incomum. Entretanto, se uma entrega de mensagem ordenada for crucial para a operação do seu aplicativo, essa entrega ordenada deverá ser considerada.
    • Uma entrega de mensagem fora de ordem poderá ocorrer com essa opção de implementação durante a recuperação de uma falha de um dos seguintes componentes:
      • O servidor de aplicativos que hospeda o MDB
      • O gerenciador de filas do WebSphere MQ
      • Uma rede que conecta o servidor de aplicativos e o gerenciador de filas.
    • Se um desses componentes falhar no meio de um two-phase commit de uma transação MDB, o gerenciador de transações do servidor de aplicativos restabelecerá sua conexão com o gerenciador de filas para resolver a transação quando o componente estiver disponível novamente.
    • Esse processo de recuperação é assíncrono e a entrega de novas mensagens para o MDB pode ser iniciada antes que o processo de recuperação de transação seja concluído. Se o resultado da recuperação de transação for retroceder a transação, então a mensagem será retornada para a fila do WebSphere MQ e novamente entregue para o aplicativo, possivelmente após novas mensagens já terem sido entregues.
  • Após um retrocesso de transação, a próxima mensagem disponível na fila poderá ser entregue antes que a mensagem retrocedida seja entregue novamente:
    • Para uma porta listener ASF, configurar Máximo de novas tentativas para zero evita a entrega fora de ordem após a ocorrência de um retrocesso ao parar a porta listener. No entanto, a porta listener deve ser reinicializada manualmente.
    • Para uma especificação de ativação, selecionar Parar terminal se a entrega da mensagem falhar e configurar Número de falhas de entrega sequencial antes de suspender o terminal para 0 evita entrega fora de ordem após um retrocesso ao pausar o terminal de mensagem quando um retrocesso ocorrer. Entretanto, o terminal de mensagem para o MDB deverá então ser continuado manualmente. Para obter mais informações, consulte o centro de informações do WebSphere MQ.
  • Durando a operação normal, quando vários encadeamentos estão enviando mensagens para o destino (para sequências diferentes) usando transações:
    • Esse comportamento ocorre devido à operação do cursor de navegação do WebSphere MQ.
    • Quando uma mensagem for confirmada para uma fila do WebSphere MQ, enquanto outra mensagem enviada para o destino não é confirmada (dentro de uma transação que ainda não foi concluída), o cursor de navegação será movido para a mensagem mais nova na fila e não retornará automaticamente para a mensagem anterior quando ela for eventualmente confirmada. Isso pode fazer com que mensagens apareçam na fila após o cursor de navegação.
    • Se esse cenário ocorrer, mensagens mais novas dentro de uma sequência poderão ser entregues ao MDB antes que o provedor de sistema de mensagens do WebSphere MQ varra novamente a fila e detecte a mensagem que apareceu atrás do cursor de navegação.
  • Se a fila do WebSphere MQ que está sendo monitorada por uma especificação de ativação ou porta do listener ASF tiver o atributo de sequência de entrega de mensagens (MSGDLYSEQ) configurado para prioridade, a ordenação de mensagens poderá falhar em virtude dos motivos a seguir:
    • As mensagens de uma prioridade inferior podem ser entregues antes das mensagens de uma prioridade superior, quando as mensagens de múltiplas prioridades forem enviadas para uma fila, esse comportamento ocorrerá em virtude da operação do cursor de navegação do WebSphere MQ. O cursor de navegação se move por meio de todas as mensagens disponíveis na mais alta prioridade e, em seguida, nas mensagens de prioridade inferior. Se mensagens de prioridade superior chegarem quando o cursor de navegação estiver navegando mensagens de prioridade inferior, as mensagens de prioridade superior podem não ser entregues até que todas as mensagens de prioridade inferior na fila tenham sido entregues.
    • As portas do listener ASF ou as especificações de ativação que navegam por filas que possuem Sequência de Entrega de Mensagens configurada como FIFO não verão esse problema, pois o WebSphere MQ ordena as mensagens na fila na ordem em que elas chegam, em vez de ordená-las por prioridade.

Considerações para uma Implementação de Cluster

  • É possível ativar o MDB apenas em um membro de cluster, pois o servidor de aplicativos não possui um recurso que possa gerenciar esta ativação automaticamente.
  • É possível configurar o estado de inicialização de portas do listener como parado, separadamente da configuração do estado de inicialização de um aplicativo.
  • É possível iniciar e parar os aplicativos, portas do listener do ASF e terminais de mensagens manualmente com interfaces MBean usando o script wsadmin, ou usando as interfaces com.ibm.websphere.management.AdminClient do código Java™.

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cmm_wmq_smo_mq6
Nome do arquivo: cmm_wmq_smo_mq6.html