BizTalk 2016 does not support more than one running receive location (WCF-Custom with the new SAP .Net Connector "NCO") RRS feed

  • Question

  • We are migrating from BizTalk 2009 to 2016 and we want to use the new SAP .Net Connector instead of the old and deprecated SAPRFC dlls. The problem is, they are broken. We are at the point where we have one receive location enabled and working and we can disable it and then enable a second receive location (same SAP, but different ListenerDestination) and that works as well but we are unable to enable both receive locations at the same time. Enabling the second receive location yields this error in the event viewer (and the receive locations gets disabled again):

    The Messaging Engine failed to add a receive location "name.of.2nd.receive.location" with URL "sap://CLIENT=222;LANG=DE;@d/abc?ListenerDest=abcdef&RfcSdkTrace=False&AbapDebug=False" to the adapter "WCF-Custom". Reason: "System.ArgumentException: An item with the same key has already been added.
       at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
       at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
       at Microsoft.Adapters.SAP.NCo.RfcServerConnection.Open(RfcClientConnection conn)
       at Microsoft.Adapters.SAP.SAPInboundContract.InitializeRfcServerConnectionNCo(String connectionArguments)
       at Microsoft.Adapters.SAP.SAPInboundContract.StartListener(String[] listenerActions, TimeSpan timeout)
       at Microsoft.ServiceModel.Channels.Common.Channels.AdapterChannelListener`1.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at Microsoft.Adapters.Internal.LayeredChannelBindingElement.LayeredChannelListener`1.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable()
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor(BizTalkEndpointContext endpointContext, IBTTransportProxy transportProxy, ControlledTermination control)
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint(String url, IPropertyBag adapterConfig, IPropertyBag bizTalkConfig)".

    I was deep in the decompiler and I am 90+% sure, the error is in the NCO case block in the WCF adapter implementation in BizTalk. It feels like garbage if they not even tested 2 receive locations simultaneously... I am not sure,

    The problem might existed in BizTalk 2013 already: other entry on this board here

    And there is also a fix for BizTalk 2013: FIX on

    It looks like this patch did not make it into BizTalk 2016?

    Wednesday, April 19, 2017 9:46 AM

All replies

  • Hi Fabian

    Did you try CU1?

    Thanks Arindam

    Wednesday, April 19, 2017 11:12 AM
  • Hi!

    I should have mentioned it, I am sorry. We are trying on CU1, yes.

    Wednesday, April 19, 2017 11:15 AM
  • I am having the same exact problem with BizTalk 2013 R2, CU 6. So either they never really fixed it, or they re-broke it at some point. The history of the NCo connector type in the WCF-SAP adapter is very disturbing. A lot of fixes in the various cumulative updates.
    Friday, July 21, 2017 2:50 PM
  • we solved this issue here with a host instance per sap receive location :(

    but we reverted back to the classic sap rfc dlls for now, because there seems to be an issue with actual loosing IDOCs on the way from SAP to BizTalk. Reverting to the old DLLs and removing NCo resolved it :-/

    Monday, July 24, 2017 10:07 AM
  • Hi Fabian,

    What all settings you made for WCF-SAP adapter.Can you please send us steps you have followed while using connection type = our case receive location is not working using WCF-SAP adapter.

    We are getting below error:

    Reason: "System.MissingMethodException: Method not found: 'Boolean SAP.Middleware.Connector.RfcDestinationManager.IsDestinationConfigurationRegistered()'.

    I have installed SAP .net connector 3.0 for both 64 bit and 32 bit.

    Please suggest,Thanks.

    Pooja Jagtap Software Engineer KPIT Cummins

    Thursday, August 3, 2017 12:29 PM
  • I am sure you must have already seen this blog post but still in case, have a look of following blog post by Sandro for the installation.

    BizTalk Server 2013/2013 R2: Step-by-Step WCF-SAP Adapter installation guide

    Regarding your following error , IMO this is purely due to configuration of the DLLS , may be they are not gac'ed properly or host instance is not picking up the right version at run time. 

    "Reason: "System.MissingMethodException: Method not found: 'Boolean SAP.Middleware.Connector.RfcDestinationManager.IsDestinationConfigurationRegistered()'."

    Hope this helps


    Naushad Alam

    When you see answers and helpful posts, please click Vote As Helpful , Propose As Answer , and/or Mark As Answer

    Thursday, August 3, 2017 12:48 PM
  • Your issue is absolutely unrelated and you should open your own thread for it.
    Thursday, August 3, 2017 1:57 PM