Configure seu ambiente do broker para coordenar globalmente transações do
fluxo de mensagem com atualizações nos bancos de dados Oracle sob controle de um gerenciador de filas do
WebSphere MQ.
Configure o seu ambiente do broker para coordenação global usando um gerenciador de filas de 64 bits como o gerenciador de transações com drivers DataDirect:

No Linux e UNIX, execute o comando mqsimanagexalinks.
No Windows 64 bits, para a versão de 64 bits do WebSphere Message Broker, execute o comando mqsimanagexalinks e
inclua o diretório especificado como o ExitsDefaultPath do gerenciador de filas
no PATH do sistema.
- Configure o gerenciador de filas do broker com informações
do gerenciador de recursos XA de cada banco de dados que estiver envolvido na transação
que o gerenciador de filas coordenará globalmente.

No Linux e no UNIX:
- Abra o arquivo qm.ini dos gerenciadores de filas
em um editor de texto. O arquivo qm.ini está localizado em /var/mqm/qmgrs/queue_manager_name/qm.ini.
Em que queue_manager_name é o nome do broker que está associado ao gerenciador de filas.
- Inclua a sub-rotina a seguir no final do arquivoqm.ini:

XAResourceManager:
Name=OracleXA
SwitchFile=UKoradtc24.so
XAOpenString=ORACLE_XA
+HostName=MyHostName
+PortNumber=MyPortNumber
+ServiceName=MyServiceName
+ACC=P/MyUserId/MyPassword
+sestm=100+threads=TRUE
+DataSource=MyDataSourceName
+K=2+
XACloseString=
ThreadOfControl=THREAD
- Na linha XAOpenString, substitua os seguintes valores pelos
valores apropriados à sua configuração:
- MyHostName é o nome do host
TCP/IP que hospeda o listener do banco de dados Oracle. Quando você estiver usando o Oracle
Real Application Clusters com diversos listeners para o Nome de Serviço
fornecido, se o listener do Oracle identificado pelos valores para MyHostName e MyPortNumber
na XAOpenString estiver indisponível, os listeners alternativos
do Oracle que podem ter sido definidos na lista AlternateServers
no arquivo odbc.ini também serão
tentados.
- MyPortNumber é a porta TCP/IP na
qual o listener do banco de dados Oracle está atendendo.
- MyUserId deve ser o nome de usuário que o broker
usa para se conectar ao banco de dados.
É possível definir o nome do usuário que o broker usa de uma série de maneiras; certifique-se de especificar o nome correto nesse arquivo. O broker determina o nome de usuário verificando as seguintes
condições na ordem listada:
- Um nome de usuário e senha específicos para este nome da origem de dados (DSN),
que você definiu executando o comando mqsisetdbparms.
- Um nome de usuário e senha padrão para
todos os DSNs, que você definiu executando o comando mqsisetdbparms.
- Um nome de usuário e senha padrão para todos os DSNs, que você definiu
especificando o parâmetro -u no comando mqsicreatebroker.
Este parâmetro é válido somente para brokers
que você migrou a partir de releases anteriores.
- O nome de usuário de serviço do broker, que você define com o parâmetro -i no comando mqsicreatebroker
- MyPassword é a senha associada ao nome de usuário.
- MyDataSourceName é o nome da origem
de dados ODBC do banco de dados, conforme definido no arquivo odbc.ini.
- MyServiceName é
o valor configurado para o Nome do Serviço na sub-rotina para MyDataSourceName
no arquivo odbc.ini.
- Aceite os valores padrão para todas as demais linhas na sub-rotina. Por exemplo:
- Se estiver usando coordenação Global para o Oracle:
- Configure a variável de ambiente ODBCINI para ficar visível no ambiente
do qual o gerenciador de filas é iniciado. A variável ODBCINI deve
fazer referência ao mesmo arquivo que está sendo usado pelo broker.
- Uma propriedade adicional opcional, CTO=Value,
está disponível para a XAOpenString. CTO é o valor configurado
para um Tempo Limite de Conexão, indicando o número de segundos que o arquivo de comutação aguardará por uma resposta do banco de dados Oracle para uma solicitação XA. Por exemplo, o tempo limite pode ser usado para evitar longos atrasos no failover do broker sobre um nó alternativo do Oracle Real Application Clusters, quando a instância ativa do Oracle falhar abruptamente, interrompendo as conexões do soquete. O Value deve ser configurado como um valor maior do que o valor sestm de tempo limite da sessão Oracle configurada na XAOpenString. Se essa propriedade não for usada, ou estiver configurada como zero, não haverá tempo limite (esse é o comportamento padrão).
No Windows 32 bits e Windows 64 bits
- No menu Iniciar, abra o WebSphere MQ Explorer.
- Abra a caixa de diálogo Propriedades do gerenciador de filas e, em seguida, abra gerenciadores de recursos XA.
- No campo SwitchFile,
insira o nome do arquivo de troca, conforme mostrado no exemplo a seguir,
em que install_dir é
o local em que o broker está instalado:

- No campo XAOpenString, cole a seguinte cadeia:
ORACLE_XA+
+HostName=MyHostName
+PortNumber=MyPortNumber
+ServiceName=MyServiceName
+ACC=P/MyUserId/MyPassword
+sestm=100+threads=TRUE
+DataSource=MyDataSourceName
+K=2+
- No campo XAOpenString, substitua os valores
por valores que sejam apropriados para sua configuração:
- MyHostName é o nome do host
TCP/IP que hospeda o listener do banco de dados Oracle. Quando você estiver usando o Oracle
Real Application Clusters com diversos listeners para o Nome de Serviço
fornecido, se o listener do Oracle identificado pelos valores para MyHostName e MyPortNumber
na XAOpenString estiver indisponível, os listeners alternativos
do Oracle que podem ter sido definidos na lista AlternateServers
no arquivo odbc.ini também serão
tentados.
- MyPortNumber é a porta TCP/IP na
qual o listener do banco de dados Oracle está atendendo.
- MyUserId deve ser o nome de usuário que o broker
usa para se conectar ao banco de dados.
É possível definir o nome do usuário que o broker usa de uma série de maneiras; certifique-se de especificar o nome correto nesse arquivo. O broker determina o nome de usuário verificando as seguintes
condições na ordem listada:
- Um nome de usuário e senha específicos para este nome da origem de dados (DSN),
que você definiu executando o comando mqsisetdbparms.
- Um nome de usuário e senha padrão para
todos os DSNs, que você definiu executando o comando mqsisetdbparms.
- Um nome de usuário e senha padrão para todos os DSNs, que você definiu
especificando o parâmetro -u no comando mqsicreatebroker.
Este parâmetro é válido somente para brokers
que você migrou a partir de releases anteriores.
- O nome de usuário de serviço do broker, que você define com o parâmetro -i no comando mqsicreatebroker
- MyPassword é a senha associada ao nome de usuário.
- MyDataSourceName é o nome da origem
de dados ODBC do banco de dados, conforme definido no arquivo odbc.ini.
- MyServiceName é o
valor configurado para o Nome do Serviço na definição ODBC da origem de
dados MyDataSourceName.
Por Exemplo:
ORACLE_XA+
+HostName=diaz.hursley.ibm.com
+PortNumber=1521
+ServiceName=accounts_service
+ACC=P/wbrkuid/wbrkpw
+sestm=100+threads=TRUE
+DataSource=MYDB+K=2+
- Aceite os valores padrão para todos os demais campos da página.
No AIX, se você desejar ativar origens de dados Oracle para usar
na coordenação global a partir de um gerenciador de filas e broker para executar o registro de XA dinâmico,
configure a seguinte variável de ambiente: DDTEK_XA_DYNAMIC_REGISTRATION=1

Pare, em seguida, reinicie o gerenciador de filas para aplicar as
alterações, porque qm.ini é somente leitura durante a execução
do gerenciador de filas. Para parar e reiniciar o gerenciador de filas, insira os seguintes comandos, em que
queue_manager_name é o nome
do gerenciador de filas:
endmqm queue_manager_name
strmqm queue_manager_name
Quando o gerenciador de filas reiniciar, verifique o log do gerenciador de filas para todos os avisos que estejam associados com o reinício.
Os arquivos de log estão
localizados em /var/mqm/qmgrs/queue_manager_name/errors,
em que queue_manager_name é o nome do gerenciador de filas reiniciado.
Quando o gerenciador de filas for reiniciado com êxito,
as alterações feitas em qm.ini serão aplicadas.
Pare e, em seguida, reinicie o gerenciador de filas para aplicar as
alterações. Para parar e reiniciar o gerenciador de filas, insira os seguintes comandos, em que
queue_manager_name é o nome
do gerenciador de filas:
endmqm queue_manager_name
strmqm -si queue_manager_name
Quando o gerenciador de filas reiniciar, verifique o log do gerenciador de filas para todos os avisos que estejam associados com o reinício.
Os arquivos de log estão
localizados em /var/mqm/qmgrs/queue_manager_name/errors,
em que queue_manager_name é o nome do gerenciador de filas reiniciado.
Quando o gerenciador de filas reinicia com êxito, as alterações feitas são
aplicadas.
O Oracle agora está configurado para coordenação global com o gerenciador de
filas do broker que coordena transações.
Em seguida: é possível implementar fluxos de mensagens
coordenados globalmente no broker.