JMSOutput

Utilize o nó JMSOutput para enviar mensagens para destinos JMS.

Este tópico contém as seguintes seções:

Propósito

O nó JMSOutput age como um produtor de mensagens JMS e pode publicar todos os seis tipos de mensagens que são definidos na Especificação Java Message Service, Versão 1.1. As mensagens são publicadas utilizando chamadas de método, que são descritas na especificação JMS.

O nó JMSOutput está contido no repositório JMS da paleta e é representado no ambiente de trabalho pelo seguinte ícone:

Ícone do nó JMSOutput

Utilizando o Nó JMSOutput em um Fluxo de Mensagens

A amostra a seguir contém um fluxo de mensagens no qual o nó JMSOutput é utilizado. Observe essa amostra para obter um exemplo de como utilizar o nó JMSOutput. Você pode visualizar amostras apenas quando utilizar o centro de informações integrado ao Message Brokers Toolkit.

Os fluxos de mensagens que manipulam mensagens recebidas de conexões com provedores JMS devem sempre ser iniciados com um nó JMSInput. Se você incluir o nó JMSOutput em um fluxo de mensagens, não precisará incluir um nó JMSInput; mas se não incluir um nó JMSInput, será necessário incluir o nó MQJMSTransform para transformar a mensagem no formato esperado pelo nó JMSOutput.

Se estiver propagando mensagens JMS e criando um fluxo de mensagens para utilizar como um subfluxo, utilize uma instância do nó JMSOutput como o último nó para criar um terminal de saída para o subfluxo.

Controlando o Tipo da Mensagem de Saída JMS

Na árvore de mensagens JMS, o tipo de mensagem JMS é representado pelo campo PayloadType da subpasta Message_MetaData. Para controlar o tipo de mensagem JMS criado pelo nó JMSOutput, utilize o código ESQL para definir o valor de Carga Útil, conforme mostra o exemplo a seguir:
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=Valor de Carga Útil

Para obter mais informações sobre a árvore de mensagens JMS e os valores de carga útil, consulte Representação de Mensagens no Transporte JMS.

Disponibilizando o Cliente do Provedor JMS para os Nós JMS

Serviços configuráveis são definidos para diversos JMSProviders. Você pode escolher um dos serviços predefinidos ou pode criar um novo serviço para um novo provedor ou para um dos provedores existentes.

Para exibir um ou mais dos serviços configuráveis definidos, utilize o comando mqsireportproperties. O exemplo a seguir exibe todos os serviços configuráveis disponíveis para um único intermediário:
mqsireportproperties brokerName -c AllTypes -o AllReportableEntityNames -r 
  • Se você desejar utilizar o Provedor JMS do WebSphere MQ, e você instalou o WebSphere MQ no local padrão no sistema do intermediário, as propriedades já estarão configuradas e você não precisará fazer nenhuma alteração.
  • Se você desejar utilizar o Provedor JMS do WebSphere MQ, e você instalou o WebSphere MQ em um local diferente (não-padrão), ou se você desejar utilizar um dos outros serviços definidos, deverá configurar a propriedade jarsURL para identificar o local dos arquivos JAR de serviço no sistema do intermediário.

    Utilize o comando mqsireportproperties para visualizar as propriedades do provedor e o comando mqsichangeproperties para configurar ou modificar as propriedades.

  • Se nenhum serviço estiver definido para seu provedor JMS, ou se você desejar criar outro serviço para um provedor JMS existente, utilize o comando mqsicreateconfigurableservice para identificar o novo serviço e configurar suas propriedades.
  • Quando você configurar o nó, selecione o serviço apropriado na lista de serviços predefinidos mostrada para a propriedade Nome do Provedor JMS ou digite o nome de seu novo serviço.

Utilizando o Modo de Destino da Mensagem

O nó JMSOutput age como um produtor de mensagens e suporta os seguintes cenários de mensagem:

Enviando uma Mensagem de Datagrama

Datagrama é uma entidade de dados independente e completa que contém informações suficientes para serem roteadas do computador de origem para o de destino, sem confiar em trocas anteriores entre o computador de origem e de destino e a rede de transportes. As instruções a seguir descrevem como enviar uma mensagem de datagrama:
  1. Na guia Básico, configure o destino da mensagem, dependendo do modelo de mensagem que está sendo utilizado. Defina uma das seguintes propriedades com um nome de objeto válido administrado por JNDI:
    • Tópico de Publicação (Publication Topic)
    • Fila de Destino (Destination Queue)
  2. Deixe em branco o campo Responder ao Destino (Reply To Destination).
O nó resolve o nome do objeto administrado por JNDI, que é fornecido no Tópico de Publicação (Publication Topic) ou na Fila de Destino (Destination Queue) e envia a mensagem para esse Destino JMS (JMS Destination).

Enviando uma Mensagem de Resposta

O emissor de uma mensagem poderá querer que o destinatário responda à mensagem. Neste caso, a mensagem JMSOutput pode tratar a mensagem de saída como uma resposta, e roteá-la de acordo com o valor obtido da propriedade JMSReplyTo da mensagem de pedido. Você pode modificar o valor da propriedade JMSReplyTo em MbMessage; por exemplo, utilizando um nó Compute ou um nó JavaCompute. Esta ação permite o roteamento dinâmico de mensagens do nó JMSOutput. O nó envia a mensagem para o nome do Destino JMS que está definido no campo JMSReplyTo da Árvore MbMessage.

O valor JMSReplyTo na Árvore MbMessage (MbMessage Tree) representa o nome do Destino JMS (JMS Destination) que é resolvido pelo JNDI. Exemplo:
queue://QM_mn2/myJMSQueue4
Nesse caso, o valor é a representação específica do provedor JMS de um Destino JMS para o provedor JMS do WebSphere MQ.
Se não desejar especificar um nome do destino JMS resolvido, o nó JMSOutput também poderá aceitar um nome de objeto administrado JNDI no campo JMSReplyTo. No entanto, o nó deve resolver um nome de objeto administrado através de JNDI antes de poder rotear a mensagem para o Destino JMS subjacente. Nesse caso, o valor no campo JMSReplyTo deve ser prefixado com a cadeia: jndi:\\. Por exemplo:
jndi:\\jmsQ4
em que jmsQ4 é o nome do objeto administrado por JNDI.

O desempenho poderá ser ligeiramente impactado quando você utilizar esse método, por causa da necessidade de consultar o objeto administrado no JNDI.

Enviando uma Mensagem de Pedido

O nó JMSOutput pode enviar uma mensagem para um Destino JMS com a expectativa de uma resposta do consumidor de mensagem que processa o pedido. As instruções a seguir descrevem como enviar uma mensagem de pedido:
  1. Na guia Básico, configure o destino da mensagem, dependendo do modelo de mensagem que está sendo utilizado. Defina uma das seguintes propriedades com um nome de objeto válido administrado por JNDI:
    • Tópico de Publicação (Publication Topic)
    • Fila de Destino (Destination Queue)
  2. O destino JMSReplyTo na mensagem de saída pode ser derivado do campo JMSReplyTo da Árvore MbMessage transmitida ao nó. Como alternativa, esse valor pode ser anulado por um nome de objeto administrado por JNDI que é definido na propriedade do nó Reply To Destination (Responder ao Destino).

    Para permitir que o nó JMSOutput configure a propriedade JMSReplyTo dinamicamente na mensagem de saída, deixe o campo Responder ao Destino em branco na guia Básico e configure o valor JMSReplyTo em MbMessage utilizando um nó Compute ou um nó JavaCompute.

O nó procura primeiro um valor no campo JMSReplyTo da MbMessage. Se o nó encontrar o valor, ele o transmitirá no campo JMSReplyTo da mensagem de saída. No entanto, se o campo Responder ao Destino da guia Básico tiver sido especificado, este valor substituirá tudo o que foi configurado anteriormente na propriedade JMSReplyTo da mensagem de saída, depois de resolver primeiro o nome do objeto administrado JNDI.

O nó resolve o nome do objeto administrado por JNDI que é fornecido no Tópico de Publicação (Publication Topic) ou na Fila de Destino (Destination Queue) e envia a mensagem a esse Destino JMS (JMS Destination).

Configurando para Transações Coordenadas

Quando incluir um nó JMSOutput em um fluxo de mensagens, o valor configurado para o Modo de Transação define se as mensagens são enviadas sob o ponto de sincronização.

  • Se você definir o Modo de Transação (Transaction Mode) como Global, a mensagem será enviada na coordenação de ponto de sincronização externo; ou seja, em uma unidade de trabalho do WebSphere MQ. Todas as mensagens enviadas subseqüentemente por um nó de saída na mesma instância do fluxo de mensagens serão colocadas no ponto de sincronização, a menos que o nó de saída substitua essa configuração explicitamente.
  • Se você configurar o Modo de Transação como Local, a mensagem será enviada sob o controle do ponto de sincronização local do nó JMSOutput. Nenhuma mensagem enviada subseqüentemente por um nó de saída no fluxo será colocada no ponto de sincronização local, a menos que um nó de saída individual especifique que a mensagem deve ser colocada no ponto de sincronização local.
  • Se você definir o Modo de Transação (Transaction Mode) como Nenhum (None), a mensagem não será enviada no ponto de sincronização. Nenhuma mensagem enviada subseqüentemente por um nó de saída no fluxo será colocada no ponto de sincronização, a menos que um nó de saída individual especifique que a mensagem deve ser colocada no ponto de sincronização.
Quando desejar enviar mensagens sob o ponto de sincronização externo, será necessário desempenhar etapas de configuração adicionais, que precisam ser aplicadas apenas na primeira vez que um JMSOutput ou JMSInput for implementado no intermediário para um provedor JMS específico:
  • Em sistemas distribuídos, o coordenador do ponto de sincronização externo para o intermediário é WebSphere MQ. Antes de implementar um fluxo de mensagens no qual o Modo de Transação é configurado como Global, modifique o arquivo .ini do gerenciador de filas para incluir definições extras para cada gerenciador de recursos do provedor JMS que participa das transações coordenadas globalmente:
    • Windows platform Nos sistemas Windows, se você tiver o WebSphere MQ Versão 5 instalado:
      1. Inicie o WebSphere MQ Services.
      2. Clique com o botão direito do mouse no nome do gerenciador de filas e clique em Propriedades (Properties).
      3. Clique na guia Propriedades de Recurso (Resource properties).
      4. Configure a propriedade SwitchFile para o seguinte valor:
        install_dir/bin/ JMSSwitch.dll
        XAOpenString=Initial Context,location JNDI,Optional_parms
        ThreadOfControl=THREAD
    • Windows platform Em sistemas Windows, se você tiver o WebSphere MQ Versão 6.0 instalado:
      1. Inicie o WebSphere MQ Explorer.
      2. Clique com o botão direito do mouse no nome do gerenciador de filas, na área de janela esquerda, e clique em Propriedades (Properties).
      3. Clique em Gerenciadores de recursos XA (XA resource managers) na área de janela esquerda.
      4. Configure a propriedade SwitchFile para o seguinte valor:
        install_dir/bin/ JMSSwitch.dll
        XAOpenString=Initial Context,location JNDI,Optional_parms
        ThreadOfControl=THREAD
      Para obter informações adicionais consulte a seção Guia de Administração do Sistema do WebSphere MQ Versão 6: centro de informações on-line ou o manual da Versão 5.3 no WebSphere MQ.
    • Linux platformUNIX platform Nos sistemas Linux e UNIX, inclua uma sub-rotina no arquivo .ini do gerenciador de filas para cada provedor JMS.
      Exemplo:
      XAResourceManager:
      Name=Jms_Provider_Name
      SwitchFile=/install_dir/bin/JMSSwitch.so
      XAOpenString=Initial Context,location JNDI,Optional_parms
      ThreadOfControl=THREAD
      Em que:
      Nome
      é um nome definido pela instalação que identifica um gerenciador de recursos do provedor JMS.
      SwitchFile
      é o caminho do sistema de arquivo para a biblioteca JMSSwitch que é fornecida no diretório bin do intermediário.
      XAOpenString pode ter os seguintes valores:
      • Contexto Inicial é o valor configurado na propriedade básica do nó JMSInput, Initial Context Factory.
      • JNDI do Local é o valor configurado na propriedade básica do nó JMSInput Local de JNDI. Este valor deve incluir a palavra-chave inicial, que é file://, iiop:// ou ldap://
      Os parâmetros a seguir são opcionais:
      • Proprietário LDAP (LDAP Principal) corresponde ao valor configurado para o intermediário utilizando os comandos mqsicreatebroker ou mqsichangebroker.
      • Credenciais LDAP (LDAP Credentials) corresponde ao valor configurado para o intermediário utilizando os comandos mqsicreatebroker ou mqsichangebroker.
      • Nome da Connection Factory de Recuperação (Recovery Connection Factory Name) é a connection factory administrada por JNDI definido no arquivo de ligações. Se um valor não for especificado, um valor padrão para recoverXAQCF deverá ser incluído no arquivo de ligações. Em ambos os casos, o Gerador de Conexão de Recuperação deve ser definido com um Gerador de Conexão de Fila XA para o provedor JMS que está associado ao Gerador de Contexto Inicial.

      Os parâmetros opcionais são separados por vírgula e posicionais. Portanto, quaisquer parâmetros que estejam faltando devem ser representados por uma vírgula.

      1. Atualize a variável de ambiente CLASSPATH Java para o gerenciador de filas do intermediário incluir uma referência a xarecovery.jar; por exemplo:
        install_dir/classes/xarecovery.jar
      2. Atualize a variável de ambiente PATH Java para que o gerenciador de filas do intermediário aponte para o diretório bin, que é onde o arquivo do comutador está localizado; por exemplo:
        install_dir/bin

      Para obter informações adicionais consulte a seção Guia de Administração do Sistema do WebSphere MQ Versão 6: centro de informações on-line ou o manual da Versão 5.3 no WebSphere MQ.

      Para utilizar o mesmo gerenciador de filas para o intermediário e o provedor JMS, assegure que sua instalação do WebSphere MQ esteja no nível mínimo requerido: Versão 5.3 CSD12.

    • z/OS platform No z/OS, o gerenciador de ponto de sincronização externo é o RRS (Resource Recovery Services). O único provedor JMS suportado no z/OS é o WebSphere MQ JMS. A única opção de transporte suportada para o WebSphere MQ JMS no z/OS é a opção ligação.

      O controle do ponto de sincronização para o provedor JMS é gerenciado com a coordenação do ponto de sincronização RRS do gerenciador de filas do intermediário. Não é necessário modificar o arquivo .ini .

Conectando Terminais

Conecte o terminal In do nó JMSOutput ao nó a partir do qual as mensagens de saída são roteadas.

Conecte o terminal Out do nó JMSOutput a outro nó no fluxo de mensagens para processar a mensagem posteriormente, para processar erros ou para enviar a mensagem para um destino adicional.

Terminais e Propriedades

Quando tiver colocado uma instância do nó JMSOutput em um fluxo de mensagens, você poderá configurá-lo; consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades. Para exibir as propriedades do nó no diálogo Propriedades, dê um clique duplo no nó ou clique com o botão direito no nó e clique em Propriedades. Todas as propriedades obrigatórias que não tiverem um valor padrão definido serão marcadas com um asterisco.

Os terminais do nó JMSOutput são descritos na tabela a seguir.
Terminal Descrição
In O terminal de entrada que aceita a mensagem para processamento pelo nó.
Failure O terminal de saída para o qual a mensagem é encaminhada se um ocorrer erro. Mesmo que a propriedade Validação (Validation) esteja definida, as mensagens propagadas para esse terminal não serão validadas.
Out O terminal de saída para o qual a mensagem será roteada se for recuperada com êxito da fila do WebSphere MQ.
Catch O terminal de saída para o qual a mensagem será roteada se for emitida uma exceção downstream e capturada por este nó.

As tabelas a seguir descrevem as propriedades do nó. A coluna com cabeçalho M indica se a propriedade é obrigatória (marcada com um asterisco se você precisar inserir um valor quando nenhum padrão estiver definido), a coluna com cabeçalho C indica se a propriedade é configurável (você pode alterar o valor quando incluir o fluxo de mensagens no arquivo BAR para implementá-lo).

As propriedades Descrição do nó JMSOutput são descritas na tabela a seguir.
Propriedade M C Padrão Descrição
Nome do Nó Não Não O tipo de nó, JMSOutput O nome do nó.
Descrição Breve Não Não   Uma breve descrição do nó.
Descrição Longa Não Não   Texto que descreve a finalidade do nó no fluxo de mensagens.
As propriedades Básicas do nó JMSOutput são descritas na tabela a seguir.
Propriedade M C Padrão Descrição
Enviar resposta ao destino "JMSReplyTo" do cabeçalho JMS (Send reply to the JMS header "JMSReplyTo") Não Sim Não Selecionada Se a mensagem for tratada como resposta, selecione Enviar resposta ao destino do cabeçalho JMS "JMSReplyTo" (Send reply to the JMS header "JMSReplyTo" destination). O provedor JMS é fornecido com o valor JMSReplyTo da seção JMSTransport_Header_values da árvore de mensagens.
Fila de Destino Não Sim   O nome da fila para a qual o nó publica mensagens de saída. Se o nó JMSOutput tiver que ser utilizado para enviar mensagens ponto a ponto, digite o nome da Fila de Destino para o nome da fila JMS listado no arquivo de ligações.
Tópico de Publicação Não Sim   O nome do tópico a partir do qual o nó recebe mensagens publicadas.
  • Se essa propriedade estiver configurada, o nó operará somente no domínio de mensagem de Publicação/Assinatura.
  • Essa propriedade é mutuamente exclusiva com a propriedade Fila de Destino (Destination queue).
  • O nome do Tópico de Publicação (Publication Topic) deve estar de acordo com os padrões do provedor JMS que está sendo utilizado pelo nó.
Responder ao destino (Reply to destination) Não Sim   O nome do destino de JMS para o qual o aplicativo de recebimento deve enviar uma mensagem de resposta. Para retornar uma mensagem de resposta a esse destino JMS, o nome do destino JMS deve ser conhecido para o domínio do provedor JMS que é utilizado pelo cliente receptor. Você pode digitar um destino JMS, que pode ser uma fila de assinatura ou um tópico de destino.

O valor padrão é vazio e, neste caso, a mensagem de saída JMS pode ser considerada um datagrama. Se o campo estiver em branco, o nó JMSOutput não esperará uma resposta do cliente JMS de recebimento.

As propriedades Conexão JMS do nó JMSOutput são descritas na tabela a seguir.
Propriedade M C Padrão Descrição
Depósito de Informações do Provedor de Contexto Inicial Sim Sim com.sun.jndi.fscontext. RefFSContextFactory Essa propriedade é o ponto de início de um espaço de nomes JNDI. Um aplicativo JMS utiliza o contexto inicial para obter e consultar a connection factory e objetos de fila ou tópico para o provedor JMS.

Digite um valor de Depósito de informações de contexto inicial (Initial context factory). Um aplicativo JMS utiliza o contexto inicial para obter e consultar os objetos administrados de JNDI para o provedor JMS. O valor padrão é com.sun.jndi.fscontext.RefFSContextFactory, que define o depósito de informações de contexto inicial baseado em arquivo para o provedor JMS do WebSphere MQ.

Para identificar o nome do Gerador de Contexto Inicial para o provedor JMS, consulte a documentação do provedor de JMS.

Ligações JNDI de Local Não Sim   O caminho do sistema ou local LDAP para o arquivo de ligações O arquivo de ligações contém definições para objetos administrados JNDI que são utilizados pelo nó JMSOutput.
Ao digitar um valor para Ligações JNDI de Local (Location JNDI Bindings), assegure-se de que ele esteja de acordo com as seguintes instruções:
  • Construa o arquivo de ligações antes de implementar um fluxo de mensagens que contém um nó JMSOutput.
  • Não inclua o nome do arquivo de ligações nesse campo.
  • Se você tiver especificado um local do LDAP que exija autenticação, configure o proprietário LDAP (ID do usuário) e as credenciais LDAP (senha) separadamente. Estes valores são configurados no nível do intermediário. Para obter informações sobre esses valores, consulte Comando mqsicreatebroker and Comando mqsichangebroker.
  • Esse valor de cadeia deve incluir a palavra-chave inicial, que é uma das seguintes:
    • file://
    • iiop://
    • ldap://

Para obter informações sobre a construção de arquivo de ligações de objetos administrados por JNDI, consulte a documentação que é fornecida com o provedor JMS.

Nome da Connection Factory Não Sim   O nome da connection utilizada pelo nó JMSOutput para criar uma conexão com o provedor JMS. Esse nome já deve existir no arquivo de ligações.
As propriedades Avançadas do nó JMSOutput são descritas na tabela a seguir.
Propriedade M C Padrão Descrição
Novo ID de Correlação Não Sim   Se o nó JMSOutput for necessário para gerar um novo ID de Correlação para a mensagem, selecione Novo ID de Correlação. Se deixar a caixa de opção desmarcada, o ID de Correlação da mensagem de saída é obtido no campo JMSCorrelationID na seção JMSTransport_Header_Values da árvore de mensagens.
Modo de Transação Sim Não Nenhuma Essa propriedade controla se a mensagem que chega é recebida no ponto de sincronização.
  • Selecione Nenhum (None) se a mensagem de saída tiver de ser tratada como não persistente. Se você selecionar esse valor, a mensagem será enviada utilizando uma sessão JMS não transacionada que é criada com o uso do sinalizador Session.AUTO_ACKNOWLEDGE.
  • Selecione Local se o nó de entrada que recebeu a mensagem precisar coordenar a confirmação ou recuperação de mensagens JMS que foram enviadas pelo nó JMSOutput, juntamente com quaisquer outros recursos, como o DB2 ou o WebSphere MQ, que executam trabalho no fluxo de mensagens. Se você selecionar esse valor, o nó utilizará uma sessão JMS transacionada.
  • Selecione Global se o nó JMSOutput precisar participar de uma transação do fluxo de mensagens global que seja gerenciado pelo coordenador do ponto de sincronização externo do intermediário. O coordenador do ponto de sincronização é o gerenciador de filas do intermediário em sistemas distribuídos, e o RRS (Resource Recovery Services) no z/OS. Se você selecionar esse valor, todas as mensagens recebidas pelo nó serão coordenadas globalmente utilizando uma sessão JMS XA.
Modo de Entrega Não Sim Não Persistente Essa propriedade controla o modo de persistência que um provedor JMS utiliza para uma mensagem. Os valores válidos são:
  • Automático (Automatic): o modo da mensagem de entrada é herdado
  • Persistente (Persistent): a mensagem permanecerá se o provedor JMS tiver uma falha do sistema
  • Não Persistente (Non Persistent): a mensagem será perdida se o provedor JMS tiver uma falha do sistema
Expiração da Mensagem (Message Expiration (ms)) Não Sim 0 Esta propriedade controla o período de tempo, em milissegundos, durante o qual o provedor JMS mantém a mensagem JMS de saída. O valor padrão, 0, é utilizado para indicar que a mensagem não deve expirar.
Prioridade de Mensagem Não Sim 4 Esta propriedade designa a importância relativa à mensagem e pode ser utilizada para seleção de mensagem por um aplicativo cliente JMS de recebimento ou um nó JMSOutput.

Os valores válidos para a prioridade de mensagem são de 0 (prioridade mais baixa) a 9 (prioridade mais alta). O valor padrão é 4, que indica prioridade média. As prioridades no intervalo de 0 a 4 estão relacionadas à entrega típica. As prioridades no intervalo de 5 a 9 estão relacionadas a graus de entrega expedida.

As propriedades Validação do nó JMSOutput são descritas na tabela a seguir. Para obter informações adicionais sobre as propriedades de Validação, consulte Validando Mensagens e Propriedades de Validação.
Propriedade M C Padrão Descrição
Validar Não Sim Herdar Essa propriedade controla se a validação ocorre. Os valores válidos são Nenhum, Conteúdo, Conteúdo e Valor e Herdar.
Ação de Defeito Não Não Exceção Essa propriedade controla o que acontecerá se a validação falhar. Você pode configurar essa propriedade somente se configurar Validar como Conteúdo ou Conteúdo e Valor. Os valores válidos são Rastreio do Usuário, Registro de Erros Local, Exceção e Lista de Exceções.
Incluir Todas as Limitações do Valor Não Não Selecionado Não é possível editar essa propriedade. Se a caixa de opções for selecionada (o padrão), verificações básicas de limitação de valor serão incluídas na validação Conteúdo e Valor (Content and Value).
Correção Não Não Nenhuma Não é possível editar essa propriedade.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:54

ac24830_