Como escrever para MQMessage: várias chamadas gravar ou StringBuilder?
Pergunta
Eu sou novo para WebSphere MQ. Eu estou usando classes .NET da IBM (IBM.WMQ) para colocar uma mensagem de solicitação e, em seguida, obter uma mensagem de resposta. O objecto MQMessage tem um número de métodos métodos writeXXX para vários tipos de dados. Eu preciso escrever uma variedade de diferentes elementos de dados para a mensagem de pedido. A minha pergunta é, devo chamar o método Write apropriado para cada elemento de dados individual, ou devo construir a coisa toda com um StringBuilder e, em seguida, chamar o método MQMessage WriteString uma vez?
Solução
As APIs de gravação são tentar uma ajuda que você escrever código mais claro, mas quem converteu a API WMQ a Net é um idiota.
Eles escreveram 20 diferentes APIs em vez de uma função "write" com sobrecargas. A chamada de escrita tem algumas sobrecargas utilizáveis.
Eles criaram um enum que tem 100 de, senão milhares de opções chamadas MQC (MQ Constantes). Divirta-se, mas cuidado com transações em WMQ, como há um pequeno custo * tosse envolvidos em usar essa funcionalidade.
Agora que eu sou feito com meu discurso, cuidado com as APIs que a maioria dos apis têm uma limitação de um int assinado em termos de tamanho, apenas o write (byte [] array) eo WriteString (string s) função de dar uma grande mensagem. Também a api .net escreve todas as strings UTF-16 de acordo com a implementação de .net que podem afetá-lo.