HPlogo SNA IMF Programmer's Reference Manual: HP 3000 MPE/iX Computer Systems

Appendix G Migrating Applications from SNA IMF/V to SNA IMF/XL

» 

Technical documentation

» Feedback

 » Table of Contents

 » Glossary

 » Index

Following are the changes you might have to make to your SNA IMF/V applications in order to migrate them to SNA IMF/XL:

  1. If your program calls the ACQUIRE3270 intrinsic, you will have to add two parameters to your ACQUIRE3270 intrinsic calls, because the ACQUIRE3270 intrinsic has two more parameters for SNA IMF/XL than for SNA IMF/V.

    SNA IMF/V:

    ACQUIRE3270 (snalnkinfo, devicenum, ldev, enhance, priority, blanks, format flags, result)

    SNA IMF/XL:

    ACQUIRE3270 (snalnkinfo, devicenum, ldev, enhance, priority, blanks, format flags, options, pfn, result)

    The two added parameters are options (a 16-bit word that specifies trace, spooler priority, read timeout, and LaserJet II options) and pfn (a character array that specifies a spooler file name). Both are input parameters. See the description of the ACQUIRE3270 intrinsic, in Chapter 3 “Intrinsics Used with Standard MPE I/O” for more information.

    All SNA IMF intrinsic parameters are required, so you must declare, initialize, and pass the options and pfn parameters in your ACQUIRE3270 intrinsic call, even if your program does not use their values.

  2. You might have to modify your program to call RECV3270 more times in order to receive a complete transmission from the host. This is because SNA IMF/XL receives less data in a single RECV3270 call than SNA IMF/V.

    One way to modify your program is to have it check the internal screen image after every call to RECV3270. If you know how many fields should be in the screen sent by the host, or you know what should be in the last field on the screen, your program can call RECV3270 in a loop that terminates when the last field of the screen has been received.

    Another way to modify your program is to specify a short timeout value in your OPEN3270 call, and call RECV3270 in a loop that terminates when the timeout interval expires. Your program will keep calling RECV3270 until it receives all the data from the host; then, the timeout interval will expire and your program will exit the loop.

  3. If your program uses result code 9 as a signal to call the RECV3270 intrinsic, you must modify your program, because SNA IMF/XL never returns result code 9.

    SNA IMF/V returns result code 9 to indicate that the internal screen image has changed since the last time your program looked at it. Result code 9 indicates that your program should call RECV3270 to receive the current screen image. SNA IMF/XL does not return result code 9, because it does not modify the internal screen image until your program calls RECV3270.

    Your SNA IMF/XL program should call RECV3270 after calling OPEN3270 or TRAN3270, or whenever it expects data from the host. If new data has arrived from the host, RECV3270 will return result code 0. If no data has arrived, the receive timeout interval will expire, and RECV3270 will return result code 24.

    If your SNA IMF/V application uses no-wait I/O, you must make the following changes in addition to the ones just mentioned:

  4. Change all MPE IOWAIT and IODONTWAIT intrinsic calls to SNA IMF IOWAIT3270 and IODONTWAIT3270 intrinsic calls. Calling MPE IOWAIT and IODONTWAIT intrinsics from an SNA IMF/XL application can cause the system to hang.

  5. If your SNA IMF/V application calls IOWAIT or IODONTWAIT with the filenum parameter set to zero, make sure when you change your intrinsic calls to IOWAIT3270 or IODONTWAIT3270 that your program checks the fnum value returned by these intrinsics. When you set the filenum parameter to zero, IOWAIT3270 and IODONTWAIT3270 indicate the completion of any I/O, even if it is only the opening of a message file. The fnum value tells your program which I/O operation has completed.

Feedback to webmaster