Como direcionar destinos do barramento e filas do IBM MQ
Para compreender como acessar um destino a partir do barramento de integração de serviços do IBM MQ, e uma fila do IBM MQ a partir de um barramento de integração de serviços, é importante compreender as diferentes convenções que controlam como esses recursos são direcionados.
- Nome do Gerenciador de Filas
- nome da fila
- nome do barramento
- nome do destino (identificador)
No IBM MQ, o nome do gerenciador de filas e o nome da fila são limitados a 48 caracteres cada, e o uso de alguns caracteres é restrito. Para obter informações adicionais, consulte Restrições de nomenclatura do IBM MQ. Os equivalentes do barramento de integração de serviços não têm essas restrições, portanto (por exemplo) mensagens de um aplicativo do IBM MQ enviadas a um destino de barramento com um nome mais longo que 48 caracteres deve ter alguns meios de usar um nome abreviado (usado no IBM MQ) para resolver o nome mais longo (usado no barramento de integração de serviços). O barramento de integração de serviços utiliza um destino do alias para mapear entre o nome abreviado e o nome longo. De forma semelhante, um alias também pode ser utilizado para enviar uma mensagem a partir de um aplicativo WebSphere Application Server usando um nome longo (com mais de 48 caracteres) e roteá-lo para uma fila do IBM MQ. Para obter mais informações sobre destinos de alias, consulte Destinos Externos e Destinos de Alias.
Notação queue@queueManager da Integração de Serviços para Filas do IBM MQ
Quando a integração de serviço enviar uma mensagem através de um Link do IBM MQ, ela deverá conhecer o barramento externo que corresponde ao gerenciador de filas de gateway ou ao grupo de filas compartilhadas e, quando a fila de envio for definida em um gerenciador de filas ou grupo de filas compartilhadas diferente (não o gateway), a integração de serviço deverá conhecer a localização da fila de envio, para que seja possível salvar o nome correto no campo RemoteQMgrName do MQXQH. Uma maneira de alcançar isso é definir dois barramentos externos: um barramento indiretamente conectado (no qual a fila está definida) e um barramento diretamente conectado (o gateway).
A seguinte figura mostra um exemplo disso. Na figura, a fila de destino de uma mensagem é Q2 no gerenciador de filas QM2. A configuração da integração de serviços no barramento local define QM2 como um barramento externo conectado indiretamente e o QM1 como o barramento intermediário conectado diretamente. Ele define Q2 como um destino externo com o nome de barramento QM2 e o nome de destino (identificador) Q2. A configuração da integração de serviços para o barramento local não inclui nenhuma informação sobre a conexão entre QM1 e QM2.

Acessar uma fila externa do IBM MQ dessa forma funciona perfeitamente bem. Entretanto, quando há um grande número de gerenciadores de filas ou de grupos de filas compartilhadas que se conecta ao barramento de integração de serviços por meio de um gateway, você poderá achar inconveniente definir cada um deles como um barramento externo conectado indiretamente. Portanto, a integração de serviços suporta o seguinte formato especial de nome de destino para as filas do IBM MQ que contêm o nome da fila e o nome do gerenciador de filas unidos pelo sinal de arroba (@): queue@queueManager. Ao usar esse formato especial, não é necessário definir, em separado, um barramento externo conectado indiretamente para integração de serviços, pois o nome é parte do nome de destino de integração de serviços.
A seguinte figura mostra um exemplo disso. Na figura, a fila de destino de uma mensagem é Q2 no gerenciador de filas QM2. A configuração da integração de serviços no barramento local não define QM2 como um barramento externo. Ele define Q2 como um destino externo com o nome de barramento QM1 e o nome de destino (identificador) Q2@QM2. A configuração da integração de serviços para o barramento local não inclui nenhuma informação sobre a conexão entre QM1 e QM2.

Mapeamento Automático do Campo JMSReplyTo de uma Mensagem JMS
Existem dois campos na API JMS que são utilizados para o compartilhamento de informações sobre o destino para o qual a mensagem é enviada (JMSDestination) e o destino para o qual as respostas devem ser enviadas (JMSReplyTo). O campo JMSReplyTo de uma mensagem JMS passando de um barramento de integração de serviços para o IBM MQ (ou a partir do IBM MQ para um barramento de integração de serviços) é mapeado automaticamente, para que um aplicativo consumidor no IBM MQ possa responder ao aplicativo original WebSphere Application Server.