none
How do you get a custom WCF LOB adapter to show up in the drop down in Adapter properties? RRS feed

  • Question

  • I have created a new custom WCF LOB adapter using the echo adapter example and can configure it in the BizTalk administration console after selecting WCF-Custom and then the new binding. What I want to be able to do is to be able to select the Adapter node in the BizTalk administration console, right click new adapter to reach the adapter properties screen. In the adapter drop down I want to see my new adapter so I can create adapter entry for my new adapter. I currently see WCF-SQL, WCF-Siebel, WCF-SAP, WCF-OracleDB and WCF-OracleEBS. How do i add my new adapter to this list?
    Thursday, January 20, 2011 7:18 PM

Answers

  • There might be a supported way to do this but I am not sure. i did not see a sample .reg file in the WCF LOB SDK samples.

    From working with the old adapter framework, you would create a GUID for your adapter. So I looked at the WCF-SQL adapter in Reflector to find the GUID for this adapter and then searched the registry under HKLM\Software and found the GUID key. The keys under it were very similar to ones for adapters made with the old adapter framework. Here are the WCF-SQL keys:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}]
    @="WCF-SQL"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\BizTalk]
    @="BizTalk"
    "TransportType"="WCF-SQL"
    "Constraints"=dword:0000030b
    "ReceiveLocation_PageProv"="{86e62ea8-d681-4aac-a62b-f8e7dc0306b4}"
    "TransmitLocation_PageProv"="{ea897b1c-08b9-4d21-87fa-223f7fc5acf3}"
    "AdapterMgmtCLSID"="{dea558d0-6960-4f96-9bc7-9b3837689fc0}"
    "AdapterMgmtTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlManage, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "InboundEngineCLSID"="{1ad7c0c2-cdd2-4e87-922c-6e89d9f8b0e2}"
    "InboundTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlReceiver, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "OutboundEngineCLSID"="{6a640a11-2f39-42eb-96c7-490aac4f32f6}"
    "OutboundTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlTransmitter, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "PropertyNameSpace"="http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties"
    "AliasesXML"="<AdapterAliasList />"
    "ReceiveHandlerPropertiesXML"="<CustomProps><WcfExtensions vt=\"8\" /></CustomProps>"
    "ReceiveLocationPropertiesXML"="<CustomProps><Headers vt=\"8\" /><BindingType vt=\"8\" /><BindingConfiguration vt=\"8\" /><ReferencedBindings vt=\"8\" /><ServiceBehaviorConfiguration vt=\"8\" /><EndpointBehaviorConfiguration vt=\"8\" /><InboundBodyLocation vt=\"8\" /><InboundBodyPathExpression vt=\"8\" /><InboundNodeEncoding vt=\"8\" /><OutboundBodyLocation vt=\"8\" /><OutboundXmlTemplate vt=\"8\" /><DisableLocationOnFailure vt=\"11\" /><SuspendMessageOnFailure vt=\"11\" /><IncludeExceptionDetailInFaults vt=\"11\" /><CredentialType vt=\"8\" /><UserName vt=\"8\" /><Password vt=\"8\">Encrypted</Password><AffiliateApplicationName vt=\"8\" /><OrderedProcessing vt=\"11\" /><Identity vt=\"8\" /></CustomProps>"
    "SendHandlerPropertiesXML"="<CustomProps><WcfExtensions vt=\"8\" /></CustomProps>"
    "SendLocationPropertiesXML"="<CustomProps><Headers vt=\"8\" /><BindingType vt=\"8\" /><BindingConfiguration vt=\"8\" /><ReferencedBindings vt=\"8\" /><EndpointBehaviorConfiguration vt=\"8\" /><StaticAction vt=\"8\" /><UseSSO vt=\"11\" /><UserName vt=\"8\" /><Password vt=\"8\">Encrypted</Password><AffiliateApplicationName vt=\"8\" /><ProxyAddress vt=\"8\" /><ProxyUserName vt=\"8\" /><ProxyPassword vt=\"8\">Encrypted</ProxyPassword><InboundBodyLocation vt=\"8\" /><InboundBodyPathExpression vt=\"8\" /><InboundNodeEncoding vt=\"8\" /><OutboundBodyLocation vt=\"8\" /><OutboundXmlTemplate vt=\"8\" /><PropagateFaultMessage vt=\"11\" /><EnableTransaction vt=\"11\" /><IsolationLevel vt=\"8\" /><Identity vt=\"8\" /></CustomProps>"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Implemented Categories]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Implemented Categories\{7F46FC3E-3C2C-405B-A47F-8D17942BA8F9}]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Install]
    "Assembly"="Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "DateTime"="12/28/2010 00:20:47"

    ---

    What you want to do is copy this locally as a .reg file and then create a Guid for your adapter and replace all instances of 59b35d03-6a06-4734-a249-ef561254ecf7 with it. You need to specify the adapter guid as an attribute somewhere in the adapter code. I am not sure exactly where for the WCF LOB SDK adapters. I will ask this question to some Microsoft people to find out more. From there it should work nicely.

    You do need to modify the assembly names, etc in the registry settings but it is a lot closer once you have the .reg file to work with.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, January 20, 2011 11:59 PM
    Moderator
  • This can be a very confusing thread for most people. The link Hassan gave enables the Echo adapter to show up under WCF-Custom bindings, not as a standalone adapter.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • Marked as answer by Mark Brimble Friday, April 15, 2011 6:10 AM
    Thursday, April 14, 2011 1:21 PM
    Moderator

All replies

  • When using the old adapter framework you typically had to use a .reg file to register the custom adapter. I am guessing that the adapter pack does something like this for those 5 WCF based adapters. I can look in my registry to determine if this was done for the adapter pack adapters and from there we might be able to create a .reg file to do this. I have not actually done this before, but this is my idea of how this would get accomplished.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, January 20, 2011 11:33 PM
    Moderator
  • There might be a supported way to do this but I am not sure. i did not see a sample .reg file in the WCF LOB SDK samples.

    From working with the old adapter framework, you would create a GUID for your adapter. So I looked at the WCF-SQL adapter in Reflector to find the GUID for this adapter and then searched the registry under HKLM\Software and found the GUID key. The keys under it were very similar to ones for adapters made with the old adapter framework. Here are the WCF-SQL keys:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}]
    @="WCF-SQL"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\BizTalk]
    @="BizTalk"
    "TransportType"="WCF-SQL"
    "Constraints"=dword:0000030b
    "ReceiveLocation_PageProv"="{86e62ea8-d681-4aac-a62b-f8e7dc0306b4}"
    "TransmitLocation_PageProv"="{ea897b1c-08b9-4d21-87fa-223f7fc5acf3}"
    "AdapterMgmtCLSID"="{dea558d0-6960-4f96-9bc7-9b3837689fc0}"
    "AdapterMgmtTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlManage, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "InboundEngineCLSID"="{1ad7c0c2-cdd2-4e87-922c-6e89d9f8b0e2}"
    "InboundTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlReceiver, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "OutboundEngineCLSID"="{6a640a11-2f39-42eb-96c7-490aac4f32f6}"
    "OutboundTypeName"="Microsoft.Adapters.Sql.BizTalk.WcfBtsSqlTransmitter, Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "PropertyNameSpace"="http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties"
    "AliasesXML"="<AdapterAliasList />"
    "ReceiveHandlerPropertiesXML"="<CustomProps><WcfExtensions vt=\"8\" /></CustomProps>"
    "ReceiveLocationPropertiesXML"="<CustomProps><Headers vt=\"8\" /><BindingType vt=\"8\" /><BindingConfiguration vt=\"8\" /><ReferencedBindings vt=\"8\" /><ServiceBehaviorConfiguration vt=\"8\" /><EndpointBehaviorConfiguration vt=\"8\" /><InboundBodyLocation vt=\"8\" /><InboundBodyPathExpression vt=\"8\" /><InboundNodeEncoding vt=\"8\" /><OutboundBodyLocation vt=\"8\" /><OutboundXmlTemplate vt=\"8\" /><DisableLocationOnFailure vt=\"11\" /><SuspendMessageOnFailure vt=\"11\" /><IncludeExceptionDetailInFaults vt=\"11\" /><CredentialType vt=\"8\" /><UserName vt=\"8\" /><Password vt=\"8\">Encrypted</Password><AffiliateApplicationName vt=\"8\" /><OrderedProcessing vt=\"11\" /><Identity vt=\"8\" /></CustomProps>"
    "SendHandlerPropertiesXML"="<CustomProps><WcfExtensions vt=\"8\" /></CustomProps>"
    "SendLocationPropertiesXML"="<CustomProps><Headers vt=\"8\" /><BindingType vt=\"8\" /><BindingConfiguration vt=\"8\" /><ReferencedBindings vt=\"8\" /><EndpointBehaviorConfiguration vt=\"8\" /><StaticAction vt=\"8\" /><UseSSO vt=\"11\" /><UserName vt=\"8\" /><Password vt=\"8\">Encrypted</Password><AffiliateApplicationName vt=\"8\" /><ProxyAddress vt=\"8\" /><ProxyUserName vt=\"8\" /><ProxyPassword vt=\"8\">Encrypted</ProxyPassword><InboundBodyLocation vt=\"8\" /><InboundBodyPathExpression vt=\"8\" /><InboundNodeEncoding vt=\"8\" /><OutboundBodyLocation vt=\"8\" /><OutboundXmlTemplate vt=\"8\" /><PropagateFaultMessage vt=\"11\" /><EnableTransaction vt=\"11\" /><IsolationLevel vt=\"8\" /><Identity vt=\"8\" /></CustomProps>"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Implemented Categories]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Implemented Categories\{7F46FC3E-3C2C-405B-A47F-8D17942BA8F9}]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{59b35d03-6a06-4734-a249-ef561254ecf7}\Install]
    "Assembly"="Microsoft.Adapters.Sql.BizTalk, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    "DateTime"="12/28/2010 00:20:47"

    ---

    What you want to do is copy this locally as a .reg file and then create a Guid for your adapter and replace all instances of 59b35d03-6a06-4734-a249-ef561254ecf7 with it. You need to specify the adapter guid as an attribute somewhere in the adapter code. I am not sure exactly where for the WCF LOB SDK adapters. I will ask this question to some Microsoft people to find out more. From there it should work nicely.

    You do need to modify the assembly names, etc in the registry settings but it is a lot closer once you have the .reg file to work with.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, January 20, 2011 11:59 PM
    Moderator
  • Thanks Ben. This all makes sense to me now. Please let me know if you find out where to specify the adapter guid. In the meantime I'll have a go at working it out myself.
    Friday, January 21, 2011 1:55 AM
  • Follow the steps in this article and you will find your custom adapter available in the list

    http://msdn.microsoft.com/en-us/library/bb798087(v=BTS.70).aspx

    • Proposed as answer by Hassan Alferga Thursday, April 14, 2011 8:37 AM
    Thursday, April 14, 2011 8:11 AM
  • This can be a very confusing thread for most people. The link Hassan gave enables the Echo adapter to show up under WCF-Custom bindings, not as a standalone adapter.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • Marked as answer by Mark Brimble Friday, April 15, 2011 6:10 AM
    Thursday, April 14, 2011 1:21 PM
    Moderator