Conectando o ` App Connect ` a um banco de dados ` IBM Db2 ` em uma rede privada

Saiba como implementar uma integração do App Connect Toolkit que interaja com um banco de dados do IBM® Db2® em uma rede privada.

Antes de Iniciar

Para concluir este tutorial, você precisará de um arquivo BAR que contenha um fluxo de mensagens que interaja com um banco de dados do IBM Db2. A Galeria de Tutoriais do Kit de Ferramentas do App Connect contém vários tutoriais relacionados ao IBM Db2. Abra a Tutorials Gallery e digite Db2 na caixa de pesquisa. Para obter mais informações, consulte os tutoriais sobre o ` IBM App Connect Enterprise ` na documentação do ` App Connect Enterprise `.

Sobre essa tarefa

Nesse cenário, você deseja implementar uma integração do Toolkit que contenha um fluxo de mensagens que interaja com um banco de dados do IBM Db2. O servidor do IBM Db2 gerenciado pelo cliente está hospedado em uma rede privada (por exemplo, atrás de um firewall em um sistema local). Portanto, é necessário configurar o App Connect para acessar o servidor de banco de dados com segurança por meio de uma conexão de rede privada.

Para configurar a conexão de rede privada entre App Connect e IBM Db2, utilize um servidor de integração em IBM App Connect Enterprise como agente seguro. O agente seguro se conecta ao servidor de switch que é executado na sua instância do App Connect. O servidor do switch ativa o encaminhamento de porta, que direciona as conexões para a porta e o host do banco de dados remoto por meio de um túnel SSH.

Para configurar a conexão do banco de dados para o seu fluxo de mensagens, implante o arquivo BAR com as seguintes configurações, que fornecem as informações de conexão necessárias.
  • Uma db2cli.ini configuração contém detalhes de localização (o host local e a porta, além do nome do banco de dados) para o servidor IBM Db2.
  • Uma odbc.ini configuração contém detalhes fixos relativos aos dados de origem (como a localização dos drivers de banco de dados do IBM Db2 ). Esses dados são necessários para se conectar ao banco de dados usando o padrão Open Database Connectivity ( ODBC ).
  • Uma configuração setdbparms.txt contém credenciais de fonte de dados (nome de usuário e senha) para autenticação no banco de dados.
  • A configuração Private Network Agent contém detalhes de conectividade para o encaminhamento de portas. Essa configuração usa um arquivo switchclient.json para fornecer detalhes de host, porta e certificado para a conexão remota e detalhes do local e dos certificados do servidor do switch.

Este tutorial descreve como configurar uma conexão de rede privada e implementar uma integração. As duas primeiras etapas descrevem como criar um servidor de integração e configurá-lo como um agente seguro. Outros tempos de execução podem então usar esse agente seguro para se conectar em uma rede privada. As etapas a seguir também descrevem como criar configurações antes de criar o tempo de execução da integração, mas você também pode criá-las ao criar o tempo de execução.

Procedimento

  1. Em App Connect Enterprise 12.0.7.0 ou posterior, crie um servidor de integração executando o comando mqsicreateworkdir no ambiente de comando App Connect Enterprise.
    Esse comando cria um diretório de trabalho para seu servidor de integração que contém um arquivo de configuração padrão chamado server.conf.yaml. Esse arquivo YAML contém as configurações padrão para seu novo servidor de integração. (Para obter mais informações, consulte o comando mqsicreateworkdir na App Connect Enterprise documentação)
  2. Configure o servidor de integração App Connect Enterprise para ser um agente seguro.
    1. Em App Connect, expanda Conectar Ícone que representa a categoria Connect no painel de navegação, clique em Redes privadas e, em seguida, clique em Criar.
    2. Abra o menu Ícone que representa o menu em um bloco de fluxo ao lado da nova conexão de rede privada e clique em View setup instructions (Exibir instruções de configuração ).
    3. Na etapa Download da configuração do agente seguro, selecione seu sistema operacional e clique em Download da configuração.
      O arquivo de configuração do agente seguro (switchclient.json) é baixado para um local em seu computador.
    4. Edite o switchclient.json arquivo para adicionar o nome do host (ou endereço IP) IBM Db2 e a porta à endpoints matriz, conforme mostrado no exemplo a seguir.
      {
        "id": "fbda61eb-0e17-4bd2-a61d-9d202c1b2303",
        "admin": "enabled",
        "callableFlow": "enabled",
        "endpoints": [
          {
            "name": "My DB2 endpoint descriptive name",
            "hostname": "203.0.113.10",
            "port": 30041,
            "useTLS": false,
            "certs": {
              "key": "",
              "cert": "",
              "ca": [
                ""
              ],
              "rejectUnauthorized": true
            }
          }
        ],
        "switch": {
          "url": "wss://default-switch-server-switch-abcdefgh1jg.apps.appc-c-vir-d1.vz8y.p1.abc.com:443",
          "certs": {
            "key": "-----BEGIN PRIVATE KEY-----\nxxx\n-----END PRIVATE KEY-----\n",
            "cert": "-----BEGIN CERTIFICATE-----\nyyy\n-----END CERTIFICATE-----\n",
            "ca": [
              "-----BEGIN CERTIFICATE-----\nzzz\n-----END CERTIFICATE-----\n"
            ],
            "rejectUnauthorized": true
          }
        },
        "displayName": "pnc-wed-14-jun-2023-07-25-14-gmt-553"
      }
    5. Mova o arquivo switchclient.json atualizado para o diretório workdir/config/switch do servidor de integração App Connect Enterprise que você criou anteriormente.
    6. Inicie o servidor de integração App Connect Enterprise.
    O servidor de integração App Connect Enterprise o servidor de integração está agora conectado ao servidor de switch em sua App Connect instância.
  3. Configure o encaminhamento de porta criando uma configuração Private network agent em App Connect.
    O encaminhamento de porta redireciona as conexões de uma porta local em escuta para a porta remota na qual o servidor IBM Db2 está em escuta.
    1. Salve uma cópia do arquivo switchclient.json atualizado da etapa anterior em um local temporário. Anote os valores hostname e port nesse arquivo, pois você precisará adicioná-los à matriz listeners em uma etapa posterior.
    2. Edite o arquivo para remover as seções id, admin, callableFlows e endpoints .
      O exemplo a seguir mostra como o arquivo switchclient.json agora contém as seções switch e displayName .
      {
        "switch": {
          "url": "wss://default-switch-server-switch-abcdefgh1jg.apps.appc-c-vir-d1.vz8y.p1.abc.com:443",
          "certs": {
            "key": "-----BEGIN PRIVATE KEY-----\nxxx\n-----END PRIVATE KEY-----\n",
            "cert": "-----BEGIN CERTIFICATE-----\nyyy\n-----END CERTIFICATE-----\n",
            "ca": [
              "-----BEGIN CERTIFICATE-----\nzzz\n-----END CERTIFICATE-----\n"
            ],
            "rejectUnauthorized": true
          }
        },
        "displayName": "pnc-wed-14-jun-2023-07-25-14-gmt-553"
      }
    3. Insira a seguinte matriz listeners diretamente após a primeira chave de abertura do arquivo.
        "listeners": [{
        "localPort": localPortNumber,
        "remoteHostname": "remoteHost",
        "remotePort": remotePortNumber
      }],
      localPortNumber é um número de porta local de sua escolha, por meio do qual todas as conexões com a porta do servidor de banco de dados remoto na rede privada são encaminhadas.
      remoteHost é o nome do host ou o endereço IP do servidor de banco de dados do arquivo switchclient.json pré-editado.
      remotePortNumber é o número da porta do servidor de banco de dados do arquivo switchclient.json pré-editado.
      O exemplo a seguir mostra um arquivo concluído. Neste exemplo, as conexões com a porta local 9000 são encaminhadas para a porta remota 30041, na qual o host do banco de dados 203.0.113.10 escuta.
      {
        "listeners": [{
        "localPort": 9000,
        "remoteHostname": "203.0.113.10",
        "remotePort": 30041
      }],
        "switch": {
          "url": "wss://default-switch-server-switch-abcdefgh1jg.apps.appc-c-vir-d1.vz8y.p1.abc.com:443",
          "certs": {
            "key": "-----BEGIN PRIVATE KEY-----\nxxx\n-----END PRIVATE KEY-----\n",
            "cert": "-----BEGIN CERTIFICATE-----\nyyy\n-----END CERTIFICATE-----\n",
            "ca": [
              "-----BEGIN CERTIFICATE-----\nzzz\n-----END CERTIFICATE-----\n"
            ],
            "rejectUnauthorized": true
          }
        },
        "displayName": "pnc-wed-14-jun-2023-07-25-14-gmt-553"
      }
  4. Crie uma configuração Private network agent usando o arquivo switchclient.json editado.
    1. Na página Manage (Gerenciar ) do site App Connect, clique em Configurations (Configurações ) e, em seguida, em Create configuration (Criar configuração ).
    2. Em Type (Tipo ), selecione Private network agent (Agente de rede privada ) e digite um nome para a configuração.
    3. Cole o conteúdo do seu switchclient.json na seção Private network agent (Agente de rede privada ).
      (Para obter mais informações, consulte Configuração do agente de rede privada )
    4. Clique em Create.
  5. Crie uma db2cli.ini configuração que contenha os detalhes de localização da fonte de dados para o servidor IBM Db2. Esse tipo de configuração requer um arquivo db2cli.ini .
    1. No arquivo db2cli.ini , defina o valor Hostname como o nome padrão localhost para o servidor de banco de dados e defina o valor Port como o valor localPort do arquivo switchclient.json na etapa anterior.
      O exemplo a seguir mostra um formato típico para o arquivo db2cli.ini .
      [databaseAlias]
      Database=databaseName
      Protocol=TCPIP
      Hostname=localhost
      Port=serviceName_or_portNumber
      O exemplo a seguir mostra um arquivo concluído.
      [USERDB]
      Database=USERDB
      Protocol=TCPIP
      Hostname=localhost
      Port=9000
    2. Opcional: Para evitar que atrasos na comunicação afetem o processamento do fluxo de mensagens, adicione valores para os ConnectTimeout parâmetros ReceiveTimeout e.
      Se ocorrerem problemas durante a comunicação com IBM Db2 e não houver tempo limite configurado, o fluxo de mensagens poderá não conseguir receber novas solicitações. Para evitar essa situação, configure os seguintes parâmetros de tempo limite no db2cli.ini arquivo.
      Parâmetro ConnectTimeout
      Este parâmetro especifica o tempo (em segundos) de espera por uma resposta ao tentar se conectar a um servidor. Após esse período, ocorre um tempo limite de comunicação.

      Para obter mais informações, consulte a palavra-chave de configuração ` ConnectTimeout ` na documentação do ` IBM Db2 `.

      Parâmetro ReceiveTimeout
      Este parâmetro especifica o tempo (em segundos) que se deve aguardar por uma resposta do servidor em uma conexão estabelecida. Após esse período, ocorre um tempo limite de comunicação.

      Para obter mais informações, consulte a palavra-chave de configuração ` ReceiveTimeout ` na documentação do ` IBM Db2 `.

      Defina esses parâmetros com o número de segundos a esperar, até um valor máximo de 32.767. Se você não especificar um valor para nenhum dos parâmetros, o cliente aguardará indefinidamente por uma resposta do servidor.

      O exemplo a seguir mostra um arquivo completo com valores de tempo limite.
      [USERDB]
      Database=USERDB
      Protocol=TCPIP
      Hostname=localhost
      Port=9000
      ConnectTimeout=30
      ReceiveTimeout=60
    3. Em App Connect, crie a configuração db2cli.ini e importe o arquivo db2cli.ini .
      (Para obter mais informações, consulte db2cli.ini configuration.)
  6. Crie uma configuração odbc.ini que defina as propriedades fixas da fonte de dados que o tempo de execução da integração usa para uma conexão Open Database Connectivity ( ODBC ) com o banco de dados. Esse tipo de configuração requer um arquivo odbc.ini .
    1. No arquivo odbc.ini , defina as propriedades da fonte de dados IBM Db2.
      O exemplo a seguir mostra o formato típico de um odbc.ini arquivo com configurações d IBM Db2.
      ;#######################################
      ;#### List of data sources stanza ######
      ;#######################################
      
      [ODBC Data Sources]
      USERDB=IBM Data Server Driver included in App Connect Enterprise
      
      ;###########################################
      ;###### Individual data source stanzas #####
      ;###########################################
      
      ;# IBM Data Server Driver included in App Connect Enterprise
      ;# Use of this driver requires additional configuration of Db2 configuration files 'db2cli.ini'
      ;# or 'db2dsdriver.cfg', and the setting of additional environment variables.
      ;# Refer to the documentation for details of the required configuration.
      [USERDB]
      DRIVER=/opt/ibm/ace-13/server/ODBC/dsdriver/odbc_cli/clidriver/lib/libdb2o.so
      Description=IBM Db2 ODBC Database accessed by using the IBM Data Server Driver included in App Connect Enterprise
      Database=USERDB
      
      ;##########################################
      ;###### Mandatory information stanza ######
      ;##########################################
      
      [ODBC]
      InstallDir=/opt/ibm/ace-13/server/ODBC/drivers
      UseCursorLib=0
      IANAAppCodePage=4
      UNICODE=UTF-8
    2. Em App Connect, crie a configuração odbc.ini e importe o arquivo odbc.ini .
      (Para obter mais informações, consulte odbc.ini configuration.)
  7. Crie uma configuração setdbparms.txt que contenha credenciais de autenticação para conexão com o banco de dados.
    Esse tipo de configuração requer um arquivo setdbparms.txt . O arquivo setdbparms.txt contém um ou mais comandos mqsisetdbparms . (Para mais informações, consulte mqsisetdbparms comando a App Connect Enterprise documentação.)
    1. No arquivo setdbparms.txt , defina as credenciais de autenticação para o banco de dados.
      Os exemplos a seguir mostram formatos alternativos de amostra do conteúdo do arquivo.
      mqsisetdbparms -w /home/aceuser/ace-server -n USERDB -u myUserID -p myPassw0rd
      odbc::USERDB myUserID myPassw0rd
    2. Em App Connect, crie uma configuração setdbparms.txt e importe o arquivo setdbparms.txt que contém as credenciais de autenticação do gerenciador de filas.
      (Para obter mais informações, consulte setdbparms.txt configuration.)
  8. Empacote seu fluxo de mensagens App Connect Enterprise em um arquivo BAR.
    (Para obter mais informações, consulte “Criação de um arquivo BAR” na documentação do App Connect Enterprise.)
  9. Em App Connect, implemente o arquivo BAR.
    1. Na página Gerenciar Ícone que representa a página Gerenciar, clique em Arquivos BAR e, em seguida, clique em Importar arquivo BAR.
    2. Arraste ou selecione o arquivo BAR e clique em Importar.
    3. Abra o menu Ícone que representa o menu em um bloco de fluxo ao lado do arquivo BAR importado e clique em Implantar.
    4. Selecione um tempo de execução de integração existente ou clique em Criar tempo de execução para criar um.
    5. Na página Configurations (Configurações ), selecione as configurações que você criou (Private network agent, db2cli.ini, odbc.ini e setdbparms.txt.
    6. Clique em Next e depois em Deploy.

Resultados

Seu App Connect Enterprise O fluxo de mensagens do Toolkit está implantado e pronto para ser testado. As configurações que você implantou com o arquivo BAR fornecem detalhes de conexão e autenticação para se conectar com segurança ao banco de dados IBM Db2 por meio de uma rede privada.

Para diagnosticar problemas de conectividade na rede privada, expanda a opção “Conectar” Ícone que representa a categoria Connect no painel de navegação e clique em “Trocar de servidor ”. Para obter mais informações, consulte a seção "Solução de problemas de conectividade em redes privadas".