Configurando Bancos de Dados para Fluxos de Mensagens Coordenados

Se o fluxo de mensagens interagir com um banco de dados e você desejar coordenar as atualizações feitas no banco de dados com outras ações dentro do fluxo de mensagens, configure o intermediário para gerenciar essas atualizações.

Antes de começar:

Para concluir esta tarefa, você deve ter concluído a seguinte tarefa:

Atualize as informações do gerenciador de filas do intermediário, definindo uma sub-rotina XAResourceManager para cada um dos bancos de dados que participarão de transações coordenadas de modo global quando forem atualizadas pelos fluxos de mensagens naquele intermediário.

Se seus fluxos de mensagens fizerem referência a dicionários de mensagens, ou contiverem nós Publication, você também deve definir uma sub-rotina XAResourceManager para o banco de dados do intermediário interno utilizando o mesmo método.

Utilizando o DB2

Se você deseja utilizar o DB2 nas transações coordenadas:

  • Se você utilizar o DB2 Versão 7, utilize o arquivo comutador fornecido; será fornecido um arquivo para cada plataforma suportada. Estes arquivos estão instalados no diretório /sample/xatm.
  • Se você utilizar o DB2 Versão 8, faça download da correção para o APAR IY46106. Isso fornece um arquivo tar que contém os arquivos comutadores para todas as plataformas suportadas.

Se você preferir criar seus próprios arquivos, siga as instruções na seção denominada "DB2 Configuration", no System Administration Guide. Também é possível localizar detalhes sobre como configurar as definições de recurso XA nesse manual.

Utilizando o Oracle

Se desejar utilizar o Oracle em transações coordenadas, siga as instruções gerais na seção chamada "Configuração do Oracle" no manual Administração de Sistemas e utilize-as com as instruções específicas fornecidas aqui. Em particular, você deve fornecer um link simbólico para a biblioteca do cliente do Oracle de 32 bits libclntsh a partir de /usr/lib.

  1. Assegure-se de que o ID do usuário utilizado para acessar o banco de dados especificado no XAOpenString tenha os privilégios do Oracle necessários para acessar a visualização DBA_PENDING_TRANSACTIONS. É possível conceder o acesso necessário utilizando o seguinte comando do Oracle SQLPLUS:
    	grant select on DBA_PENDING_TRANSACTIONS to <id_do_usuário>;
  2. Utilize o switchfile fornecido pelo . Quando você incluir a informação de configuração para o Oracle do XAResourceManager, especifique:
    • UKor8dtc18.so como o switchfile no AIX e no Solaris
    • libSwitchOracle.sl como o switchfile no
    • UKor8dtc18.dll como o switchfile no Windows

Os exemplos a seguir mostram o que você deve incluir a sub-rotina XAResourceManager no arquivo qm.ini nos sistemas e a informação equivalente para o Windows:

  • No AIX:
    XAResourceManager:
    Name=Oracle8
    SwitchFile=/usr/opt//merant/lib/UKor8dtc18.so
    XAOpenString=ORACLE_XA+SQLNET=myserver+ACC=P/scott/tiger+sestm=0+
        threads=TRUE+DB=ORACLEDB
    XACloseString=
    ThreadOfControl=THREAD
  • No :
    XAResourceManager:
    Name=Oracle8
    SwitchFile=/opt//merant/lib/libSwitchOracle.sl
    XAOpenString=ORACLE_XA+SQLNET=myserver+ACC=P/scott/tiger+sestm=0+
        threads=TRUE+DB=ORACLEDB
    XACloseString=
    ThreadOfControl=THREAD

    Você deve executar o seguinte comando (incluindo o ponto inicial e o espaço após ele) antes de iniciar um gerenciador de filas que você configurou dessa forma:

    . /opt//sample/profiles/profile.hpux
  • No Solaris:
    XAResourceManager:
    Name=Oracle8
    SwitchFile=/opt//merant/lib/UKor8dtc18.so
    XAOpenString=ORACLE_XA+SQLNET=myserver+ACC=P/scott/tiger+sestm=0+
        threads=TRUE+DB=ORACLEDB
    XACloseString=
    ThreadOfControl=THREAD
  • No Windows, defina os seguintes valores na página Recursos do diálogo de propriedades para o gerenciador de filas do (acessível a partir dos Serviços do ). Este exemplo assume que você tenha instalado o no diretório C:\:
    SwitchFile: C:\\BIN\UKor8dtc18.dll
    XAOpenString: ORACLE_XA+SQLNET=myserver+ACC=P/scott/tiger+sestm=0+
        threads=TRUE+DB=ORACLEDB
    ThreadOfControl: THREAD

Utilizando o Sybase

Se desejar utilizar o Sybase em transações coordenadas, siga as instruções gerais na seção chamada "Configuração do Sybase" no manual Administração de Sistemas e utilize-as com as instruções fornecidas aqui. suporta apenas o Sybase Versão 12.

  1. Defina cada DSN (Data Source Name) ODBC como um LRM (Logical Resource Manager) no arquivo de configuração Sybase XA $SYBASE/OCS-12_5/xa_config.
  2. Assegure-se de que o DataSourceUserid, especificado quando o intermediário é criado, seja um ID de usuário que tenha recebido a função Sybase do dtm_tm_role.
  3. Utilize o switchfile fornecido pelo . Quando você incluir a informação de configuração XAResourceManager para o Sybase, especifique:
    • UKase18.so como o switchfile no AIX e no Solaris
    • libSwitchSybase.sl como o switchfile no
    • UKase18.dll como o switchfile no Windows
  4. Especifique o nome DSN ODBC do seu banco de dados no parâmetro -N da XAOpenString e o endereço da rede do banco de dados no parâmetro -A.

Os exemplos a seguir mostram o que você deve incluir na sub-rotina XAResourceManager no arquivo qm.ini no sistema e a informação equivalente para o Windows. Em cada exemplo, uid representa o login do usuário e pwd a senha do ID do usuário.

  • No AIX:
    XAResourceManager:
        Name=SYBASEXA
        SwitchFile=/usr/opt//merant/lib/UKase18.so
        XAOpenString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        XACloseString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        ThreadOfControl=THREAD
  • No :
    XAResourceManager:
        Name=SYBASEXA
        SwitchFile=/opt//merant/lib/libSwitchSybase.sl
        XAOpenString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        XACloseString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        ThreadOfControl=THREAD

    Você deve executar o seguinte comando (incluindo o ponto inicial e o espaço após ele) antes de iniciar um gerenciador de filas que você configurou dessa forma:

    . /opt//sample/profiles/profile.hpux
  • No Solaris:
    XAResourceManager:
        Name=SYBASEXA
        SwitchFile=/opt//merant/lib/UKase18.so
        XAOpenString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        XACloseString=-NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
        ThreadOfControl=THREAD
  • No Windows, defina os seguintes valores na página Recursos do diálogo de propriedades para o gerenciador de filas do (acessível a partir dos Serviços do ). Este exemplo supõe que você instalou o no diretório C:\:
    SwitchFile: C:\\BIN\UKase18.dll
    XAOpenString: -NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
    XACloseString: -NSYBASEDB -A10.30.14.72,5000 -WWinsock -Uuid -Ppwd -K2
    ThreadOfControl: THREAD

Conceitos relacionados
Fluxos de Mensagem

Tarefas relacionadas
Acessando Bancos de Dados em Fluxos de Mensagens
Configurando Fluxos de Mensagens Coordenados
Configurando Nós do Fluxo de Mensagens para Fluxos de Mensagens Coordenados
Configurando o e o RRS para Fluxos de Mensagens Coordenadas

Referências relacionadas
Bancos de Dados Suportados
Nós Internos