HPlogo LU 6.2 API Application Programmer's Reference Manual: HP 3000 MPE/iX Computer Systems > Appendix F Migrating Transaction Programs

Remotely Initiated TPs

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Glossary

 » Index

On all versions of LU 6.2 API prior to the Node Type 2.1 version, whenever a remote TP sends an allocate request to initiate a conversation with a local TP, LU 6.2 API streams a job that runs the local TP. This method of starting up remotely initiated TPs can be very slow, because a job must be streamed every time an allocate request is received from a remote TP.

The Node Type 2.1 version of LU 6.2 API/XL allows a single TP process on the HP 3000 to receive multiple allocate requests from remote TPs. Each remotely initiated local TP must be configured through NMMGR. The configuration file specifies whether a TP is to receive multiple or single allocate requests.

A local TP configured to receive multiple allocate requests from remote TPs is started up only once. Allocate requests for that TP are queued, and the TP must make multiple calls to the MCGetAllocate intrinsic in order to receive all the allocate requests.

A local TP configured to receive a single allocate request is started up every time an allocate request is received from the remote TP. Multiple instances of it may be running at once, and each instance must call the MCGetAllocate intrinsic only once.

For information on TP configuration, see the APPC Subsystem on MPE XL Node Manager's Guide.

Source Code Changes to TPs

You must change your remotely initiated TPs in the following ways in order to run them on the Node Type 2.1 version of LU 6.2 API/XL:

  1. Change the LocalTPName parameter of the MCGetAllocate intrinsic from an output parameter to an input parameter. Instead of receiving the LocalTPName from the intrinsic, your program must pass the LocalTPName to the intrinsic. Chapter 5 “ Intrinsic Descriptions” of this manual contains a complete description of the MCGetAllocate intrinsic.

  2. Make sure the LocalTPName parameter of the TPStarted intrinsic matches the LocalTPName parameter of the MCGetAllocate intrinsic. For older versions of LU 6.2 API, these parameters did not need to match, but for the Node Type 2.1 version of LU 6.2 API/XL, they must match.

  3. Have the node manager configure the remotely initiated TP through NMMGR/XL. The LocalTPName parameter of the MCGetAllocate and TPStarted intrinsics must match a configured TP name in the APPC subsystem configuration. See the APPC Subsystem on MPE XL Node Manager's Guide for information on TP configuration.

    The remote TP must send this configured TP name in the allocate request. In older versions of LU 6.2 API, the remote TP sends the name of the job file that runs the local TP. In order to avoid changing the remote TP, make the configured TP name (and the LocalTPName parameter) match the job file name.

  4. If you want your TPs to receive multiple (queued) allocate requests from remote TPs, modify them to call the MCGetAllocate intrinsic multiple times — once for each allocate request.

    You can write a TP to receive a predetermined number of allocate requests, or you can write it to loop through the conversation intrinsics, from MCGetAllocate to MCDeallocate, until no more allocate requests arrive from the remote system. (See the MCGetAllocate intrinsic description in Chapter 5 “ Intrinsic Descriptions”)

    A time-out value for the MCGetAllocate intrinsic may be configured through NMMGR. If no allocate request arrives from the remote TP before the time-out value expires, the MCGetAllocate intrinsic returns with a status info value of +29. If you want your TP to receive an unknown number of allocate requests, you can design it to loop through the conversation intrinsics until +29 is returned in the Status parameter of the MCGetAllocate intrinsic. See the APPC Subsystem on MPE XL Node Manager's Guide for information on configuring the time-out value.

Feedback to webmaster