none
The adapter failed to transmit message going to send port RRS feed

  • Question

  • Hi,

    I am getting the below error while running the biztalk application. its restful apis which i have created in application.



    Thursday, June 9, 2016 1:28 PM

Answers

  • Hi Rajeshwari

    I had mentioned the reason for this yesterday - when you run the Consume Adapter Service Wizard to create the schemas/bindingfiles, you have to specify the GeneratedUserTypesAssemblyKeyFilePath property as well. This path needs to contain the strong name key file already. In your case, run the wizard again and specify correct path for above property. The wizard will use the .snk file you already have in the folder to create strongly named UDT assembly. You will be able to GAC that-


    Thanks Arindam



    Saturday, June 11, 2016 2:37 AM
    Moderator

All replies

  • Hi Rajeshwari

    For the failing SendPort, make sure the UserAssembliesLoadPath property is set. Refer this -

    Run Time

    You must perform these steps in the adapter clients to perform operations on the Oracle UDTs.

    In BizTalk Server

    • Manually add the Oracle UDT assembly created in step 4 in “Design Time” to the Global Assembly Cache (GAC) on your computer. Alternatively, you can manually copy the Oracle UDT assembly under the BizTalk Server installation location. For BizTalk Server 2006 R2, typically this is <installation drive>:\Program Files\Microsoft BizTalk Server 2006. For BizTalk Server 2009, typically this is <installation drive>:\Program Files\Microsoft BizTalk Server 2009.
    • While configuring the BizTalk Server WCF-Custom or WCF-OracleEBS port, in the Binding tab, specify the location of the Oracle UDT assembly for the UserAssembliesLoadPath binding property. For information about this binding property, see Working with BizTalk Adapter for Oracle E-Business Suite Binding Properties.

    If that property is set, you have to merge all the UDT assemblies for the packages into a single assembly as noted here-

    https://social.msdn.microsoft.com/Forums/en-US/7d532089-4707-4e41-9f84-cad45d254440/biztalk-adapter-pack-wcf-custom-oracledb-udt-assembly-error?forum=biztalkr2adapters

    This is an ODP.NET limitation with multiple UDT assemblies.Since you have two packages, probably the UDT for only one of the packages is getting loaded. You need to have all the UDTs in a single assembly. If ODP.NET finds one assembly with UDTs, it does not try to look any further. Therefore, the UDTs from the first assembly alone work.

    Another possible solution is the merge the different UDT assemblies into a single assembly using ILMerge, and set the merged assembly as the UserAssembliesLoadPath property in the adapter config-

    http://www.robfox.nl/2015/06/03/biztalk-and-oracle-ebs-user-defined-types-udts-only-one-net-assembly-allowed/


    Thanks Arindam





    Thursday, June 9, 2016 1:47 PM
    Moderator
  • Hi Rajeshwari,

    We have already fixed this for you on the forum and this issue is no different. Just follow what is suggested.

    Refer: https://social.msdn.microsoft.com/Forums/en-US/9fd4e1ea-1ed8-4c39-a67a-e65c58a75632/error-on-the-send-port-while-running-the-biztalk-application?forum=biztalkr2adapters

    This is an ODP.NET limitation. You need to have all the UDTs in a single assembly. If ODP.NET finds one assembly with UDTs, it does not try to look any further. Therefore, the UDTs from the first assembly alone work.

    I think you are facing either design time or runtime issue.

    Refer: https://technet.microsoft.com/en-us/library/dd788045.aspx

    Performing Operations On Artifacts Containing Oracle UDTs
    To perform operations on artifacts containing UDTs using the Oracle Database adapter, you must do the following during design time and run time.

    Design Time
    You must perform these steps while generation schema for the operation in Visual Studio.

    1) Connect to the Oracle database using the Consume Adapter Service Add-in, the Add Adapter Metadata Wizard, or the Add Adapter Service Reference Plug-in. For information about doing so, see Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in.

    2) While connecting, in the Binding Properties tab of the Configure Adapter dialog box, specify appropriate values for the GeneratedUserTypesAssemblyFilePath and GeneratedUserTypesAssemblyKeyFilePath binding properties. For information about these binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    3) When you are connected to the Oracle database in Visual Studio, browse to the required artifact that contains an Oracle UDT. For information about browsing artifacts, see Browsing, Searching, and Retrieving Metadata for Oracle Operations.

    4) Select the required artifact, and then click OK. The Oracle Database adapter generates the metadata for the selected operation along with the assembly (.dll file) for the Oracle UDT in the selected artifact. The assembly is created at the location that you specified in the GeneratedUserTypesAssemblyFilePath binding property.

    Proceed with the rest of the steps for building and deploying your project.

    Run Time
    You must perform these steps in the adapter clients to perform operations on the Oracle UDTs.


    In BizTalk Server
    1) Manually add the Oracle UDT assembly created in step 4 in “Design Time” to the Global Assembly Cache (GAC) on your computer. Alternatively, you can manually copy the Oracle UDT assembly under the BizTalk Server installation location. For BizTalk Server 2013 R2, typically this is <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

    2) While configuring the BizTalk Server WCF-Custom or WCF-OracleDB port, in the Binding tab, specify the location of the Oracle UDT assembly for the UserAssembliesLoadPath binding property. For information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    In Visual Studio
    1) Manually add the Oracle UDT assembly created in step 4 in “Design Time” to the Global Assembly Cache (GAC) on your computer. Alternatively, you can manually copy the Oracle UDT assembly to the same location as the project executable file, which typically is under the project’s \bin\Debug folder.

    2) Specify the location of the Oracle UDT assembly for the UserAssembliesLoadPath binding property. For information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.


    Rachit Sikroria (Microsoft Azure MVP)

    Thursday, June 9, 2016 2:29 PM
    Moderator
  • Hi Rajeshwari

    Open a developer command prompt window and use gacutil /i "AssemblyName full path". Refer this. No need to copy the dll manually.

    Post .NET 4.0, GAC path is the 2nd one. If your Windows 7 has BizTalk, your GAC is the Microsoft.NET\assembly folder.


    Thanks Arindam




    Friday, June 10, 2016 10:10 AM
    Moderator
  • Starting with the .NET Framework 4, the default location for the global assembly cache is %windir%\Microsoft.NET\assembly. In earlier versions of the .NET Framework, the default location is %windir%\assembly.

    You will find the Gacutil in 

    cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools

    or

     cd C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools

    Use command 

    gacutil.exe /i "AssemblyName full path"


    Rachit Sikroria (Microsoft Azure MVP)


    Friday, June 10, 2016 10:19 AM
    Moderator
  • You have to assign the strong name key file to your project through visual studio.

    1. In Solution Explorer, open the shortcut menu for the project, and then choose Properties.

    2. Choose the Signing tab.

    3. Select the Sign the assembly box.

    4. In the Choose a strong name key file box, choose <Browse…>, and then navigate to the key file. 

    Refer: https://msdn.microsoft.com/en-us/library/xc31ft41.aspx


    Rachit Sikroria (Microsoft Azure MVP)

    Friday, June 10, 2016 11:42 AM
    Moderator
  • Hi Rajeshwari

    Did you specify strong name key file path while running the wizard from visual studio?

    It is a required field to generate strongly named UDT assembly. GAC can only contain strongly named assemblies.


    Thanks Arindam



    Friday, June 10, 2016 11:43 AM
    Moderator
  • You are making some mistake... Do it again.

    Create a new strong key and assign it. Refer: How to: Sign an Assembly (Visual Studio)


    Rachit Sikroria (Microsoft Azure MVP)

    Friday, June 10, 2016 12:05 PM
    Moderator
  • Hi Rajeshwari

    I had mentioned the reason for this yesterday - when you run the Consume Adapter Service Wizard to create the schemas/bindingfiles, you have to specify the GeneratedUserTypesAssemblyKeyFilePath property as well. This path needs to contain the strong name key file already. In your case, run the wizard again and specify correct path for above property. The wizard will use the .snk file you already have in the folder to create strongly named UDT assembly. You will be able to GAC that-


    Thanks Arindam



    Saturday, June 11, 2016 2:37 AM
    Moderator
  • Hi Rajeshwari

    Please remove the current assembly from the D:\___ path first. Make sure that the D:\___ has the strongname key file before you run the wizard. Now launch the Consume Adapter Service wizard, provide the FilePath and KeyFilePath properties as in above image and generate the schemas and the dll again.  You should get a strongly-named assembly after the wizard completes.


    Thanks Arindam


    Monday, June 13, 2016 6:10 AM
    Moderator
  • Hi

    Is it failing for all packages?


    Thanks Arindam

    • Marked as answer by Rajeshwari ML Monday, June 13, 2016 7:54 AM
    • Unmarked as answer by Rajeshwari ML Monday, June 13, 2016 7:54 AM
    Monday, June 13, 2016 7:53 AM
    Moderator
  • Also make sure you restart the Host Instance after GAC'ing the dll.

    Thanks Arindam

    Monday, June 13, 2016 9:01 AM
    Moderator