Configure seu fluxo de mensagens para
receber ou enviar mensagens em transações coordenadas.
Quando você inclui um nó usando o transporte JMS em um fluxo
de mensagens, como o nó JMSInput ou
SOAPInput ao usar transporte JMS, o valor
configurado para o Modo de Transação define se
as mensagens são recebidas no ponto de sincronização.
- Se você configurar essa propriedade como Sim com a propriedade de fluxo Transação Coordenada
selecionada, a mensagem será recebida na coordenação do ponto de sincronização externo,
ou seja, em uma unidade de trabalho do
WebSphere MQ. Quaisquer mensagens que
são enviadas subsequentemente por um nó de saída na mesma instância do fluxo de mensagens
são colocadas no ponto de sincronização, a menos que o nó de saída substitua esta configuração
explicitamente.
- Se você configurar essa propriedade como Sim com a propriedade de fluxo Transação Coordenada
não selecionada, a mensagem será recebida no controle do ponto de sincronização
local do nó. Qualquer mensagem
enviada subsequentemente por um nó de saída no fluxo não
é 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ê configurar esta propriedade para Não,
a mensagem não será recebida no ponto de sincronização. Qualquer mensagem
enviada subsequentemente por um nó de saída no fluxo não
é 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.
Para
receber mensagens no ponto de sincronização externo, você deve executar etapas de
configuração adicionais, que precisam ser aplicadas apenas na primeira vez que um nó
específico usando o transporte JMS for implementado no broker para um determinado
provedor JMS.
- Em sistemas distribuídos, o coordenador do ponto de sincronização externo para o broker
é WebSphere MQ. Antes de
implementar um fluxo de mensagens no qual a propriedade Modo de
Transação está configurada como Global ou Sim e está destinada a usar transações coordenadas por XA, modifique o arquivo .ini
do gerenciador de filas para incluir definições extras
para cada gerenciador de recursos do provedor JMS que participa de transações
coordenadas globalmente.
No Windows: - Inicie o WebSphere MQ Explorer.
- Clique com o botão direito do mouse no nome do gerenciador de filas, na área de
janela esquerda, e clique em Propriedades (Properties).
- Clique em Gerenciadores de recursos XA (XA resource managers)
na área de janela esquerda.
- Clique em Incluir....
- Configure as opções da seguinte forma:
- Configure Nome como qualquer valor.
- No Windows em sistemas x86, configure a
propriedade SwitchFile como install_dir\bin\JMSSwitch.dll.
No Windows em sistemas x86-64, configure a
propriedade SwitchFile como
JMSSwitch.dll.
- Configure a propriedade XAOpenString como
um valor de sequência desta forma: Contexto
Inicial,JNDI do local,Optional_parms.
- Configure a propriedade ThreadOfControl
como Encadeamento.
- No Windows em sistemas x86-64 somente, copie o
arquivo de alternância JMSSwitch32.dll no subdiretório
\exits no diretório de instalação do
WebSphere MQ e renomeie-o para
JMSSwitch.dll. Copie o arquivo do comutador JMSSwitch.dll para o subdiretório \exits64 no diretório de instalação do WebSphere MQ.
Para obter informações adicionais, consulte a seção Guia de Administração do Sistema do Centro de Informações Online do WebSphere MQ Versão 7.

Nos sistemas Linux e UNIX, inclua uma sub-rotina no arquivo
.ini do gerenciador de fila para cada provedor JMS. Por 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 broker.
XAOpenString pode ter os seguintes valores:
- Contexto Inicial é o valor que é configurado na propriedade Gerador de Contexto Inicial do nó JMSInput.
- JNDI do Local é o valor que é configurado na propriedade Ligações de JNDI do Local do nó JMSInput. Esse valor
deve incluir um prefixo URL suportado que tenha uma rotina de tratamento de URL que esteja
disponível no caminho de classe.
Os parâmetros a seguir são opcionais:
- Proprietário LDAP (LDAP Principal)
corresponde ao valor configurado para o broker utilizando os comandos
mqsicreatebroker ou
mqsichangebroker.
- Credenciais LDAP (LDAP Credentials)
corresponde ao valor configurado para o broker 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, você deverá
incluir um valor padrão para recoverXAQCF 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. Por exemplo:
com.sun.jndi.fscontext.RefFSContextFactory,file:/C:/webservices/SOAP/JMS/JNDIXA,,,QCF
- Atualize a variável de ambiente Java™ CLASSPATH
do gerenciador de filas do broker para incluir
uma referência no xarecovery.jar; por exemplo:
install_dir/classes/xarecovery.jar
- Atualize a variável de ambiente Java PATH
do gerenciador de filas do broker para apontar para o diretório bin
no qual o SwitchFile está localizado; por exemplo:
install_dir/bin
Por fim, assegure que tenha executado as seguintes etapas de configuração:
- No fluxo de mensagens, assegure-se de que a propriedade coordenada seja ativada usando o editor de Archive do WebSphere Message Broker.
- Assegure que cada nó que faz parte da transação XA esteja configurado
no modo de transação global.
- Assegure que o ID do serviço que é utilizado para o broker e o gerenciador de filas seja o mesmo ID de usuário.
- Assegure que os objetos do gerado de conexão JNDI que os nós JMS utilizam para uma transação global estejam configurados para terem o mesmo tipo MQXAConnectionFactory,
MQXAQueueConnectionFactory ou MQXATopicConnectionFactory.
- Se você criar as ligações usando o WebSphere Message Broker Explorer,
assegure-se de que a opção Suportar Transações
XA esteja marcada ao definir o connection factory.
- Se você criar as ligações usando JMSAdmin, use o comando DEF
XAQCF ou DEF XATCF, em vez de DEF
QCF ou DEF TCF, ao definir o connection factory.
Para obter informações adicionais, consulte a seção Guia de Administração do Sistema do Centro de Informações Online do WebSphere MQ Versão 7.
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 de ponto de sincronização
RRS do gerenciador de filas do broker. Não é
necessário modificar o arquivo .ini .