none
To handle low values from Mainframe in BizTalk HostApps adapter RRS feed

  • Question

  • I am working on BizTalk interface to integrate with Mainframe using BizTalk adapter for Host applications (HostApps) by calling Mainframe programs. I have Host Integration project where I added .Net client definition and imported COBOL copybook to get .dll file which will be used  in Send port.

    I configured HostApps adapter with all the settings it needs in the Send port. BizTalk is getting proper response from Mainframe for some of the input requests but for some specific requests, it is giving error - 'The call to Transaction Integrator returned 'There was an error generating the XML document'. It is giving error because of low values in the Mainframe response which I tracked using WireShark tool. I think when it tries to convert Mainframe response having low-key values to XML in the adapter using TI then it is failing.

    How can we ignore or work with low values in BizTalk using HostApps adapter? I tried to change some of settings in Host Integration project and in the interface but no luck. I created custom receive pipeline to replace low values with valid characters but it is not reaching to pipeline even.

    Environment - BizTalk Server 2013R2/ Microsoft Host Integration Server 2013 with CU3 update



    • Edited by Abhiarora Tuesday, June 13, 2017 9:12 PM
    Monday, June 12, 2017 4:24 PM

Answers

  • You should be able to set the conversion behavior option for Strings are Null Terminated and Space Padded to get this working.  If you open the TI Configuration Tool, right-click  Windows-Initiated Processing Configuration Files and select New - it will generate an app.config file for you.  If you then click on "Conversion Behavior" you will see the various options (which all default to false). Note that one option is Strings are Null Terminated and Space Padded -- set that to True.

    If you then click on the App.config (just under Windows-Initiated Processing Configuration Files), in the right-hand pane you will see the contents of the App.config file.  You can either save that App.config file or copy the text from that right-hand pane.

    You will need to open the BizTalk config file that is in the %BTSINSTALLPATH% - I believe you want the BTSNTSvc.exe.config if you are using a 32bit BizTalk Host process or use the BTSNTSvc64.exe.config file for a 64bit Host process.  You will need to copy the <configSections> from the App.config file as the first entry under <configuration> in the BizTalk config file and copy the hostIntegration.ti.wip section after the end of the configSections.

    Let me know how this works for you or if you have questions about this information.

    • Marked as answer by Abhiarora Friday, June 16, 2017 7:41 PM
    Friday, June 16, 2017 4:11 PM
    Owner
  • Thanks Valerie for your response.
    I checked application event log in the BizTalk server machine and this is only error I get:
    ------------------------------------------------------------------------------------------------------
    The adapter failed to transmit message going to send port <SPName> with URL "Connection String". It will be retransmitted after the retry interval specified for this Send Port. Details:"Non-Transactional Call ProgID = '<ProgramId>', Method = '<MethodName>' failed, error: 'The call to Transaction Integrator returned 'There was an error generating the XML document.'.'".
    -------------------------------------------------------------------------------------------------------
    When I imported COBOL copybook in HIS, the parameter has String datatype and in copybook it is of PIC X(9). INOUT type. 

    However I found a fix in Host Integration project, we can set the Sting Delimiting property to "Null Terminated" for that specific parameter where we are getting low values, in that case it is working fine.

    But I am looking for global configuration entry where I could set it at one place which will take care of every parameter in the host project.

    You referred that we can do this in BizTalk app.config file. Could you please let me know as what specific config entry/value do I need to set and in which file? We have BizTalk Server 2013 R2/HIS 2013 CU3 environment.

    • Marked as answer by Abhiarora Friday, June 16, 2017 7:41 PM
    Friday, June 16, 2017 3:09 PM
  • Valerie, your solution for the configuration file worked and resolution steps were so clear to implement.

    Thanks a lot and appreciate your help !!
    Abhi

    Abhi

    Friday, June 16, 2017 7:41 PM

All replies

  • Did you check the Application Event Log to see if there are any HIS Application Integration messages there?  Do you know what the data type is for the particular parameter that is receiving the Low Values?  For example, if it is a COMP-3 or numeric data type, then the Host Apps adapter expects to have a sign value, not just null values.  If this is the case, then I would expect to see an error in the application event log.  There is a way to work around this issue with an entry in the biztalk app.config file for "acceptNullPacked" or "acceptNullZoned".  
    Friday, June 16, 2017 2:38 AM
    Owner
  • Thanks Valerie for your response.
    I checked application event log in the BizTalk server machine and this is only error I get:
    ------------------------------------------------------------------------------------------------------
    The adapter failed to transmit message going to send port <SPName> with URL "Connection String". It will be retransmitted after the retry interval specified for this Send Port. Details:"Non-Transactional Call ProgID = '<ProgramId>', Method = '<MethodName>' failed, error: 'The call to Transaction Integrator returned 'There was an error generating the XML document.'.'".
    -------------------------------------------------------------------------------------------------------
    When I imported COBOL copybook in HIS, the parameter has String datatype and in copybook it is of PIC X(9). INOUT type. 

    However I found a fix in Host Integration project, we can set the Sting Delimiting property to "Null Terminated" for that specific parameter where we are getting low values, in that case it is working fine.

    But I am looking for global configuration entry where I could set it at one place which will take care of every parameter in the host project.

    You referred that we can do this in BizTalk app.config file. Could you please let me know as what specific config entry/value do I need to set and in which file? We have BizTalk Server 2013 R2/HIS 2013 CU3 environment.

    • Marked as answer by Abhiarora Friday, June 16, 2017 7:41 PM
    Friday, June 16, 2017 3:09 PM
  • You should be able to set the conversion behavior option for Strings are Null Terminated and Space Padded to get this working.  If you open the TI Configuration Tool, right-click  Windows-Initiated Processing Configuration Files and select New - it will generate an app.config file for you.  If you then click on "Conversion Behavior" you will see the various options (which all default to false). Note that one option is Strings are Null Terminated and Space Padded -- set that to True.

    If you then click on the App.config (just under Windows-Initiated Processing Configuration Files), in the right-hand pane you will see the contents of the App.config file.  You can either save that App.config file or copy the text from that right-hand pane.

    You will need to open the BizTalk config file that is in the %BTSINSTALLPATH% - I believe you want the BTSNTSvc.exe.config if you are using a 32bit BizTalk Host process or use the BTSNTSvc64.exe.config file for a 64bit Host process.  You will need to copy the <configSections> from the App.config file as the first entry under <configuration> in the BizTalk config file and copy the hostIntegration.ti.wip section after the end of the configSections.

    Let me know how this works for you or if you have questions about this information.

    • Marked as answer by Abhiarora Friday, June 16, 2017 7:41 PM
    Friday, June 16, 2017 4:11 PM
    Owner
  • Valerie, your solution for the configuration file worked and resolution steps were so clear to implement.

    Thanks a lot and appreciate your help !!
    Abhi

    Abhi

    Friday, June 16, 2017 7:41 PM