IBM Cloud Docs
Perguntas mais frequentes

Perguntas mais frequentes

Este documento contém informações sobre perguntas ou problemas comuns encontrados pelos usuários do serviço IBM MQ on Cloud. Ele visa responder perguntas ou fornecer instruções sobre como resolver problemas sem a necessidade de gerar um chamado de suporte.

Ao tentar diagnosticar um problema com o gerenciador de filas, o primeiro local que é necessário verificar são os logs do gerenciador de filas. É possível localizar informações sobre como fazer download dos logs do gerenciador de filas na página Fazendo download de logs e diagnósticos do gerenciador de filas

Conteúdo:

O aplicativo cliente recebe uma resposta "não autorizado" ao tentar se conectar a um gerenciador de filas mesmo com o fornecimento de um ID de usuário e de uma senha válidos

Ao tentar conectar um aplicativo cliente ao seu gerenciador de filas do IBM MQ on Cloud, você recebe um código de retorno indicando que o usuário não foi autenticado com sucesso, como um ou mais dos seguintes;

  • No MQ Explorer, Access not permitted. You are not authorised to perform this operation (AMQ4036)
  • Em um aplicativo JMS ou Java MQRC_NOT_AUTHORIZED (2035)
  • AMQ9791E: The client application did not supply a user ID and password.

Primeira Explicação

A configuração padrão de um gerenciador de filas do IBM MQ on Cloud especifica que qualquer aplicativo que se conecte ao gerenciador de filas deve fornecer credenciais de usuário válidas. Os usuários e os aplicativos podem ter credenciais criadas seguindo as instruções na página do documento Usuários e aplicativos.

Os aplicativos clientes do IBM MQ têm dois métodos diferentes de fornecer credenciais a um gerenciador de filas que é controlado por um comutador chamado compatibility mode. Deve-se assegurar que, quando o aplicativo estiver se conectando, ele tenha o modo de compatibilidade desativado, caso contrário, apenas os 8 primeiros caracteres da senha (chave de API longa) serão transmitidos para o gerenciador de filas e, portanto, a verificação de autenticação falhará.

Os aplicativos clientes que se conectarem usando bibliotecas do IBM MQ Client abaixo da versão 8.0.0.0 não serão capazes de fornecer credenciais de usuário longas para o gerenciador de filas usando esse método mais recente e, portanto, não conseguirão se conectar.

Primeira Solução

Ao se conectar usando o MQ Explorer, deve-se desmarcar a opção para User identification compatibility mode, localizada na página User Identification details do assistente de conexão.

Os aplicativos Java ou JMS podem desativar a sinalização do modo de compatibilidade conforme a seguir:

  1. Assegure-se de que as bibliotecas do IBM MQ Client que estão sendo usadas sejam da versão 8.0.0.0 ou acima
  2. Assegure-se de que o aplicativo cliente esteja fornecendo credenciais de usuário válidas na estrutura MQCSP. Para obter mais informações sobre a estrutura MQCSP, consulte o Knowledge Center aqui
  3. Desative o modo de compatibilidade, conforme descrito nesta página do Knowledge Center, por exemplo, configurando JmsConstants.USER_AUTHENTICATION_MQCSP = true ou por meio da configuração equivalente do ConnectionFactory

Outros produtos que se conectam ao IBM MQ geralmente fornecem um mecanismo para definir essa configuração usando suas próprias interfaces administrativas;

  • O IBM AppConnect Enterprise desativa o modo de compatibilidade por padrão e, portanto, não há problemas de conexão com os gerenciadores de filas no serviço MQ on Cloud conforme descrito nesta postagem do blog
  • O IBM DataPower fornece uma opção para configurar o ID do usuário MQCSP e o Alias de senha do MQCSP conforme descrito aqui
  • O IBM MessageHub não expõe o modo de compatibilidade como uma opção de configuração e, portanto, uma atualização deve ser feita pela IBM para permitir conexões do MessageHub com gerenciadores de filas em execução no serviço MQ on Cloud

Segunda Explicação

As Credenciais do administrador e as Credenciais do aplicativo têm níveis diferentes de autorização e, portanto, não são intercambiáveis. As Credenciais do administrador podem ser usadas para:

  • Conectar-se ao gerenciador de filas usando o MQ Web Console
  • Conectar-se ao gerenciador de filas usando o MQ Explorer
  • Conectar-se ao gerenciador de filas usando runmqsc
  • Conectar-se ao gerenciador de filas usando as APIs de REST administrativas
  • Conectar-se ao gerenciador de filas usando um cliente configurado para usar o canal CLOUD.ADMIN.SVRCONN

As Credenciais do aplicativo podem ser usadas para:

  • Conectar-se ao gerenciador de filas usando as APIs de REST do sistema de mensagens
  • Conectar-se ao gerenciador de filas usando um cliente configurado para usar o canal CLOUD.APP.SVRCONN

Segunda Solução

Ao executar tarefas administrativas do MQ, use Credenciais do administrador

Ao conectar um aplicativo cliente, use Credenciais do aplicativo

O aplicativo cliente ou o gerenciador de filas não pode se conectar a um canal recém-criado

Ao tentar conectar um aplicativo cliente ou gerenciador de filas ao seu gerenciador de filas do IBM MQ on Cloud por meio de um canal criado recentemente, você recebe um código de retorno de MQRC_NOT_AUTHORIZED (2035) e o cliente não pode se conectar. Além disso, é gerada uma mensagem de erro com o título AMQ9777E: Channel was blocked.

Explicação

A configuração padrão de um gerenciador de filas do IBM MQ on Cloud cria uma regra de autenticação de canal que bloqueia todas as conexões, exceto as conexões com os canais CLOUD.ADMIN.SVRCONN e CLOUD.APP.SVRCONN. Se você criar um novo canal, nenhum cliente será capaz de se conectar por meio desse canal, uma vez que ele será bloqueado pela regra de autenticação de canal CHLAUTH('*') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)

Solução

Para resolver esse problema, crie uma nova regra de autenticação de canal que permita acesso ao seu canal. Por exemplo, se você tiver um canal chamado QM.ENTRY, crie uma regra de autenticação de canal com os valores a seguir:

SET CHLAUTH('QM.ENTRY') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL)

Como alternativa, é possível usar o MQ Console para criar uma regra de autenticação de canal:

  1. Navegue até a guia 'Administração' do seu gerenciador de filas.

  2. Assegure-se que 'MQ Console' esteja selecionado e, em seguida, clique em Ativar o MQ Console

  3. Clique em Gerenciar no menu lateral para visualizar seus objetos do MQ

  4. Clique em 'Visualizar configuração' na parte superior direita. Imagem mostrando a guia Visualizar configuração

  5. Clique na guia 'Segurança' e, em 'Autenticação de canal', clique em Criar. Imagem mostrando a guia de segurança

  6. No menu suspenso 'Tipo de regra', selecione Allow. Depois de selecionar o tipo de regra, você poderá escolher um identificador, selecione Address. Imagem mostrando o tipo de regra e endereço para um registro de autenticação de canal

  7. Na página a seguir, inclua o nome do canal, por exemplo, QM.ENTRY. Na caixa de texto 'Endereço', inclua *. Conclua clicando no botão Criar. Imagem mostrando o tipo de regra e endereço para um registro de autenticação de canal

  8. Agora, você deverá ver um novo registro de autenticação de canal com o seu nome de canal.

MQRCCF_ACCESS_BLOCKED (3382) ao tentar administrar o gerenciador de filas

Ao tentar definir, excluir ou alterar objetos em seu gerenciador de filas do IBM MQ on Cloud, o seu cliente de administração recebe um código de retorno MQRCCF_ACCESS_BLOCKED (3382). Com os clientes executando versões do IBM MQ v9.0.3 ou abaixo, é possível que você receba um código de retorno de MQRC_UNEXPECTED_ERROR (2195)

Além disso, uma mensagem de erro é enviada com o título AMQ7355E: Object <Object name>, object type <Object type>, is locked to remote users.

Explicação

Certos recursos do IBM MQ foram desativados para os usuários do IBM MQ on Cloud. Esses recursos são desativados para evitar a desativação acidental do gerenciador de filas ou o uso indevido potencial do serviço. Você pode ver que alguns dos atributos bloqueados têm valores designados a eles automaticamente e não podem ser mudados.

Se você tentar definir, alterar ou excluir um objeto ou um atributo que tenha sido desativado, o gerenciador de filas bloqueará essa ação com o código de retorno MQRCCF_ACCESS_BLOCKED (3382). Esse código de retorno foi incluído na versão 9.0.3 do IBM MQ; clientes mais antigos que a versão 9.0.3 não reconhecerão esse código de retorno e, portanto, provavelmente retornarão MQRC_UNEXPECTED_ERROR (2195).

Os recursos a seguir foram desativados:

  • Os atributos de gerenciador de filas a seguir: CONNAUTH, CHADEXIT, CLWLEXIT, CLWLDATA, SSLCRYP, SSLKEYR
  • Objetos de informações sobre autenticação do tipo IDPWOS e IDPWLDAP
  • Os atributos de canal a seguir: MSGEXIT, MSGDATA, SCYEXIT, SCYDATA, SENDEXIT, SENDDATA, RCVEXIT, RCVDATA
  • Objetos Listener.
  • Objetos Service. Nota: é possível iniciar ou parar um objeto de serviço existente.
  • Objetos Process.
  • Os atributos de fila a seguir: PROCESS
  • Objetos COMMINFO.

MQRC_MAX_CONNS_LIMIT_REACHED (2025) ao tentar se conectar a um gerenciador de filas

Ao tentar conectar um aplicativo cliente ou gerenciador de filas ao seu gerenciador de filas do IBM MQ on Cloud, você recebe um código de retorno de MQRC_MAX_CONNS_LIMIT_REACHED (2025) e o cliente não pode se conectar.

Além disso, uma mensagem de erro é enviada com o título AMQ9694E: Program cannot connect because connection limit reached.

Explicação

O IBM MQ on Cloud aplica limites aos recursos de gerenciadores de filas com base no tamanho. Os valores de cada limite e o que é limitado são detalhados nas informações sobre cada tamanho do gerenciador de filas quando você cria um novo gerenciador de filas.

Um dos limites aplicados ao gerenciador de filas é o número de conexões simultâneas do cliente e se aplica tanto a aplicativos clientes quanto a gerenciadores de filas do cliente. Se você tentar exceder o número de conexões permitidas, o aplicativo cliente será bloqueado com o código de retorno MQRC_MAX_CONNS_LIMIT_REACHED (2025) e uma mensagem de erro AMQ9694E será impressa nos logs do gerenciador de filas.

Como o JMS usa duas conexões do cliente para passar mensagens, é necessário estar ciente de que se o limite de conexões do gerenciador de filas for 10, será possível conectar somente 5 clientes JMS ao seu gerenciador de filas antes de atingir o limite de conexões.

Solução

Para resolver esse problema:

  • Desconecte as conexões do cliente desnecessárias para permitir que clientes mais recentes se conectem
  • Faça upgrade do gerenciador de filas para um tamanho maior para permitir mais conexões do cliente

Para que você saiba quando está chegando perto do limite de conexão do cliente do gerenciador de filas, o gerenciador de filas emite uma mensagem de erro AMQ7358W nos logs do gerenciador de filas quando está com 80% de conexões de cliente permitidas.

As mensagens não podem ser colocadas em uma fila cujo nome não comece com 'DEV.'

Ao tentar enviar uma mensagem para uma nova fila cujo nome não comece com 'DEV', você recebe uma das mensagens de erro abaixo:

  • JMSWMQ2007: Failed to send a message to destination '[YOUR QUEUE NAME]'
  • MQRC_NOT_AUTHORIZED (2035).

Explicação

A configuração padrão de um gerenciador de filas do IBM MQ on Cloud é para que todas as filas iniciais sejam designadas a registros de autoridade, permitindo que usuários e aplicativos enviem e recebam mensagens. Todas as filas e tópicos começando com 'DEV.' são configurados para permitir que as mensagens sejam enviadas e recebidas.

Se tiver sido criada uma nova fila ou tópico cujo nome não inicia com 'DEV.', os registros de autorização predefinidos não serão aplicáveis. Portanto, os aplicativos não terão as permissões necessárias para enviar ou receber mensagens para essa fila ou esse tópico.

Solução

Para resolver o problema, use um dos métodos a seguir.

  • Usando runmqsc, execute os comandos a seguir:

    SET AUTHREC PROFILE('TEST.QUEUE') OBJTYPE(QUEUE) GROUP('demoapp') AUTHADD(PUT,GET,BROWSE,INQ)

    SET AUTHREC PROFILE('TEST.QUEUE') OBJTYPE(TOPIC) GROUP('demoapp') AUTHADD(SUB,PUB)

    Substitua 'TEST.QUEUE' pelo nome de sua fila e 'demoapp' pelo seu nome do usuário do aplicativo. É possível conceder acesso a um objeto para todos os aplicativos conectados especificando o grupo 'mqwriter', se desejado.

  • Por meio do console da web:

    • Selecione a nova fila, em seguida, 'Configuração' nos três pontos na parte superior da tela.
    • Selecione 'Segurança' e clique em 'Incluir +'.
    • Selecione 'Grupo' e insira o nome 'mqwriter' como o 'Nome do grupo'. Marque a caixa de seleção 'MQI' e assegure-se de que somente as caixas abaixo de MQI estejam marcadas.
    • Clique no botão 'Criar'.