[z/OS]

Conceitos de Proxy Dinâmico do Java Management Extensions

Um proxy dinâmico JMX (Java™ Management Extensions) coordena os pedidos de MBean entre servidores com vários processos. Esta seção descreve os principais termos associados a um proxy dinâmico de JMX.

Processo de controle
Recebe pedidos e os distribui para processos servants para que o servidor de aplicativos possa executar trabalho para os pedidos.
Processo servant
Recebe trabalho do processo de controle e executa o trabalho.
Opção unicall versus a opção multicall
Utilize a opção unicall no método proxyInvocationType quando um pedido chamar um processo servant ou processos servants arbitrários. Utilize a opção multicall no método proxyInvocationType quando um pedido for dirigido a vários processos servants e os processos servants retornarem resultados diferentes.

O exemplo a seguir mostra um descritor MBean que foi desenvolvido para um único modelo de processo (antes) e modificado para um modelo de multiprocessamento (depois).

Antes
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  description="Sample State MBean for the documentation example.">

  <attribute description="The name of the MBean."
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="O estado do MBean."name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
  <operation
    description="Initialize the State MBean."
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void">
    <signature>
      <parameter description="The name of the MBean."
        name="mbeanName" type="java.lang.String"/>
      <parameter description="The initial state of the MBean."
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Depois
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  platform="dynamicproxy"
  description="Sample State MBean for the documentation example.">

  <attribute description="The name of the MBean."
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="O estado do MBean."name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
    proxyInvokeType="unicall" proxySetterInvokeType="multicall"/>
  <operation
    description="Initialize the State MBean."
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void" proxyInvokeType="multicall">
    <signature>
      <parameter description="The name of the MBean."
        name="mbeanName" type="java.lang.String"/>
      <parameter description="The initial state of the MBean."
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Faça com que o MBean do usuário seja executado no modo de proxy dinâmico especificando dynamicproxy no atributo da plataforma. Se nenhum atributo de plataforma existir no descritor do MBean, o MBean do usuário implementado no WebSphere Application Server para z/OS utilizará automaticamente o modo de proxy dinâmico.
Atualize a marcação XML do atributo ou a marcação XML da operação, conforme mostrado no exemplo "Depois", para especificar o comportamento de unicall ou de multicall no ambiente de multiprocessamento. Se não existir nenhuma opção proxyInvokeType ou proxySetterInvokeType, o comportamento usará como padrão um dos seguintes valores:
proxyInvokeType=unicall (para o getMethod)
proxyInvokeType=multicall (para o setMethod)

No exemplo "Depois", os métodos getMBeanName e getState são executados com o comportamento unicall. Os métodos setState e initializeState são executados com o comportamento multicall.

Modelo de processo único
O servidor de aplicativos do processo único possui um tempo de execução do servidor. O MBean geralmente atua em uma instância de cada componente de tempo de execução principal: um contêiner Enterprise JavaBeans (EJB), um contêiner da Web, um gerenciador de conexões Java 2 Platform, Enterprise Edition (J2EE) e assim por diante. Esse modelo presume que cada chamada de MBean no servidor é executada no mesmo processo e na mesma JVM (Java Virtual Machine).
Modelo de multiprocessamento
O modelo de multiprocessos avalia se uma instância de servidor único é uma associação de JVMs (Java virtual machines), que são executadas em um processo operacional separado. O processo de controle é responsável por essas funções do servidor, como nós de extremidade da comunicação, autorização, recuperação de recursos e gerenciamento da carga de trabalho. As outras JVMs são JVMs trabalhadoras, nas quais os pedidos de aplicativos são executados. Essas JVMs são direcionadas a partir do processo de controle e interagem apenas com eles.

Todos os pedidos de entrada e transmissão passam pelo processo de controle. Os pedidos dos clientes chegam no processo de controle. O processo de controle, com a assistência do MVS WLM (Workload Manager), envia o trabalho para os processos servant.

O número de processos servants é gerenciado pelo WLM e varia de acordo com a demanda. A demanda é medida em relação aos objetivos de desempenho específicos da instalação, expressos como critério WLM. Cada processo servant é idêntico e hospeda os componentes necessários do servidor de aplicativos para ativar o modelo de programação de aplicativos J2EE. Os processos servants dependem do processo de controle de vários serviços, como comunicação, segurança e controle de transação.

O modelo de multiprocessos impõe demandas adicionais sobre a infraestrutura JMX (Java Management Extension) pelo modelo de processo único. Os pedidos administrativos a um servidor de multiprocessamento requerem, freqüentemente, coordenação entre os processos que compõem o servidor de aplicativos. A infraestrutura do JMX inclui recursos adicionais para ativar essa coordenação.

modelo do servidor de multiprocessamento
Suporte ao objeto de estado para o MBean do proxy dinâmico
Classe com.ibm.websphere.management.dynamicproxy.StateObject: O provedor de MBean estende a classe abstrata StateObject. Especifique a subclasse da classe StateObject para que o tempo de execução de JMX possa instanciá-la antes que o MBean do proxy dinâmico conclua sua inicialização. O tempo de execução do JMX conecta a classe StateObject à interface de Rotina de Tratamento de Chamada do proxy dinâmico para manter o controle do estado atual do proxy dinâmico antes e depois da execução do método MBean. O tempo de execução do JMX também conecta a classe StateObject à classe de interface de Agregação de Resultados, assim como à classe de interface de Rotina de Tratamento de Eventos para suportar o aplicativo de agregação apropriado.
Interface de suporte à rotina de tratamento de agregação de resultados
classe com.ibm.websphere.management.dynamicproxy.AggregationHandler: a interface de suporte do manipulador de agregação de resultados define o método que um provedor de MBean utiliza para tratar a agregação de resultados em um MBean do WebSphere Application Server para z/OS ativado para proxy dinâmico. Especifique o atributo aggregationHandlerClass na marcação XML do MBean MBeanDescriptor. Implemente a interface para métodos MBean que utilizem a opção multicall de proxyInvokeType e que retornam um valor. A interface determina o método para o qual essa agregação é processada. Em seguida, ela agrega adequadamente todos os resultados de MBean do servant que os processos servants retornam para o processo de controle e compila um único resultado para retornar ao responsável pela chamada.
Interface de suporte à rotina de tratamento de agregação de eventos
classe de interface com.ibm.websphere.management.dynamicproxy.EventHandler: a interface de suporte do manipulador de agregação de eventos define o método que um provedor de MBean utiliza para tratar a agregação de eventos em um MBean do WebSphere Application Server para z/OS ativado para proxy dinâmico. Especifique o atributo eventHandlerClass na marcação XML do MBean MBeanDescriptor. A interface trata de todos os eventos MBean servants de entrada e os agrega para remover eventos duplicados dos vários MBeans servants. Ela retorna um evento para o atendente do MBean do proxy dinâmico. A interface acerta o estado atual do MBean do proxy dinâmico de acordo com os requisitos do provedor Mbean
Interface de suporte à rotina de tratamento de chamada
classe com.ibm.websphere.management.dynamicproxy.InvocationHandler: a interface de suporte do manipulador de chamadas define os métodos preInvoke e postInvoke que um MBean de proxy dinâmico do WebSphere Application Server para z/OS implementa quando requer informações de gerenciamento de estado. O MBean utiliza as informações para coordenar com os MBeans servants em casos em que o tipo de chamada multicall é requerido. Especifique o atributo invocationHandlerClass na marcação XML do MBean MBeanDescriptor. Utilize a interface para MBeans do proxy dinâmico que requerem gerenciamento de estado antes e depois da chamada de um método que altera seu estado.
MBean do Usuário
O MBean do usuário reside no processo servant e trata dos pedidos por meio de seu MBean do proxy criado dinamicamente, que é executado dentro do processo de controle. Um provedor de MBean pode empacotar rotinas de tratamento com o MBean do usuário para que o provedor seja conectado a seu próprio processamento especializado nas seguintes situações:
  • Agregação de resultados
  • Agregação de eventos
  • Tratamento de chamada
  • Gerenciamento do estado dos objetos

Í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=cjmx_proxycon
Nome do arquivo: cjmx_proxycon.html