Migrando um Fluxo de Mensagens

Você pode migrar os fluxos de mensagens criados no produto Versão 2.1 (WebSphere MQ Event Broker, WebSphere MQ Integrator Broker ou WebSphere MQ Integrator) e utilizá-los no WebSphere Message Broker Versão 6.0.

(Se você estiver migrando do WebSphere MQ Event Broker Versão 2.1, todas as informações nesse tópico referentes aos plug-ins definidos pelo usuário e ESQL não serão aplicáveis: esses recursos não estão disponíveis em WebSphere MQ Event Broker Versão 2.1.)

Se tiver migrado do WebSphere MQ Integrator Broker Versão 2.1, você pode ter gravado fluxos de mensagens que manipulam mensagens XML que utilizam espaços de nomes XML. No Versão 2.1, tais mensagens XML são analisadas de maneira diferente em relação à utilizada pelo WebSphere Message Broker. Apesar de tais fluxos de mensagens continuarem a funcionar corretamente quando hospedados pelo WebSphere Message Broker, recomenda-se fazer upgrade dos mesmos para tornar-se ciente do espaço de nomes, seguindo as etapas de Fazendo um Fluxo de Mensagens Reconhecer Espaços de Nomes.

Talvez você queira alterar os fluxos de mensagens migrados para tirar vantagem dos novos nós e recursos que estão disponíveis. Por exemplo, você pode querer substituir um nó definido pelo usuário que recebe pedidos de serviços da Web com o nó HTTPInput interno.

Para obter informações adicionais sobre as alterações deste release, consulte O Que Há de Novo no Versão 6.0?.

Você pode migrar mais de um fluxo de mensagens de uma vez, se desejar que eles sejam definidos no mesmo projeto do fluxo de mensagens. Você deve migrar os subfluxos e nós definidos pelo usuário com os fluxos de mensagens nos quais eles foram incluídos para assegurar referências consistentes.

Se você tiver definido mais de um fluxo de mensagens com o mesmo nome, ou o fluxo de mensagens tiver sido exportado para mais de um arquivo de exportação, a tarefa de migração sobrescreverá sem aviso qualquer fluxo de mensagens existente pelo próximo fluxo que ela localizar com o mesmo nome. Portanto, você deve ter cuidado para evitar conflitos e para assegurar que a versão mais recente de um fluxo de mensagens múltiplo definido seja o último a ser migrado.

Se você tiver várias versões do mesmo fluxo de mensagens e utilizar esse como um subfluxo em outros fluxos no mesmo diretório de migração, os resultados da importação serão imprevisíveis.

Para migrar um fluxo de mensagens:

  1. Antes de instalar a Versão 2.1, exporte o fluxo ou os fluxos de mensagens do Centro de Controle, utilizando as ferramentas da Versão 2.1 (consulte a biblioteca da Versão 2.1 para obter informações detalhadas).

    O processo de migração é mais eficiente quando todos os subfluxos referenciados estiverem incluídos no mesmo arquivo de exportação; portanto, exporte todos os fluxos de mensagens que você deseja migrar para um único projeto do fluxo de mensagens em um único arquivo de exportação.

  2. Transfira o arquivo ou arquivos de exportação para o novo sistema no qual você está executando o workbench. Verifique se o diretório no qual você armazena estes arquivos não contém outros arquivos. Armazene os arquivos que deseja importar para um único projeto do fluxo de mensagens em um diretório separado e migre cada diretório separadamente. Certifique-se de não armazenar arquivos em subdiretórios do diretório do projeto, porque esses arquivos são ignorados pelo comando migrar.
  3. Se você tiver uma sessão ativa do workbench, deverá fechá-la. Não é possível executar o comando migrar se o workbench estiver em execução.
  4. Em um prompt de comandos, chame o comando mqsimigratemsgflows, especificando o novo nome de projeto e o diretório no qual você armazenou os arquivos de exportação. Quando o comando estiver concluído:
    • Os fluxos de mensagens contidos nos arquivos de exportação no diretório especificado serão importados para o projeto do fluxo de mensagens especificado. Se o projeto já existir, os fluxos de mensagens adicionais serão incluídos com o conteúdo atual, se houver algum. Se o projeto não existir antes de você chamar o comando, ele será criado. É recomendável permitir que o comando crie o projeto do fluxo de mensagens.
    • Os fluxos de mensagens e subfluxos foram criados e suas definições armazenadas em arquivos denominados <nome_do_fluxo>.msgflow. Os nós definidos pelo usuário foram criados e suas definições armazenadas em arquivos denominados <nome_do_nó>.msgnode.

      Se desejar renomear qualquer um desses fluxos de mensagens ou nós após a importação para ficar de acordo com as convenções de nomenclatura locais, será necessário utilizar os recursos fornecidos pelo workbench para preservar a consistência e integridade de todas as referências. Não renomeie nenhum dos arquivos no sistema de arquivos.

    • Se qualquer um dos nós nos fluxos de mensagens continha ESQL, ele será extraído do próprio nó e armazenado no arquivo ESQL <nome_do_fluxo_de_mensagem>.esql. O ESQL para cada nó foi agrupado entre as instruções apropriadas CREATE e END MODULE (para Compute, Database, ou Filter). O arquivo ESQL é criado pelo comando se ainda não existir.

      Verifique o nível de compatibilidade padrão do ESQL na página de preferências do editor de ESQL. O valor padrão para esta opção é 6.0, que resulta no código ESQL de tempo de execução gerado no nível 6.0 quando você inclui um fluxo de mensagens em um arquivo bar. Este código é incompatível com os intermediários Versão 2.1. Se desejar que o arquivo bar inclua o ESQL de tempo de execução versão 2.0, reconfigure a preferência do editor. Se isso for feito, não será possível incluir aprimoramentos da Versão 6.0 no código ESQL, mas será possível implementar os fluxos nos intermediários Versão 2.1 e Versão 6.0.

      Para obter informações adicionais, consulte Editor ESQL.

  5. Verifique o arquivo de relatório mqsimigratemsgflows.report.txt gravado no diretório a partir do qual o comando foi chamado. O comando fornece as seguintes informações:
    • O nome de cada fluxo de mensagens, subfluxo e nó definido pelo usuário migrado. Se algum destes recursos tiver um nome incompatível com a Versão 6.0, o comando atualizará o nome e todas as referências a esse nome para assegurar consistência. (Se você migrar um recurso com um nome inválido mais de uma vez, a correção feita no nome será sempre a mesma).
    • O êxito ou falha de cada recurso migrado.
    • Uma indicação de um subfluxo que não pode ser localizado (sua definição não está contida em nenhum dos arquivos de exportação, mas está incluída em um ou mais dos fluxos de mensagens migrados). Se isso ocorrer, localize o subfluxo ausente e importe-o para o projeto apropriado para resolver esse erro. Se, por qualquer motivo, você não puder recuperar o subfluxo ausente, recrie-o com o nome original. Todos os fluxos afetados podem então ser vinculados corretamente ao novo subfluxo.

      Não é necessário repetir todos os processos de exportação e importação.

    • Uma indicação de que um recurso migrado como um fluxo de mensagens e armazenado em um arquivo .msgflow pode ser um nó definido pelo usuário. Se esse aviso ocorrer, será necessário verificar se o recurso especificado é um nó definido pelo usuário ou um fluxo de mensagens. Se for um fluxo de mensagens, isso indica que ele foi migrado corretamente. Se for um nó definido pelo usuário, você deve concluir as ações descritas na etapa 11.
  6. Inicie o workbench e alterne para a Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
  7. Abra o projeto do fluxo de mensagens criado ou atualizado pelo comando migrar (clique com o botão direito do mouse no projeto e selecione Abrir Projeto). Se o projeto já estiver aberto, clique com o botão direito do mouse e selecione Atualizar, em seguida, Reconstruir Projeto para assegurar que a visualização Navegador refletirá o novo conteúdo. A reconstrução também executa uma validação do conteúdo do projeto do fluxo de mensagens.

    Como o ESQL e os mapeamentos são manipulados de maneira diferente na Versão 6.0, o processo de migração substituirá alguns dos nós Versão 2.1 por diferentes nós Versão 6.0. Os nós substituídos são mostrados na tabela a seguir. O ESQL associado a cada nó é criado como um módulo com um nome padrão e a propriedade do nó definida como o nome desse módulo.

    Versão 2.1 Versão 6.0
    Compute Compute
    Filter Filter
    Database Database
    DataDelete Database
    DataInsert Database
    DataUpdate Database
    Extract Compute
    Warehouse Database
  8. Se um fluxo de mensagens incluir um ou mais nós Filter, verifique o módulo ESQL para cada nó no arquivo ESQL para assegurar que a instrução RETURN retorne corretamente uma expressão válida que seja resolvida para um valor Booleano.
  9. Se um fluxo de mensagens incluir um nó com ESQL, os campos de referência ESQL em uma mensagem derivada de um cabeçalho C importado e você recriou o modelo de mensagens importando o cabeçalho C para workbench, verifique as instruções ESQL que se referem a essa mensagem. A importação para o Versão 6.0 workbench pode criar um modelo com convenções de nomenclatura diferentes das criadas pelo importador Versão 2.1 e poderá ser necessário atualizar uma ou mais referências de campo.
  10. Se você tiver promovido a propriedade ESQL de qualquer um dos nós Versão 2.1 que incluía a customização ESQL para reutilizar o ESQL em vários nós, isto não será mantido nos fluxos de mensagens migrados Versão 6.0, porque a promoção de propriedades relacionadas a ESQL não é mais suportada. A visualização Tarefa mostra um erro para cada propriedade ESQL promovida. Para obter o mesmo efeito, é necessário criar uma função ESQL e chamar essa função a partir de cada módulo ESQL do nó.
  11. Se você tiver migrado um nó definido pelo usuário, apenas o arquivo de definição de interface XML será migrado para um arquivo do nó .msgnode (isso define apenas os terminais e propriedades do nó). É necessário concluir sua migração e sua definição manualmente nesta versão do produto. As etapas a seguir fornecem uma descrição do processo requerido: para obter detalhes completos, consulte Criando a Representação da Interface com o Usuário de um Nó Definido pelo Usuário no workbench.
    1. Crie um novo projeto do nó definido pelo usuário e mova o arquivo .msgnode do projeto do fluxo de mensagens para o novo projeto do nó definido pelo usuário. Quando fizer isso, os arquivos de propriedades associados serão criados.
    2. Opcional: Conclua o desenvolvimento do nó definido pelo usuário no ambiente do Eclipse para criar o plug-in Eclipse do nó definido pelo usuário (a estrutura de diretórios que contém os arquivos que compõem esse nó). Essa tarefa inclui a criação de recursos do nó para ajuda, ícones, editores de propriedades e compiladores, se necessário.
    3. Verifique a existência de erros na lista de tarefas. Eles podem ser gerados, por exemplo, se o nó ou seus nomes de terminais incluírem o caractere espaço (não suportado na Versão 6.0) ou se um fluxo incorporar outro fluxo migrado e a referência não estiver correta. Resolva esses erros corrigindo nomes ou utilizando a opção de menu Localizar subfluxo.
    4. Instale o código de tempo de execução para o nó (o arquivo .lil) nos sistemas dos intermediários apropriados. Não é necessário recompilar o código para seu nó definido pelo usuário ao migrá-lo.
    5. Pare e inicie novamente o intermediário para reconhecer os arquivos novos ou alterados.
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Funções ESQL
Tarefas relacionadas
Fazendo um Fluxo de Mensagens Reconhecer Espaços de Nomes
Abrindo um Fluxo de Mensagens Existente
Definindo o Conteúdo do Fluxo de Mensagens
Desenvolvendo ESQL
Referências relacionadas
Perspectiva do Desenvolvimento de Aplicativos do Intermediário
Editor ESQL
Nós Internos
Comando mqsimigratemsgflows
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ac02355_