Sintomas
Considere o seguinte cenário:
-
Tem uma localização de recepção está configurada para utilizar a placa MQSC para receber mensagens de IBM WebSphere MQ.
-
A placa MQSC está configurada para utilizar um carácter de definir a definição de UCS-2 e UTF-16 ou UTF-8.
-
A placa MQSC tenta receber uma mensagem do IBM WebSphere MQ no Microsoft BizTalk Server 2010.
-
A mensagem é maior do que 1 megabyte (MB).
Neste cenário, poderá ser registado o seguinte erro no registo de aplicações:
ID do evento: 5740
Origem: Servidor de BizTalk Descrição: A placa "MQSC" provocou uma mensagem de erro. Detalhes "Detectada falha ao tentar obter mensagem da fila. fila = default, queueManager = queuemanager, reasonCode = 2010".
Causa
Este problema ocorre porque o conjunto de caracteres especificada para o adaptador MQSC afecta o comprimento total da mensagem que está a ser recebido. Por exemplo, quando um conjunto de caracteres de UTF-8 é utilizado, a mensagem actual requer um tamanho de memória intermédia cinco vezes maior do que o tamanho da mensagem. Por conseguinte, uma mensagem de 1 MB requer uma memória intermédia de 5 MB. Isto excede a definição de comprimento máximo de mensagem predefinido de 4 MB que é utilizado pela placa MQSC. Se a mensagem recebida requer espaço na memória intermédia maior do que a placa MQSC definição de comprimento máximo da mensagem, é registado o erro mencionada na secção "Sintomas".
Resolução
Informações de actualização cumulativa
A correcção que resolve este problema vem incluída no pacote de actualização cumulativa 8 para o Host Integration Server 2010. Para mais informações sobre como obter o cumulativa pacote de actualização, consulte cumulativo 8 para o Host Integration Server 2010 do pacote de actualização.
Solução alternativa
Para contornar este problema, aumente a definição de comprimento máximo da mensagem na configuração da placa de MQSC para corresponder ao tamanho da mensagem recebida com base no espaço de memória intermédia adicional que é requerido pelo conjunto de caracteres que está a ser utilizado.
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais informações
Depois de aplica esta actualização, quando o sistema está a obter mensagens da fila, a placa MQSC Especifica uma opção que permite IBM WebSphere MQ tratar a memória intermédia redimensionar automaticamente.
A definição de comprimento máximo da mensagem é, basicamente, uma definição sugerida que se baseia o comprimento da mensagem e a codificação (ou conjunto de caracteres) da mensagem. Por conseguinte, a definição de comprimento máximo da mensagem deve ser ajustada para corresponder aos requisitos de tamanho da mensagem específica para ajudar a tornar-se de que todas as mensagens são recebidas com êxito. As definições de comprimento máximo de mensagem podem ser especificadas nos parâmetros de adaptador MQSC e nas definições da IBM WebSphere MQ. Por conseguinte, deve certificar-se de que as definições de acordam. A lista seguinte descreve os requisitos de tamanho da memória intermédia com base no conjunto de caracteres que é utilizado pelas mensagens que são recebidas da fila de mensagem:-
o conjunto de caracteres UTF-16: Quando utiliza um conjunto de UTF-16a definição de caracteres, o espaço da memória intermédia requerido é igual ao dobro do tamanho da mensagem recebida.
-
Do conjunto de caracteres UCS-2 e UTF-8: Quando utiliza um conjunto de UCS-2 e UTF-8a definição de caracteres, o espaço da memória intermédia requerido é cinco vezes o tamanho da mensagem recebida.
Recomendamos que não só aplicar esta actualização, mas também de actualizar a versão do IBM WebSphere MQ 7.5 Fixpack 1 quando a placa MQSC é utilizada. IBM WebSphere MQ versão 7.5 Fixpack 1 inclui uma correcção para um problema relacionado com conversões de dados UTF-16 DBCS. Se não conseguir actualizar para a versão do IBM WebSphere MQ 7.5 Fixpack 1, recomendamos que utilize a versão de IBM WebSphere MQ 7.0.1.8 (ou uma versão posterior) com esta actualização. Os produtos de outros fabricantes que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente, ao desempenho ou à fiabilidade destes produtos.