none
HIS 2009 not understanding Service Transaction Program names used during Function Shipping RRS feed

  • Question

  • Hi,

    I’m trying to use Host Integration Server 2009 to allow function shipping from the Mainframe to my desktop machine, however I seem to have encountered a problem with TPStart.

    When the FMH-5 attach is received by HIS it looks like:

    DLC   0B90A034 0502FF80 03D10080 01030908     <...4.....J......>

    DLC   02C9C2D4 E4E2C5D9 1910C4C4 C9D5C5E3     <.IBMUSER..DDINET>

    DLC   F14BE3C3 D7F0F0F0 F0F3688D CD95DC94     <1KTCP00003h..n.m>

    DLC   00010460 C1C4D900 1A12F20A 85020201     <...`ADR...2.e...>

    DLC   02000001 030C060A 06000101 04C6E2E3     <.............FST>

    DLC   C4                                      <D               >

    Decoding this shows that the incoming requested TP Name is ‘03’. As mentioned above this is for a function ship, so in reality that TP Name of ’03’ must the name of the Mirror Transaction. From the IBM documentation regarding TP Names:

    When you name a transaction program, choose a name that has a first character with an EBCDIC code greater than an EBCDIC blank (X'40'). Transaction program names containing first characters with EBCDIC codes less than X'40' are reserved for service transaction programs. Transaction program names can include up to 64 characters.  

    So it appears that the TP Name ‘03’ is in fact the service transaction program name for the Mirror Transaction (CVMI/CPMI/CSMI).

    HIS seems unable to understand this service transaction name, and fails to invoke TPStart to launch a backend transaction of ‘03’.

    An extract from the Windows Event Logs when the function shipping occurs shows:

    The Host Integration Server computer was unable to locate an invokable TP UN, APPC LU Alias <OFBLU010>  

    And:

    Failed to invoke APPC TP 03 (), local LU = OFBLU010, sense data = 84c0000

    And from the SnaServr_MSG1.ATF we see:

    Unknown service TP

    Converted Service TP name to

    Post IoDload 0013D120: TP <UN>, LU: <OFBLU010>

    IoDload 0013D120

    Dload for TP[      UN] from LU[OFBLU010] index 0x08B2 correl 0x0004

    So it looks like HIS receives the TP Name of ‘03’ but then is unable to understand it and coverts it to <UNKNOWN>.

    No matter what entries I add into TPSetup to try and match the incoming TP Name I cannot get TPStart to invoke the backend transaction (indeed the TPStart trace shows no activity at all).

    Has anyone tried function shipping from the Mainframe via HIS?
    Wednesday, August 11, 2010 2:03 PM

Answers

  • Just to close this loop. Gary did open a support case and we were able to identify a bug in Host Integration Server around dealing with 1-character IBM Service TP Names. A hotfix was provided that resolved the problem. A KB article will be available shortly describing the issue and the hotfix. The article is going through final editing so it should be available soon. The article information will be as follows once it is publicly available:

    Title:

    FIX: An APPC or CPI-C application does not run if the application uses one character for the IBM Service Transaction Program name on HI Server 2009

    http://support.microsoft.com/default.aspx?scid=kb;en-US;2417432

    Thanks...

     


    Stephen Jackson - MSFT
    Monday, December 13, 2010 10:39 PM

All replies

  • Gary,

    We have had a lot of customers over the years use HIS to host invokable APPC and CPI-C applications that are called from IBM mainframes and AS/400s. However, I've never seen a case where the TP Name was X'03'.

    The TP Name appears to be an IBM Service TP Name. From some older documentation that I have, the IBM Service TP Name of X'03' is defined as follows:

    03        IMS LU 6.1 queue transaction program

    I'm not heard the term "function shipping" so I'm not sure how this correlates.

    If you look at the following KB article, you will see how the '03' gets translated to 'UN':

    How to Configure SNA Service TPs in the Registry
    http://support.microsoft.com/kb/148970

    In regards to TPStart, it is the TP loader that is used to launch an application that matches the TP name in the incoming ATTACH message. Once the ATTACH arrives, the SnaBase process will look under the following registry key looking for an application name that matches the TP name:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SnaBase\Parameters\TPs

    Note: This assume that SnaBAse is running as a service. If this is on a HIS Client where SnaBase is running as an application, the path would be HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SnaBase\Parameters\TPs.

    If a matching application name is found, SnaBase will communicate with TPStart and then TPStart will lauch the application associated with the TP name.

    I assume that you tried using a TP name of UN in TPSetup when setting up the TP and it didn't work.

    Thanks...

     


    Stephen Jackson - MSFT
    Thursday, August 12, 2010 4:45 PM
  • Stephen
     
    A bit of deft Googling pretty quickly turned up the following as explanations of what "function shipping" within CICS is all about:
     
     
     
     
    It appears that you need to "ship function" within various flavours of CICS.[1] Thus, maybe, Gary is assuming too much capability within HIS.
     
    I guess rephrasing Gary's "Subject" - rather more grammatically - as "HIS 2009 does not understand Service Transaction Program names used during Function Shipping" becomes merely a statement of fact.
     
    > Has anyone tried function shipping from the Mainframe via HIS?
     
    And the answer to this question becomes:
     
    Apart from Gary Stoneman, probably, and with the same result.
     
    Chris Mason
     
    [1] And possibly IMS. I'd need to use my Google spade a bit more to check this out.
    Thursday, August 12, 2010 7:52 PM
  • Hi,

     

    Thanks for the quick replies! 

    Stephen,

    You've managed to beat me in finding out what the transaction name x'03' is, I was unable to find any reference to it at all. The KB article linked is very interesting, but you are correct in asserting that I have already tried to specify the TP name as UN. I have also tried "      UN" (note the spaces) to no avail. 

    This is an extract from the NAPINT1.ATF trace file, where the top line is a working TP invocation and the bottom one is the failing one: 

    Dload for TP[P07S    ] from LU[OFBLU010] index 0x04B2 correl 0x0008

    Dload for TP[      UN] from LU[OFBLU010] index 0x08B2 correl 0x0008 

    It’s interesting that the one that fails has a fair few spaces in front of the UN. 

    Chris,

    You are correct that function shipping is from the CICS realm, it's a somewhat generic term used to cover the ability of using remote resources (files, TD queue, programs etc) as if they were local. To perform this function shipping the mainframe uses a special transaction called the mirror transaction, whose job is simply to mirror commands performed on the host. 

    http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfht1/dfht1ka.htm  

    Typically the Mirror Transaction is named CVMI, CPMI or CSM*. So at the low level the only interesting part of function shipping is that is must use one of the earlier TP names to invoke on a remote system. 

    Below is a VTAM buffer trace that shows the mirror transaction being invoked on another mainframe region (so inter mainframe communication): 

    1           BUFF    DDINET1.CICST31A /DDINET1.CICST31B     LRC(000,000)    OUTBOUND    COMPLETE SEGMENT

                VTAM    TH=40000000 00000000 00000002 00000002 1C00019C 04500018 0048  RH=0B90A0

                                                2B0502FF 0003D100 800103 00 1910C4C4 C9D5C5E3  *......J.......DDINET*

                                                F14BE3C3 D7F0F0F0 F0F76C41 6E6582B0 00010460  *1.TCP00007%.>.b....-*

                                                C1C5C900 1A12F20A 85020201 02000001 030C060A  *AEI...2.e...........*

                                                06000101 04D4F2E3 C4                          *.....M2TD           *

                    GMT-08/13/2010 12:41:45.854739  LOC-08/13/2010 08:41:45.854739 

    Again here you can see that the TP name is x’03’ (Bold above).

    As some more background information, we have successfully tried this the over way around. Where we are function shipping from the desktop to the mainframe via HIS. In this case we use the full TP name of CVMI in the FMH-5 attach and the mainframe successfully invokes the mirror transaction. So it looks like the mainframe can understand both the shortened and full TP name.

     

    Thanks

    Gary

    Friday, August 13, 2010 1:50 PM
  • Gary - what piece of application code, middleware etc. have you got
    installed/running that HIS is going to invoke to perform the "function
    ship" on Windows?
     
    If you were calling the other way, windows to mainframe, then CPMI etc.
    performs this role.  But if you're calling mainframe to HIS you need to
    provide something at the HIS end - and that code needs to register
    itself with SNA as a TP.
     
     

    Neil Pike
    Friday, August 13, 2010 8:25 PM
  • Neil,

    I’m using Micro Focus Enterprise Server as the remote region. I have successfully used this with many other different transactions (mainly in the form of Distributed Transaction Processing), where the flow is from the mainframe invoking a transaction in Enterprise Server via HIS.

    I’m only having a problem with this mirror transaction x’03’. I have tried changing the TP in TPSetup to invoke notepad when the incoming transaction is decoded by HIS, but when trying to function ship notepad is never executed. 

    This points me to a problem in HIS understanding the TP name (and hence not being able to invoke the specified program) and not to the backend middleware itself.

    Thanks

    Gary

     

    Tuesday, August 17, 2010 3:27 PM
  • Gary,

    It could be that HIS is having a problem with this TP name. If you need this to be investigated, it would be best to open a support case so we can look into it. I'll do a little digging in the next couple of days to see if I can verify if this is incorrect behavior or if there is a reason for it.

    Thanks...


    Stephen Jackson - MSFT
    Tuesday, August 24, 2010 3:16 AM
  • Just to close this loop. Gary did open a support case and we were able to identify a bug in Host Integration Server around dealing with 1-character IBM Service TP Names. A hotfix was provided that resolved the problem. A KB article will be available shortly describing the issue and the hotfix. The article is going through final editing so it should be available soon. The article information will be as follows once it is publicly available:

    Title:

    FIX: An APPC or CPI-C application does not run if the application uses one character for the IBM Service Transaction Program name on HI Server 2009

    http://support.microsoft.com/default.aspx?scid=kb;en-US;2417432

    Thanks...

     


    Stephen Jackson - MSFT
    Monday, December 13, 2010 10:39 PM
  • Hi Gary ,

    I am also working on similar think. It would be great if you can share the pointers how you were able to hook up Microfocus with IBM CICS other then Microfocus help.

    Will Really appreciate it if you help in this regrad

    Thanks

    Jagdish

    Tuesday, December 14, 2010 6:52 PM
  • Hi Gary ,

    I am also working on similiar requirement . Would you like to share your valueabe experience


    Thanks and Regards Jagdish
    Tuesday, February 15, 2011 11:03 AM
  • Hi Gary, I'm working on somethig similar. We have AS400 which needs to call programs on Microfocus and get a response. I'm trying to understand what steps need to be followed for this. Can you please provide high level steps (along with which component) to do this?

    Ex.

    - install & configure HIS2010 on a windows server

    - configure SNA and TI

    - install HIS client on Microfocus

    - register Microfocus program name in HIS...

    Thanks in advance

    Wednesday, December 19, 2012 10:19 AM