HP 3000 Manuals

Ap G. Migrating Applications from SNA IMF/V to SNA IMF/XL [ SNA IMF Programmer's Reference Manual ] MPE/iX 5.0 Documentation


SNA IMF Programmer's Reference Manual

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

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, 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 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. 



MPE/iX 5.0 Documentation