PTF#:

SF24144 - OPERATING SYSTEM/400

Licensed Program:

5763SS1

APAR Fixed:

SA44304

Release:

310

Abstract

AFP-NEW PARAMETERS FOR TCP/IP IPDS PASSTHROUGH SNA

Pre/Co-Requisite PTF / Fix List


   REQ   LICENSED  PTF/FIX
   TYPE  PROGRAM   NUMBER   LICENSED PROGRAM DESCRIPTION
   ----  --------  -------  -----------------------------------------------
   PRE   5763999   MF09268  OPERATING SYSTEM/400
   CO    5763SS1   SF24167  OPERATING SYSTEM/400
   CO    5763SS1   SF24143  OPERATING SYSTEM/400
   CO    5763SS1   SF24142  OPERATING SYSTEM/400
   CO    5763SS1   SF24141  OPERATING SYSTEM/400
   CO    5763SS1   SF24140  OPERATING SYSTEM/400
   CO    5763SS1   SF24139  OPERATING SYSTEM/400
   CO    5763SS1   SF24138  OPERATING SYSTEM/400


APAR Error Description / Circumvention


DESCRIPTION OF PROBLEM FIXED FOR APAR SA44304 :
-----------------------------------------------
   Add configuration support for new functions provided by the
   IBM Print Services Facility for OS/400: TCP/IP support,
   sharing of a PSF Direct SNA session and IPDS passthrough.
 
 
CORRECTION FOR APAR SA44304 :
-----------------------------
   See the special instructions section of this cover letter for
   details.
 
CIRCUMVENTION FOR APAR SA44304 :
--------------------------------
 
   None.


Activation Instructions


   If this PTF is applied or removed as a "Delayed" PTF, which
   requires an IPL, no special consideration is necessary.  If this
   PTF is applied or removed "Immediate", you must first end all of
   the printer writers or end the QSPL subsystem.  The PTF will be
   effective when the writers are started up again.


Special Instructions


   Install this PTF if you use or are planning to use
   Print Services Facility/400 (PSF/400) and are installing PTFs
   for the following APARs:
 
     - SA44298. Provides support for printer attachments using
                TCP/IP.
     - SA44300. Adds support for IPDS passthrough
     - SA44303. Provides APPC enhancements permitting multiple
                AS/400s to share a PSF Direct session.
 
   The program provided in this PTF, QSYS/QPQXWAFP, provides an
   interface to a data area used by PSF/400 to obtain additional
   configuration information not provided through use of the
   CRTDEVPRT command. QPQXWAFP creates a data area in library QGPL
   with authority of *LIBCRTAUT.
 
   This cover letter assumes that you will use the command
   interface provided in this cover letter. This command interface
   is called WRKAFP2. Documentation provided here will reference
   the name WRKAFP2 and the parameters used by the command to
   provide an interface to QPQXWAFP. QPQXWAFP will be the program
   to process the command.
 
   This cover letter provides the following information:
 
     1. How to use WRKAFP2.
     2. Examples for using WRKAFP2.
     3. Data area migration concerns.
     4. Reference codes returned by QPQXWAFP.
     5. How to copy the source code for a suggested command
        interface, WRKAFP2, to QPQXWAFP from this cover letter
        into a physical file.
     6. How to compile the suggested command interface.
     7. Source code for a suggested command interface to QPQXWAFP.
 
   When configuring PSF/400 for any of these new functions, please
   refer to the cover letter for the PTF which adds that function,
   in addition to this cover letter.
 
   1. How to use WRKAFP2
   ---------------------
   WRKAFP2 has the following parameters:
 
     a. DEVD. Printer device name
        This is the name of the data area to be created, modified
        or migrated by WRKAFP2. The value may be any name
        permitted for a data area.
 
     b. PRINTONLY. Print data area only
        Use a value of *YES if you wish to print the contents of a
        data area previously created by WRKAFP2. Valid values are
        *YES and *NO. When *YES is specified, all other parameters
        are ignored. The default value is *NO.
 
     c. IPDSPASTHR. IPDS pass through
        Specifies if you are using PSF/400's IPDS Passthrough
        function. You may use this function when printing on any
        connection: Twinaxial, APPC and TCP/IP. Valid values are
        *YES and *NO. The default value is *NO.
 
     d. TCPIP. TCP/IP.
        Specifies if you are attaching to a device which requires
        PSF/400's TCP/IP support. Valid values are *YES and *NO. If
        you specify *YES, you will have to specify values for
        RMTSYS and PORT; see below. The default value is *NO.
 
     e. RMTSYS. Remote system.
        Specifies the remote system name of the printer. You may
        use either a host name or an IP address.
 
     f. PORT. Port.
        Specifies the port number for the device. Valid values
        range from 1-65535.
 
     g. ACTTMR. Activation timer.
        Specifies the number of seconds PSF/400 will wait for a
        printer to respond to an activation request. If the printer
        does not respond within this time, PSF/400 terminates. The
        value specified depends on what is required in your
        environment. The value you select is dependent on whether
        you are sharing the printer with another PSF, or the length
        of time required for an activation request to reach the
        printer. This parameter is used only for TCP/IP-attached
        printers. Acceptable values are 1-2550 seconds and *NOMAX
        (wait forever). The default value is 170.
 
     h. RETRY. SNA retry count
        Specifies the number of retries PSF/400 should attempt when
        trying to establish a session with a device. RETRY may be
        used for devices attached by APPC. This value is ignored
        for Twinax and TCP/IP. This parameter is designed for use
        with PSF Direct. If you are sharing a PSF Direct-attached
        printer with another PSF, then you may want to give
        consideration to how this value should be set. Valid values
        are 1-99 and *NOMAX (try forever). The default value is 2.
 
     i. RETRYDLY. Delay time between SNA retries.
        Specifies the number of seconds to wait between retry
        attempts to establish a session. This parameter
        applies to APPC-configured printers only. This parameter
        only applies if the RETRY parameter has a value greater
        than 0. This parameter is designed for use with PSF Direct.
        If you are sharing a PSF Direct-attached printer with
        another PSF, then you may want to give consideration to how
        this value should be set. Valid values are 0 -999 seconds.
        The default value is 0.
 
     j. INACTTMR. Inactivity timer.
        Specifies the length of time PSF/400 will maintain a
        session with the printer while there are no spooled files
        with a status of RDY. If the specified time elapses,
        PSF/400 closes the connection with the printer, which
        permits another PSF to use the printer. This parameter is
        used for APPC- and TCP/IP-attached printers only. Valid
        values are 1-30 minutes, *NOMAX (never close the
        connection), *SEC15 (15 seconds) and *SEC30 (30 seconds).

        The default value is *NOMAX.
 
     The remaining four parameters have already been made available
     by setting values in a data area accessed by PSF/400. They are
     made available through WRKAFP2.
 
     k. SBP. Suppress blank pages.
        Specifies that PSF/400 does not issue a blank page after
        every separator page and spool file copy that contains an
        odd number of pages. This parameter is used for the 3835
        and 3900 printers only. Valid values are *YES and *NO. The
        default value is *NO.
 
     l. PSC. Page size control.
        Specifies whether PSF/400 sets the page size (forms) in
        the printer. This parameter only applies to the 4224, 4230,
        4234, 4028, 6404, 6408, and 6412 printers. Valid values are
        *YES and *NO. If *YES is specified, the page size in the
        spooled file overrides the printer's configuration. The
        default value is *NO.
 
     m. DRF. Disable resident fonts.
        Specifies whether PSF/400 does not support the resident
        fonts on a printer that has resident fonts. If *YES is
        specified, PSF/400 will map resident font references to the
        equivalent host font and then download the host font to the
        printer. Valid values are *YES and *NO. The default value
        is *NO.
 
     n. DRR. Disable resource retention.
        Specifies if PSF/400 should delete page segments and
        overlays from the printer after printing a spooled file
        which references page segments and overlays. Valid values
        are *YES and *NO. The default value is *NO.
 
   2. Examples for using WRKAFP2
   -----------------------------
 
   This section gives examples of how to use WRKAFP2 for
   different printing requirements. The term printer is used to
   mean either an IBM IPDS printer which provides TCP/IP support
   or the i-data 7913 Printer LAN Attachment.
 
     a. Using WRKAFP2 to configure PSF/400 to use IPDS Passthrough
        for a Twinaxial-attached printer.
 
        WRKAFP2 DEVD(PRT3112) IPDSPASTHR(*YES)
 
        Changes to the printer device description are not required.
        Note that IPDSPASTHR(*YES) may be specified when printing
        on any connection: Twinaxial, APPC and TCP/IP.
 
     b. Using WRKAFP2 to configure PSF/400 to attach to a printer
        which provides TCP/IP support.
 
        WRKAFP2 DEVD(PRT3130) TCPIP(*YES) RMTSYS('9.5.12.102')
                PORT(5001)
 
        See the PTF cover letter for APAR SA44298 for additional
        configuration information.
 
     c. Using WRKAFP2 to configure PSF/400 on two or more AS/400s
        to continually share a TCP/IP-attached printer. The
        following must be done on each AS/400:
 
        WRKAFP2 DEVD(PRT3130) TCPIP(*YES) RMTSYS('9.99.12.112')
                PORT(5001) ACTTMR(*NOMAX) INACTTMR(5)
 
        This definition configures PSF/400 to wait forever
        ACTTMR(*NOMAX) to establish a connection with a printer.
        After making a connection, if there are no spooled files
        with a status of RDY on the output queue in use by PSF/400
        after 5 minutes, INACTTMR(5), then the connection with the
        printer is ended. PSF/400, however, will not end. As soon
        as a spooled file becomes RDY, PSF/400 will attempt to make
        a connection with the printer. The value specified for
        ACTTMR affect the length of time for which PSF/400 attempts
        to again make a connection with the printer.
 
        Note that while one AS/400 is printing, one or more AS/400s
        may be attempting to make a connection. As soon as an
        AS/400 ends the connection to a printer, another AS/400 can
        get a connection to the printer.
 
        See the PTF cover letter for APAR SA44298 for additional
        configuration information.
 
     d. Using WRKAFP2 to configure PSF/400 on two or more AS/400s
        to continually share a printer attached through the PSF
        Direct function provided by PSF/2 and PSF/6000.
 
        WRKAFP2 DEVD(PSFD3900) RETRY(*NOMAX) RETRYDLY(60)
                INACTTMR(*SEC30)
 
        This definition configures PSF/400 to make an infinite
        number of attempts, RETRY(*NOMAX), to establish a
        connection with PSF/2 or PSF/6000. PSF/400 will pause
        60 seconds, RETRYDLY(60), between each attempt to
        establish a connection. After making a connection, if
        there are no spooled files with a status of RDY on the
        output queue in use by PSF/400 after 30 seconds,
        INACTTMR(*SEC30), then the connection with the printer is
        ended. However, PSF/400 will not end. As soon as a spooled
        file becomes RDY, PSF/400 will attempt to make a connection
        with the printer. The values specified for RETRY and
        RETRYDLY affect the length of time for which PSF/400
        attempts to again make a connection with the printer.
 
        Note that while one AS/400 is printing, one or more AS/400s
        may be attempting to make a connection. As soon as an
        AS/400 ends the connection to a printer, another AS/400 can
        get a connection to the printer.
 
        Changes to the printer device description are not required.
 
   3. Data area migration concerns
   -------------------------------
 
   You may already be using a data area to control some aspects of
   AFP printing. WRKAFP2 will automatically migrate that data area

   to the new one required to configure for the above-mentioned new
   functions. This is necessary if the existing data area is not of
   the correct size.
 
   A data area will be migrated if the following conditions exist:
 
     a. The data area specified for DEVD in WRKAFP2 exists in
        library QGPL.
     b. The first eight bytes of the data area are set to WWPDTRHR.
 
   The migration performed by WRKAFP2 involves the following steps:
     a. Save the value stored within the existing data area.
     b. Delete the existing data area.
     c. Create a new data area of the correct size.
     d. Copy the values from the old data area to the new data
        area.
     e. Add any new values you have specified to the new data area.
 
   4. Reference Codes returned by QPQXWAFP.
   ----------------------------------------
   Listed below are the reference codes that can be returned by
   QPQXWAFP. An explanation for each code is given.
 
   Reference code   Explanation
   --------------   -----------
   QPQXWAFP 0001    You gave a blank value for DEVD. Use WRKAFP2
                    again and specify a nonblank value for DEVD.
   QPQXWAFP 0002    You specified TCPIP(*YES) but did not give a
                    value for RMTSYS. Use WRKAFP2 again and specify
                    a value for RMTSYS.
   QPQXWAFP 0003    You specified TCPIP(*YES) but did not give a
                    value for PORT. Use WRKAFP2 again and specify a
                    value for PORT.
   QPQXWAFP 0004    You specified PRINTONLY(*YES) but the specified
                    data area could not be found. Use WRKAFP2
                    again, specifying a data area created by
                    QPQXWAFP.
   QPQXWAFP 0005    QPQXWAFP was unable to open a spooled file for
                    output. Review the messages in your job log for
                    additional information.
   QPQXWAFP 0006    QPQXWAFP was unable to write to the spooled
                    file it had opened. Review the messages in your
                    job log for additional information.
   QPQXWAFP 0007    QPQXWAFP was unable to close the spooled file
                    it was using. Review the messages in your job
                    log for additional information.
   QPQXWAFP 0009    You specified PRINTONLY(*YES) but the specified
                    data area could not be interpreted by QPQXWAFP.
                    This means that the data area was not created
                    by QPQXWAFP. Delete the data area, DLTDTAARA,
                    and then use QPQXWAFP to create the data area.
   QPQXWAFP 0009    The data area to be migrated does not have the
                    first eight bytes set to WWPDTRHR. Delete the
                    data area, DLTDTAARA, and then run WRKAFP2.
   QPQXWAFP 0010    The caller of QPQXWAFP does not have authority
                    to the data area specified for DEVD.
   QPQXWAFP 9999    An existing data area was successfully migrated
                    to a new data area.
 
   If a data area is successfully created or changed (but not
   migrated), a reference code is not issued by QPQXWAFP.
 
   5. How to copy the source code for a suggested command
      interface to QPQXWAFP into a physical file.
   ---------------------------------------------------------------
   These instructions assume you have a source physical file
   named QCLSRC.
 
     a)  WRKMBRPDM QGPL/QCMDSRC
 
     b)  Press F6 to create a new member.  Name it WRKAFP2 and
         the type is CMD. Give it a meaningful description. Press
         Enter.
 
     c)  You now have the SEU edit screen.  Press F15 to
         Browse/Copy member.
 
     d)  Select:
              Selection:         1 = Member
              Copy all records:  N
              Member:            QSF24144
              File:              QAPZCOVER
              Library:           QGPL
        Press Enter.  This should give you a split screen.
 
     e)  At the command line for the screen type F WRKAFP2: CMD and
         press Enter. After the character string is located, press
         F16 two times. You will see a line that begins
         "WRKAFP2: CMD". Type a CC in the control space at the
         beginning of the line.
 
     f)  Now go to the end of the program. Type B at the command
         line to go to the end of the member. Type a CC in that
         line.
 
     g)  Move the cursor back to the new member you are creating
         and type an "A" at the first line.  Press Enter.
 
     h)  Press F12 to end the split screen.  F3 to end the edit
         session and Enter to save the new source.
 
     i)  You must now compile the command. Use the following to
         compile your command:
 
         CRTCMD CMD(QGPL/WRKAFP2) PGM(QSYS/QPQXWAFP)
                SRCFILE(QGPL/QCMDSRC)
 
     After the command successfully compiles, you are ready to use
     the WRKAFP2 command. In order that the values specified by the
     use of WRKAFP2 take effect, you must perform the following:
 
       1. End PSF/400 (ENDWTR), if it is active.
       2. Use WRKAFP2 to set the values.
       3. Start PSF/400 (STRPRTWTR).
 
     Values specified with WRKAFP2 take effect only when PSF/400
     is started (STRPRTWTR).
 
   6. How to compile the suggested command interface.
 
      CRTCMD CMD(QGPL/WRKAFP2) PGM(QSYS/QPQXWAFP)
             SRCFILE(my_lib/QCMDSRC)
 
   7. Source code for a suggested command interface to QPQXWAFP

   ------------------------------------------------------------
 
    WRKAFP2: CMD    PROMPT('Work with AFP 2.0')
            PARM  KWD(DEVD) TYPE(*NAME) LEN(10) RSTD(*NO) +
                       MIN(1) MAX(1) DTAARA(*YES) EXPR(*YES) +
                       VARY(*NO) PASSATR(*NO) PROMPT('Printer +
                       device name')
            PARM  KWD(PRINTONLY) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)  +
                       SPCVAL((*YES Y) (*NO N)) +
                       PROMPT('Print data area only')
            PARM  KWD(IPDSPASTHR) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)  +
                       SPCVAL((*YES Y) (*NO N)) +
                       PROMPT('IPDS pass through')
            PARM  KWD(TCPIP) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)  +
                       SPCVAL((*YES Y) (*NO N)) +
                       PROMPT('TCP/IP support')
            PARM  KWD(RMTSYS) +
                       TYPE(*CHAR) LEN(255) MIN(0) MAX(1) +
                       PMTCTL(TCPIP) +
                       PROMPT('Remote system')
            PARM  KWD(PORT) +
                       TYPE(*INT4) RSTD(*NO) +
                       RANGE(1 65535) MIN(0) MAX(1) +
                       FULL(*NO) EXPR(*YES) +
                       PASSATR(*NO) +
                       PMTCTL(TCPIP) +
                       PROMPT('Port')
            PARM   KWD(ACTTMR) +
                       TYPE(*INT4) +
                       RANGE(1 2550)  SPCVAL((*NOMAX 0)) +
                       MIN(0) MAX(1)         +
                       DFT(170)     +
                       PMTCTL(TCPIP) +
                       PROMPT('Activation timer')
            PARM  KWD(RETRY) +
                       TYPE(*INT2) RSTD(*NO) DFT(2)  +
                       RANGE(1 99) MIN(0) MAX(1) +
                       SPCVAL((*NOMAX X'FFFF')) +
                       FULL(*NO) EXPR(*YES) +
                       PASSATR(*NO) +
                       PMTCTL(TCPIPNO) +
                       PROMPT('APPC retry count')
            PARM  KWD(RETRYDLY) +
                       TYPE(*INT2) RSTD(*NO) DFT(0)  +
                       RANGE(0 999) MIN(0) MAX(1) +
                       FULL(*NO) EXPR(*YES) +
                       PASSATR(*NO) +
                       PMTCTL(TCPIPNO) +
                       PROMPT('Delay between APPC retries')
            PARM   KWD(INACTTMR) +
                       TYPE(*INT4) +
                       RANGE(1 30) +
                       MIN(0) MAX(1)            +
                       DFT(*NOMAX) +
                       SPCVAL((*NOMAX 0) (*SEC15 254) +
                              (*SEC30 255)) +
                       PROMPT('Inactivity timer')
            PARM  KWD(SBP) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)     +
                       SPCVAL((*YES Y) (*NO N)) +
                       PMTCTL(*PMTRQS) +
                       PROMPT('Suppress blank pages')
            PARM  KWD(PSC) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO) +
                       SPCVAL((*YES Y) (*NO N)) +
                       PMTCTL(*PMTRQS) +
                       PROMPT('Page size control')
            PARM  KWD(DRF) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)  +
                       SPCVAL((*YES Y) (*NO N)) +
                       PMTCTL(*PMTRQS) +
                       PROMPT('Disable resident fonts')
            PARM  KWD(DRR) +
                       TYPE(*CHAR) LEN(1) MIN(0) MAX(1) +
                       FILE(*NO) RSTD(*YES) DFT(*NO)  +
                       SPCVAL((*YES Y) (*NO N)) +
                       PMTCTL(*PMTRQS) +
                       PROMPT('Disable resource retention')
   TCPIP:   PMTCTL     CTL(TCPIP) COND((*EQ Y))
   TCPIPNO: PMTCTL     CTL(TCPIP) COND((*EQ N))
            PMTCTL     CTL(PRINTONLY) COND((*EQ N)) LGLREL(*AND)


Default Instructions


   THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.

Supersedes


PTF/FIX NO(S).  APAR TITLE LINE
--------------  -----------------------------------------------------------
     NONE

Summary Information

System................. AS/400
Models................. *ALL
Release................ V3R1M0
Recompile.............. N
Library................ QSYS
MRI Feature............ NONE



IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright (c) 1994, 1995, 1996 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.