Este artigo descreve o padrão de programação do recurso de particionamento (WPF) no WebSphere Extended Deployment para z/OS V6.0.1.
Como o roteamento WPF-WLM por IIOP (Internet Inter-ORB Protocol) não é suportado no WebSphere Extended Deployment para z/OS V6.0.1, os aplicativos devem manipular seu roteamento de partições utilizando a tecnologia JMS (Java Message Service) ou outros mecanismos.
O mecanismo de roteamento baseado em JMS (Java Message Service) é ilustrado na figura a seguir. Dois pedidos são mostrados, o pedido 1 e o pedido 2. Observe que cada pedido precisa ir para um tópico/fila designado de JMS para um roteamento de partição. O tópico/fila JMS deve redirecionar o pedido para a partição de destino, a qual se prepara para processar o pedido e envia a resposta para um tópico/fila JMS designado para respostas de roteamento. Embora as etapas de execução sejam as mesmas, a ordem de execução dos pedidos não é garantida, já que muitos fatores dependem da execução, incluindo o local da máquina, o desempenho do servidor e a configuração da rede.
As rotas de pedido para o pedido 1 (1-1.3) e o pedido 2 (2-2.3) são mostradas no gráfico a seguir, resultando na obtenção de respostas pelo Appclient (3).
As etapas a seguir descrevem a rota do pedido 1. Observe que o pedido 2 ou qualquer outro pedido segue esta mesma rota. As execuções de cada pedido são independentes entre si e a ordem na qual elas são recebidas não é garantida.
A partições de aplicativos em ClusterMembers são vinculadas e sempre atendem a seus tópicos/filas JMS correspondentes (utilizando AsyncBean). Por exemplo, na Partição 1 (P1), as partições de aplicativos recebem as mensagens JMS sempre que novas mensagens chegam em seu tópico/fila JMS correspondente.
Exatamente como em aplicativos normais habilitados para WPF, existe um PSSB (Partitioned Stateless Session Bean) que implementa a interface PartitionHandlerLocal. Os métodos partitionLoadEvent(String partitionName) e partitionUnloadEvent(String partitionName) da interface PartitionHandlerLocal são os pontos para ligar e desligar uma partição a um tópico/fila JMS.
partitionLoadEvent(String partitionName) - isto significa que a partição com o nome como o partitionName transmitido é ativada neste sistema. Inicie ou torne visível o worker thread da partição (ou você pode utilizar o worker thread do AsyncBean) que está ligado ao tópico/fila JMS que está designado para a partição partitionName. Você deve manter uma referência ao worker thread da partição para poder pará-lo ou destruí-lo quando o partitionUnloadEvent correspondente ocorrer.
partitionUnloadEvent(String partitionName) - isto significa que a partição com o nome como o partitionName transmitido é desativada neste sistema. O worker thread da partição será desligado do tópico/fila JMS que está designado para a partição partitionName e parará ou destruirá o worker thread da partição correspondente.
Related concepts
Restrições para z/OS
no WPF