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