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

  • Question

  • Hi,

    i am using biztalk server 2013. i have created the restful api for one oracle package and it is working fine.

    for the same application i have added one more  package schema and  configured the application for another package .

    while running the application getting below error.

    The adapter failed to transmit message going to send port


    Monday, May 23, 2016 2:31 PM

Answers

All replies

  • Hi Rajeshwari

    Make sure you are setting UserAssembliesLoadPath property in WCF adapter config-

    Specifies the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata. These DLLs are saved at the location you specified for the GeneratedUserTypesAssemblyFilePath binding property while generating metadata. You must manually copy these DLLs to the following locations:

        For BizTalk projects: Copy the DLLs at the same location as BTSNTSvc.exe. For BizTalk Server 2013 R2, this is available typically under <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

    (Better to GAC this dll)

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

    If you have already done the above, please refer this-

    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.

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

    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









    Monday, May 23, 2016 2:42 PM
    Moderator
  • Hi Rajeshwari,

    We already had a discussion on this issue before: 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.

    Refer for solution: BizTalk and Oracle EBS User Defined Types (UDTs) – Only one .Net assembly allowed

    Also refer discussion here: Biztalk Adapter Pack - WCF Custom - OracleDB - UDT Assembly Error

    Also ensure below steps:

    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)


    Monday, May 23, 2016 4:58 PM
    Moderator
  • Hello,

    You need to specify GeneratedUserTypesAssemblyFilePath and GeneratedUserTypesAssemblyKeyPath.

    If your package is using UDT’s you’ll have to provide a location for the generated dll’s and a strong name key. If you don’t you won’t get an exception until runtime when it tries to find the DLL.

    The generated DLL is saved to the same location as the executable. You must specify only one filename. For all the UDTs in the metadata, the adapter generates a single file with the given name. If you do not specify a name, the adapter generates the DLL with a GUID name.

    Refer: http://synthesisconsulting.net/blog/2012/5/13/oracle-and-biztalk-server-part-2.html

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

    You have to follow the instructions given in the documentation carefully.


    Rachit Sikroria (Microsoft Azure MVP)


    Tuesday, May 24, 2016 6:16 AM
    Moderator