BizTalk 2016 and MQSC not working due to queue manager encoding RRS feed

  • Question

  • I tried to implement MQSC adapter to remedy a problem I ran into using MQS adapter.


    BizTalk 2016 with feature pack1 including CU3

    HIS 2016 with CU2

    IBM MQ Client first try with MQSC was to send to queue manager using MQSC and Microsoft MQ client, transactions off.

    When sending I get this error mesage in the Event Log from "HIS Microsoft Client For MQ"

    Automaton 'QueueManager' Processing Failed. Description: State: Handshake, Event: ServerData - Exception: No data is available for encoding 819. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method..

    followed by another related entry:

    Application: BTSNTSvc64.exeFramework Version: v4.0.30319Description: The process was terminated due to an unhandled exception.Exception Info: System.NotSupportedException   at System.Text.Encoding.GetEncodingRare(Int32)   at System.Text.Encoding.GetEncoding(Int32)   at Microsoft.HostIntegration.Nls.HisForwardEncoding.Intialize(HostCodePages)   at Microsoft.HostIntegration.Nls.HisEncoding.CreateEncoding(HostCodePages)   at Microsoft.HostIntegration.Nls.HisEncoding.GetEncoding(Int32)   at Microsoft.HostIntegration.MqClient.Automatons.AutomatonQueueManager.ExtractInitialData(Microsoft.HostIntegration.Automaton.DynamicDataBuffer)   at Microsoft.HostIntegration.MqClient.Automatons.AutomatonQueueManagerStateHandshake.Process(Int32 ByRef)Exception Info: System.InvalidProgramException   at Microsoft.HostIntegration.MqClient.Automatons.AutomatonQueueManagerStateHandshake.Process(Int32 ByRef)   at Microsoft.HostIntegration.Automaton.AutomatonDriverAsCode.ProcessEvent(Int32, Int32)Exception Info: System.InvalidProgramException   at Microsoft.HostIntegration.Automaton.AutomatonDriverAsCode.ProcessEvent(Int32, Int32)   at Microsoft.HostIntegration.MqClient.Automatons.AutomatonQueueManager.ProcessMessageFromTcp(Microsoft.HostIntegration.Automaton.AsynchronousConnectionMessage)   at Microsoft.HostIntegration.Automaton.ConnectionLocation.ProcessAnyReceivedMessages()   at Microsoft.HostIntegration.Automaton.AutomatonDriver.ProcessAnyReceivedMessages()   at Microsoft.HostIntegration.Automaton.AutomatonDriver.ReceiveMessagesThreadProc(System.Object)   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)   at System.Threading.ThreadHelper.ThreadStart(System.Object)

    I know the queue manager has CCSID = 819. This I cannot change since this has been set up by the IBM consultant a long time ago. I had to create some pipelines to set correct encoding on there previous MQS based solution to work with this issue, but MQSC does not seem to care about ancoding or the value of the payload beeing transmittet. Seems like it fails during some sort of handshake with MQ queue manager?

    Next attempt was setting "Use Microsoft MQ client "to false. 

    This does not work either:

    Faulting application name: BTSNTSvc64.exe, version: 3.12.774.0, time stamp: 0x57ef4206Faulting module name: ntdll.dll, version: 10.0.14393.1715, time stamp: 0x59b0d03eException code: 0xc0000374Fault offset: 0x00000000000f8363Faulting process id: 0x1978Faulting application start time: 0x01d37410030a017cFaulting application path: C:\Program Files (x86)\Microsoft BizTalk Server 2016\BTSNTSvc64.exeFaulting module path: C:\Windows\SYSTEM32\ntdll.dllReport Id: 876f157c-6da9-48a5-9562-91fab9614746Faulting package full name: Faulting package-relative application ID: 

    The send host ends up in stopped state so this crashes the entire host.

    Any thougt on how to solve this?  As an MQ novice is it easy to create a new queue manager with "default" encoding and script transfer between in and out queues using MQ scripting. As I understand it, MQ has the ability to change encoding between queues? 

    Prefer greatly to solve this in BizTalk as this is my "home ground" wheras everything MQ definetly not. 

    • Edited by Pål Carlsen Wednesday, December 13, 2017 1:45 PM
    Wednesday, December 13, 2017 1:42 PM

All replies

  • Hello,

    Could you try Windows Code Page 1252.

    ISO 8859-1 ASCII :

    Best regards,

    Steve Melan - BCEE My Blog :

    Saturday, December 30, 2017 8:45 PM
  • Did you got any solution for this? I'm also facing the same error..
    Monday, May 27, 2019 8:11 AM
  • Hello,

    Could you tell me more about your environment ? Which Cumulative Update? Which Version of HIS and IBM MQ Client?

    Best regards,

    Steve Melan - BCEE My Blog :

    Monday, May 27, 2019 11:12 AM
  • Our solution to this was as following. Install IBM MQ client 8 (latest version I believe we used 8008?). Make sure you un-check the 'Use Microsoft client' to use the IBM client.

    This solution works super stable, but on Receive locations we had to remove Transaction support as this caused us to receive quite a lot of duplicates (kind of ironic). When we use non-transactional receive with MQSC it works fine without any errors. We have enabled Transaction on send ports and this works without any hitch. 

    We have not tested the latest CU3 for HIS 2016, but from what I could gather by reading the release notes it does not seem like this CU contains any resolution to the issue we had with Transactions on Receive or enable Transaction support using the Microsoft MQ client. Based on this, we have not invested time in testing CU3, especially since we currently have a very stable production environment processing a lot of messages each day.

    Hope this helps, and do not hesitate to ask if there is anything else I can help with.

    Wednesday, May 29, 2019 7:45 AM