Se você optar por criar o gerenciador de filas separadamente, deverá configurar uma DLQ (Dead Letter Queue). A DLQ é referida pelo WebSphere Message Broker quando ocorrem erros no processamento de mensagens nos fluxos de mensagens.
Se uma mensagem em um fluxo de mensagens definido pelo usuário ou no modelo de publicação/assinatura não puder ser processada, ela será roteada para essa DLQ como um último recurso. Se você preferir que a mensagem seja recuperada para a fila de entrada, descontinuando efetivamente o fluxo de mensagens até que o problema seja resolvido, será necessário desativar a DLQ.
O comando mqsideletebroker não exclui essa fila (a menos que o gerenciador de filas seja excluído).
Se estiver utilizando um gerenciador de filas do WebSphere MQ que foi criado independentemente do comando mqsicreatebroker, será possível definir clusters, se você preferir.Isto simplifica a configuração na maioria dos casos.
Se o gerenciador de filas for criado por este comando, ele não será iniciado como um serviço do Windows; portanto, ele será interrompido caso efetue log off. Para evitar que isso ocorra, é necessário permanecer conectado ou alterar o status de inicialização do serviço do gerenciador de filas. (Se você travar sua estação de trabalho, o gerenciador de filas do WebSphere MQ não será parado).
No z/OS, se você criar um nome de intermediário em letras maiúsculas, também deverá utilizar esse nome em maiúsculas para seu intermediário no workbench.
Para saber quais restrições do conjunto de caracteres podem ser utilizadas, consulte Caracteres Permitidos em Comandos.Pode ser especificado em qualquer sintaxe válida do username. Em plataformas Windows, são:
Em sistemas Linux e UNIX, apenas o último formato, username, é válido.
Se você utilizar o formato não qualificado para este ID do usuário (username) em plataformas Windows, o sistema operacional pesquisa o ID do usuário em todo o seu domínio, começando com o sistema local. Essa pesquisa pode levar algum tempo para concluir.
O ServiceUserID especificado deve ser um membro do grupo local mqbrkrs. Em plataformas Windows, ele pode ser membro direto ou indireto do grupo. O ServiceUserID também deve ter autorização para acessar o diretório home (em que o WebSphere Message Broker foi instalado), e o diretório de trabalho (se especificado pelo sinalizador -w).
Em plataformas Windows, se você especificar que o intermediário deve ser executado como um aplicativo confiável do WebSphere MQ (sinalizador -t), também deverá incluir esse ID de usuário no grupo mqm. Em sistemas Linux e UNIX, especifique o ServiceUserID como mqm se você configurar o sinalizador -t.
Os requisitos de segurança para ServiceUserID são detalhados em Requisitos de Segurança para Plataformas Windows.
Se você utilizar esse ID de usuário para acesso ao banco de dados (ou seja, você não especificar um ID de usuário diferente com o sinalizador -u) e estiver utilizando o SQL Server para seu banco de dados, você deverá criar esse ID de usuário como um ID de login do SQL Server e fornecer o acesso correto antes de criar o intermediário (consulte Considerando a Segurança para um Intermediário para obter detalhes adicionais). Se o banco de dados do intermediário existir no DB2 e esse ID de usuário não for conhecido pelo DB2, o DB2 o criará automaticamente.
Para compatibilidade com os sistemas existentes, você ainda pode especificar <password>. Entretanto, se não especificar uma senha com este parâmetro ao executar o comando, será solicitado que você digite uma senha durante sua chamada e digite a senha uma segunda vez para verificar se ela foi digitada corretamente.
Em sistemas Linux e UNIX, -a é obrigatório para compatibilidade de plataformas Windows, mas não é utilizado em relação ao ServiceUserID; ele é utilizado como um padrão apenas se -p não for especificado. (Veja as notas sobre o parâmetro -p para obter detalhes adicionais).
Cada intermediário deve ter seu próprio gerenciador de filas exclusivo.
Um intermediário não pode compartilhar um gerenciador de filas com outro intermediário.
Se o gerenciador de filas ainda não existir, ele será criado por este comando. Ele não será criado como o gerenciador de filas padrão; se deseja que este gerenciador de filas seja o gerenciador de filas padrão neste sistema, você deve criar o gerenciador de filas antes de emitir este comando ou alterar as definições deste gerenciador de filas a fim de torná-lo padrão. Utilize o WebSphere MQ Explorer ou o snap-in do WebSphere MQ Services, dependendo da versão do WebSphere MQ que estiver utilizando.
O atributo do gerenciador de filas MAXMSGLN (comprimento máximo de mensagens que podem ser colocadas em filas) é atualizado para 100 MB. Isto é feito independentemente de o gerenciador de filas ter sido criado por este comando.
Para saber quais restrições do conjunto de caracteres podem ser utilizadas, consulte Caracteres Permitidos em Comandos.
Esse banco de dados já deve existir. É preciso criar uma conexão ODBC de DSN do Sistema para esse DSN, se isso ainda não tiver sido feito.
Se você possui um banco de dados DB2 no Linux, digite o nome do alias de banco de dados BD apropriado; um ODBC DSN não é requerido.
Este ID do usuário deve ter autoridade para criar tabelas neste banco de dados, e para leitura e gravação nestas tabelas.
Em plataformasWindows, caso seu banco de dados do intermediário existir no DB2, e este ID de usuário não for conhecido pelo DB2, ele será criado para você dentro do DB2. Em sistemas Linux e UNIX, o usuário do serviço deve ter recebido anteriormente o privilégio correto. Se seu banco de dados for SQL Server, será necessário criar esse ID do usuário como um ID de login do SQL Server e fornecer-lhe o acesso correto antes de criar o intermediário (consulte Requisitos de Segurança para Plataformas Windows para obter detalhes adicionais).
Se você tiver um banco de dados do aplicativo no DB2 que foi criado por esse ID de usuário ou para o qual esse ID tem autoridade apropriada de leitura, gravação ou criação, os fluxos de mensagens em execução nesse intermediário poderão acessar e manipular os dados do aplicativo contidos nele sem precisar especificar nomes explícitos de esquemas.
Este ID do usuário deve ter autoridade para criar tabelas neste banco de dados, e para leitura e gravação nestas tabelas.
Se você tiver um banco de dados do aplicativo no DB2 que foi criado por esse ID de usuário ou para o qual esse ID tem autoridade apropriada de leitura, gravação ou criação, os fluxos de mensagens em execução nesse intermediário poderão acessar e manipular os dados do aplicativo contidos nele sem precisar especificar nomes explícitos de esquemas.
Para compatibilidade com os sistemas existentes, você ainda pode especificar <password>. Entretanto, se não especificar uma senha com este parâmetro ao executar o comando, será solicitado que você digite uma senha durante sua chamada e digite a senha uma segunda vez para verificar se ela foi digitada corretamente.
Para DB2 em sistemas Linux e UNIX, -u e -p podem ser especificados como cadeias vazias (duas aspas duplas ""). Nesse caso, o DB2 concede a WebSphere Message Broker os privilégios do ServiceUserID que resulta em uma conexão com o banco de dados como "já verificada". Se você especificar-a como uma cadeia vazia, além de -u e -p, nenhuma senha será armazenada pelo WebSphere Message Broker, criando a conexão mais segura.
Este diretório também é utilizado para registros de rastreio criados quando o rastreio estiver ativo. Eles são gravados em um subdiretório log, que deve ser criado antes de iniciar o intermediário.
Os logs de erros gravados pelo intermediário quando um processo é finalizado anormalmente são armazenados neste diretório. Em plataformas Windows, utilize essa opção para especificar um diretório em uma unidade diferente daquela na qual o produto está instalado.
O registro de erros é desvinculado e continua se expandindo. Verifique esse diretório periodicamente e limpe as informações de erro antigas.
Não é possível alterar esta opção utilizando o comandomqsichangebroker. Se você desejar especificar ou alterar o workpath exclua e recrie o intermediário.
Se você especificar essa opção em plataformas Windows, inclua o ServiceUserID (identificado pelo sinalizador -i) no grupo mqm. Se você especificar essa opção no HP-UX e no Solaris, deverá especificar ServiceUserID como mqm. Para obter detalhes adicionais sobre como utilizar aplicativos confiáveis do WebSphere MQ, consulte WebSphere MQ Intercommunication.
Você deve criar seu próprio diretório para armazenar seus arquivos .lil ou .jar. Não salve-os no diretório de instalação do WebSphere Message Broker.
Se você especificar mais de um diretório adicional, eles deverão ser separados pelo separador de caminho padrão específico da plataforma (ponto-e-vírgula (;) em plataformas Windows, dois-pontos (:) em sistemas Linux e UNIX).
Você não pode incluir variáveis de ambiente neste caminho: se fizer isso, elas serão ignoradas.
Quando um fluxo de mensagens estiver processando uma mensagem do aplicativo, ele não poderá responder a uma alteração de configuração. Se qualquer um dos fluxos de mensagens no grupo de execução que tiver recebido solicitação para alterar sua configuração não concluir o processamento de uma mensagem do aplicativo e aplicar a alteração da configuração neste tempo limite, o grupo de execução retornará uma resposta negativa à mensagem de configuração implementada.
O valor definido para este tempo limite depende do carregamento do sistema (incluindo utilização da CPU) e do carregamento de cada grupo de execução. Você pode fazer uma estimativa inicial implementando toda a configuração do intermediário. O tempo gasto para que isso seja concluído com êxito fornece uma indicação do valor mínimo que deve ser definido.
O valor é especificado em segundos e pode variar de 10 a 3600. O valor padrão é 300.
A soma de ConfigurationTimeout e de ConfigurationDelayTimeout (descritos abaixo) representa o período máximo de tempo que um intermediário tem permissão para processar uma mensagem de configuração implementada antes de gerar uma resposta negativa.
Isso representa o tempo gasto para que uma mensagem de configuração mínima implementada seja processada pelo intermediário e seus grupos de execução e depende de retardos da rede do gerenciador de filas, da carga no gerenciador de filas do intermediário e da carga do sistema.
mqsireporttrace brokerName -e "Execution Group Name" -u
F MQP1BRK,reporttrace u=yes,e='exgrp1'
O tempo de resposta de cada grupo de execução se difere, de acordo com o carregamento do sistema e do carregamento de seus próprios processos. O valor definido deve refletir o tempo de resposta mais longo gasto por qualquer grupo de execução para responder. Se o valor definido for muito baixo, o intermediário retornará uma resposta negativa e poderá emitir mensagens de erro no registro de erros local.
O valor é especificado em segundos e pode variar de 10 a 3600. O valor padrão é 60.
Se o intermediário estiver em um sistema de produção, aumente os valores para ConfigurationTimeout e ConfigurationDelayTimeout para permitir que mensagens do aplicativo que estão sendo processadas por fluxos de mensagens sejam concluídas antes da aplicação da alteração de configuração.
Se o intermediário estiver em um sistema de desenvolvimento ou de teste, talvez você queira reduzir tempos limites (em específico, o ConfigurationTimeout) para aprimorar os tempos de resposta recebidos e para forçar uma resposta de um intermediário que não esteja mostrando o comportamento esperado. No entanto, a redução dos valores de tempo limite reduz a probabilidade de implementação bem-sucedida de uma alteração de configuração.
Esse listener é iniciado pelo intermediário quando um fluxo de mensagens que inclui o suporte a serviços da Web é iniciado e possui um valor padrão de 7080.
Verifique se a porta especificada não foi especificada para nenhuma outra finalidade.
Um intervalo de zero minuto indica que a plataforma possui um método externo de notificação e não está utilizando um cronômetro interno no WebSphere Message Broker .
Em sistemas Windows, o ID do usuário utilizado para invocar esse comando deve ter autoridade de Administrator no sistema local.
Em sistemas UNIX, o ID do usuário utilizado para invocar esse comando deve ser um membro do grupo mqbrkrs.
Em sistemas z/OS, o ID do usuário utilizado para invocar esse comando deve ser um membro de um grupo que tenha acesso READ e WRITE ao diretório de componentes.
Utilizando LDAP: assegure-se de que o registro esteja protegido apropriadamente para evitar acesso não autorizado. A configuração das opções LdapPrincipal e LdapCredentials em mqsicreatebroker não é requerida para operação correta do intermediário. A senha não é armazenada em texto sem formatação no sistema de arquivo.
A autoridade de acesso é concedida para o grupo WebSphere Message Broker grupo mqbrkrs a todas estas filas. Se a DLQ estiver ativada, ela também terá a mesma autoridade.
Esse comando retorna as seguintes respostas:
(51002)[IBM][CLI Driver][DB2/NT]SQL0805N Package "NULLID.SQLLF000" was not found. SQLSTATE=51002.
Este erro ocorre quando a ligação com o banco de dados não é bem-sucedida.
Em plataformas Windows, a ligação não é necessária para bancos de dados do intermediário, mas é exigida para bancos de dados do usuário. Se tiver criado o banco de dados utilizando o Centro de Controle do DB2, a ligação será concluída para você. Se você utilizar a interface de comando, ela não será concluída. Por exemplo, para o banco de dados MYDB, você cria ou cria novamente uma ligação digitando os seguintes comandos no prompt de comandos:
db2 connect to MYDB user db2admin using db2admin db2 bind X:\sqllib\bnd\@db2cli.lst grant public db2 connect reset
em que X: é a unidade na qual o DB2 está instalado.
Em plataformas UNIX a ligação é necessária para todos os bancos de dados. Para o banco de dadosWBRKBKDB, por exemplo, você pode efetivar isto digitando os seguintes comandos no prompt de comandos (em que <nome_do_usuário> é o ID do usuário com o qual a instância do banco de dados foi criada):
db2 connect to WBRKBKDB user db2admin using db2admin
db2 bind ~<nome_do_usuário>/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
db2 connect reset
Se não estiver utilizado o ID de usuário e senha padrão do DB2 (db2admin), substitua esses valores no comando db2 connect com os valores corretos.
Se você executar o comando mqsicreatebroker pela segunda vez devido a uma falha na primeira vez, você receberá uma série de mensagens. Elas indicarão todos os itens que não puderem ser criados. Não deve haver efeitos prejudiciais como resultado disso. Por exemplo, desde que o motivo deste primeiro defeito tenha sido resolvido, tentar criar um intermediário que falhou na primeira vez deve resultar em um intermediário criado corretamente.
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -s WBRK_UNS_QM -n WBRKBKDB
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -t
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -x /opt/3rdparty/wmbexits
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0 -2