ITEM: AL6877L

Printing from MVS to PSF/6000


ENV:
        AIX 3.2.5
        PSF/6000 V 1.2
        MVS mainframe

DESC:
        I want my MVS print jobs to go from the mainframe to
        the RS/6000 to be printed by PSF/6000.  I was told that
        I needed to modify the mainframe's JES3 exit table without
        changing my JCL.  How can this be accomplished?

          On PSF/6000 V2.1
        there is a README file /usr/lpp/psf/npf/README.NPF
        which contains information on making the MVS machine
        a NPF (Network Print Facility) client to an RS/6000
        server.  This requires that you have TCP/IP for MVS
        Network Print Facility version 3.1.  Below is the
        readme file.  

**********************************************************
Printing from an MVS Client Through Network Print Facility
 To print from an MVS system to PSF/6000 using Network Print Facility
(NPF), you must have IBM TCP/IP for MVS Version 3 Release 1 with the
Network Print Facility (program number 5655-HAL) installed and
customized.  Also, you must install on your MVS system the NPF input
record exit that is provided with this PTF.
 The Network Print Facility (NPF) feature of IBM TCP/IP allows you
to print MVS JES spool files and VTAM application data through
PSF/6000.  For more information about how NPF works, see
IBM TCP/IP for MVS:  Network Print Facility (SC31-8074).
 You might want to access and use Advanced Function Printing (AFP)
resources that are stored on your MVS system through the Network File
System (NFS) mount command.  See page 328 of the PSF/6000 Print
Administration publication (S544-3817-01) for information on using
the NFS mount command.
 This section describes:
   * Installing the NPF Input Record Exit
  * Configuring NPF for Printing
  * How the Input Record Exit Passes Options from MVS
  * Passing JES Spool Data
  * Passing VTAM Application Data
 Installing the NPF Input Record Exit
 To install the Network Print Facility Input Record Exit, you must
perform these tasks:
  1. Use file transfer protocol (FTP) or any other file transfer
    method to move the tcpppex1 file from the /usr/lpp/psf/utils
    directory to a fixed block sequential data set on the MVS
    system where the Network Print Facility will run.
     To perform this task using FTP on the MVS host, establish an
    FTP session to your AIX system and issue the following
    subcommands:
     A.  binary
    B.  mode s
    C.  locsite file=seq rec=fb blocksize=3120 lr=80
    D.  cd /usr/lpp/psf/utils
    E.  get tcpppex1 'data set'
     where 'data set' is the fully qualified MVS data set name.
    Note that this data set should not be preallocated. If it is,
    you must specify:
               (replace
     at the end of the 'get' subcommand.
  2. Put the TCPPPEX1 file into an MVS library that is referred to
    by either an NPF JOBLIB or STEPLIB entry, or a LINKLST entry.
     To perform this task, use the TSO RECEIVE command displayed below:
              receive indsname('data set')
     where 'data set' is the fully qualified MVS data set name.
     MVS provides a response similar to the following:
              DATASET USER.LINKLIB FROM USER40 ON MVS1
             MEMBERS:  TCPPPEX1
             ENTER RESTORE PARAMETERS OR 'DELETE' OR 'END' +
     Then you must specify the MVS load library where 'TCPPPEX1'
    will reside:
              dsn('MVS load library(tcpppex1)')
     where 'MVS load library' is the fully qualified MVS load library.
    This MVS load library must have a block size of at least
    23200 bytes and the location should not be a partitioned data set
    extended (PDSE).  If the location is a PDSE, you must receive
    the data set into a PDS and then copy the module into the PDSE.
     MVS provides a list of IEBCOPY messages, which should end with the
    following if the file has been successfully received:
             IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE
 Once you receive this message, the NPF input record exit has been
copied successfully to an MVS load library.
 Configuring NPF for Printing
 To configure Network Print Facility so it can print data from JES
spool and VTAM applications to PSF/6000, perform these tasks:
  1. Create an options file that specifies TCPPPEX1 as the input
    record exit (input-rec-exit= TCPPPEX1) and the binary option
    (LPR options= BINARY).  You should not specify any other LPR
    options when directing print to a PSF/6000-owned printer
    because they can take away storage required to pass other
    options.
  2. Create the routing file for printing to a PSF/6000 print queue
    on your AIX system.
     The routing file specifies where the JES spool output or VTAM
    application data will be printed.  Enter the name of the options
    file that you created in step 1.  For more information about how
    to create the routing file, see IBM TCP/IP for MVS:  Network
    Print Facility.
 How the Input Record Exit Passes Options from MVS
 The Input Record Exit builds a series of options that are passed to
PSF/6000.   These options are built in a particular order within a
fixed length area.
 Some options that the exit attempts to build might not fit within
the fixed length area.  Also, the options that can fit in the area
for a particular job can vary, depending upon the values that were
specified when the job was submitted.
 The input record exit adds these options in priority order, using
the minimum value of each option keyword.  If an option does not
fit in the fixed length area, the input record exit tries the other
options in an attempt to send as many options as possible to PSF/6000.
 For example, the 'building' option (-obu) is normally added prior to
the 'department' option (-ode).  However, if only 10 bytes remain in
the options area and the following two options are available for
'building' and 'department':
                  -obu=transport
                 -ode=cars
 the Input Record Exit omits the 'building' option because it is too
long, but adds the 'department option' because enough space remains
in the fixed length area required by this particular department option.
 The NPF input record exit passes PSF/6000 two types of options:
(1) Options that affect the format of printed output and
(2) Options that provide data to the PSF/6000 exits.
If all of the options that can affect printing do not fit in the fixed
length area, the input record exit issues a write to operator (WTO) with
the text:
            TCPPPEX1:  OPTION AREA TOO SHORT
 Also, the input record exit returns a non-zero return code to NPF.
The non-zero return code causes NPF processing to terminate. If you
receive this WTO, you can create more space for the options that affect
printing by shortening the internet name or the printer name that you
specified in the routing file.  If you have specified options other
than binary when creating the options entry, you should remove
those options too.
 The following table displays the order in which the NPF input record
exit passes options when processing line data from JES spool
on an MVS system to PSF/6000.  Note that the first 11 options passed
affect the format of printed output, while the next 14 provide data
to the exits.  You cannot modify either the -odatat=l value
or the ofileformat=record value.
 +----------------------------+--------------------+
| PRIORITY ORDER FOR LINE DATA FROM JES SPOOL     |
+-------------------------------------------------+
| PSF/6000 -o OPTION         | MINIMUM VALUE      |
+----------------------------+--------------------+
| 1.    -odatatype=line      | -odatat=l          |
+----------------------------+--------------------+
| 2.    -ofileformat=record  | -ofileformat=record|
+----------------------------+--------------------+
| 3.    -occ=                | -occ=              |
+----------------------------+--------------------+
| 4.    -occtype=            | -occtype=          |
+----------------------------+--------------------+
| 5.    -ochars=             | -ochars=           |
+----------------------------+--------------------+
| 6.    -opagedef=           | -opagedef=         |
+----------------------------+--------------------+
| 7.    -otrc=               | -otrc=             |
+----------------------------+--------------------+
| 8.    -oprmode=            | -oprmode=          |
+----------------------------+--------------------+
| 9.    -oformdef=           | -of=               |
+----------------------------+--------------------+
| 10.   -ocopies=            | -ocop=             |
+----------------------------+--------------------+
| 11.   -odatack=            | -odatac=           |
+----------------------------+--------------------+
| 12.   -ojobname=           | -ojobn=            |
+----------------------------+--------------------+
| 13.   -ouserid=            | -ous               |
+----------------------------+--------------------+
| 14.   -onodeid=            | -ono=              |
+----------------------------+--------------------+
| 15.   -oname=              | -ona=              |
+----------------------------+--------------------+
| 16.   -oprogrammer=        | -opr=              |
+----------------------------+--------------------+
| 17.   -obuilding=          | -obu=              |
+----------------------------+--------------------+
| 18.   -odepartment=        | -ode=              |
+----------------------------+--------------------+
| 19.   -oroom=              | -oro=              |
+----------------------------+--------------------+
| 20.   -otitle=             | -oti=              |
+----------------------------+--------------------+
| 21.   -opassthru=          | -opa=              |
|                            |                    |
|          segmentid=        | segmentid=         |
|          forms=            | forms=             |
|          class=            | class=             |
|          destination=      | destination=       |
+----------------------------+--------------------+
| 22.   -oaddress1=          | -oaddress1=        |
+----------------------------+--------------------+
| 23.   -oaddress2=          | -oaddress2=        |
+----------------------------+--------------------+
| 24.   -oaddress3=          | -oaddress3=        |
+----------------------------+--------------------+
| 25.   -oaddress4=          | -oaddress4=        |
+----------------------------+--------------------+
 The following table displays the order in which the NPF input record
exit passes options when processing MO:DCA data from JES spool
on an MVS system to PSF/6000.  Note that the first four options passed
affect the format of printed output, while the next 14 provide data
to the exits.  You cannot modify the -odatat=af value.
 +---------------------------+-----------------+
|PRIORITY ORDER FOR MO:DCA DATA FROM JES SPOOL|
+---------------------------------------------+
| PSF/6000 -o OPTION        | MINIMUM VALUE   |
+---------------------------+-----------------+
| 1.    -odatatype=afpds    | -odatat=af      |
+---------------------------+-----------------+
| 2.    -oformdef=          | -of=            |
+---------------------------+-----------------+
| 3.    -ocopies=           | -ocop=          |
+---------------------------+-----------------+
| 4.    -odatack=           | -odatac=        |
+---------------------------+-----------------+
| 5.    -ojobname=          | -ojobn=         |
+---------------------------+-----------------+
| 6.    -ouserid=           | -ous            |
+---------------------------+-----------------+
| 7.    -onodeid=           | -ono=           |
+---------------------------+-----------------+
| 8.    -oname=             | -ona=           |
+---------------------------+-----------------+
| 9.    -oprogrammer=       | -opr=           |
+---------------------------+-----------------+
| 10.   -obuilding=         | -obu=           |
+---------------------------+-----------------+
| 11.   -odepartment=       | -ode=           |
+---------------------------+-----------------+
| 12.   -oroom=             | -oro=           |
+---------------------------+-----------------+
| 13.   -otitle=            | -oti=           |
+---------------------------+-----------------+
| 14.   -opassthru=         | -opa=           |
|                           |                 |
|          segmentid=       | segmentid=      |
|          forms=           | forms=          |
|          class=           | class=          |
|          destination=     | destination=    |
+---------------------------+-----------------+
| 15.   -oaddress1=         | -oaddress1=     |
+---------------------------+-----------------+
| 16.   -oaddress2=         | -oaddress2=     |
+---------------------------+-----------------+
| 17.   -oaddress3=         | -oaddress3=     |
+---------------------------+-----------------+
| 18.   -oaddress4=         | -oaddress4=     |
+---------------------------+-----------------+
 The following table displays the order in which the NPF input record
exit passes options when processing data from VTAM applications
on an MVS system to PSF/6000.  Note that all data passed affects
the format of printed output.  You cannot modify these values.
 +-------------------------------------+------------+
|     PRIORITY ORDER FOR VTAM APPLICATION DATA     |
+----------------------------+---------------------+
| PSF/6000 -o OPTION         | MINIMUM VALUE       |
+----------------------------+---------------------+
| 1.  -odatatype=line        | -odatat=l           |
+----------------------------+---------------------+
| 2.  -ofileformat=record    | -ofileformat=record |
+----------------------------+---------------------+
| 3.  -occ=yes               | -occ=yes            |
+----------------------------+---------------------+
| 4.  -occtype=a             | -occtype=a          |
+--------------------------------------------------+
 Passing JES Spool Data
 When you install the NPF Input Record exit supplied with PSF/6000,
NPF passes job-related options to PSF/6000 for controlling printing
and providing exit information.
 The output sent to PSF/6000 from the JES spool can be either 370-mode
line data, a MO:DCA data stream, or a combination of the two types of
data. When the NPF input record exit passes line data or a combination
of line data and MO:DCA data, PSF/6000 uses a page definition to
translate the 370 line data into a MO:DCA data stream through the
AFP Conversion and Indexing Facility (ACIF).
 There are some considerations that you should note when using NPF
to pass JES data to PSF/6000:
      --ACIF does not use inline page or form definitions.
           If a page definition or form definition of DUMMY has been
          specified on the job's JCL, ACIF attempts to locate a
          resource by that name rather than using an inline resource.
      --The input record exit ignores NPF options file entries
       for both COPIES and CC (carriage control).
           The exit obtains these options from the MVS system.
      --The COPIES option contains a transmission count only.
           If the job's JCL has specified one or more group-values
          and no transmission count, the input record exit defaults
          this value to 1.
 Passing VTAM Application Data
 NPF translates VTAM application data to equivalent 370 line-mode data
before transferring the data to PSF/6000 for printing.
 There are some considerations that you should note when using NPF
to pass VTAM application data to PSF/6000:
      --The NPF input record exit does not provide double-byte
       printing options to pass to PSF/6000.
      --The input record exit ignores any NPF options file entry
       for CC (carriage control)
      --When passing VTAM application data to PSF/6000, note that
       ACIF requires a page definition to process line data.
           Therefore, you must provide a page definition through
          the print queue on AIX/6000. For more information on
          performing this task, see "Creating a Print Queue for
          VTAM Application Data" below.
 Creating a Print Queue for VTAM Application Data
 Creating a print queue with a default page definition for VTAM
application data is a two-step process involving:
      1.  Creating a local queue
     2.  Adding more queue devices for PSF/6000 printers
 Creating a Local Queue
 The first step is to create a print queue with a default page definition.
When you define a printer to PSF/6000, a print queue is defined at the
same time.  The following procedure adds an additional print queue for
the same printer and allows you to specify PSF/6000 processing defaults
for the queue.
 Note:  You must have 'printq' group authority to perform this procedure.
 To set up a queue with a default page definition:
   1.  At the AIX command-line prompt, enter:
              smit mklque
       SMIT displays the 'Add a Local Queue' panel.
  2.  From the 'Add a Local Queue' panel, enter the name of the queue
     that you want set up with a default page definition in the 'NAME
     of Queue to add' field.
  3.  Ensure that the 'ACTIVATE the queue' field is set to 'yes'. If
     necessary, press F4 to get a selection list (ASCII interface) or
     use the Up Arrow or Down Arrow ring icons (AIXwindows interface)
     to change the setting.
  4.  Enter a device name, such as 'dev1', in the 'NAME of device to add'
     field.
  5.  Change the 'BACKEND program pathname' field to the following:
    /usr/lpp/psf/bin/ainbe printername pagedef=pagedefname
     where 'printername' is the name of the original PSF/6000 print
    queue and 'pagedefname' is the name of a PSF/6000 page definition.
    The field scrolls to the right as you type to accommodate the
    width of the entry.
  NOTE:  When you added a printer to PSF/6000 using the SMIT
        'ADD a PSF/6000 Printer' panel, you specified a name
        for that printer, for example, '3825A.'  PSF/6000
        defines a printer with the name '3825A' and also adds
        a queue to the configuration file, '/etc/qconfig,' with
        the name '3825A.'
         When you create another queue (for example, 3825AS)
        with a default page definition, the backend program
        requires a printer name.  Use the name that was first
        defined to PSF/6000 (in this case, '3825A').  Now there
        are two queues (in this example, '3825A' and '3825AS').
  6.  Press Enter (ASCII interface) or select 'DO' (AIXwindows interface).
  7.  Exit SMIT.
 Note that you can perform the same tasks from the command line
by issuing:
       1.  mkque -qQname
 where 'Qname' indicates the new print queue name, and
       2. mkquedev -qQname -d'dev1' -a"backend = "'/usr/lpp/psf/bin/ainbe
         printername pagedef=pagedefname'
 where 'Qname' specifies the PSF/6000 queue name, 'dev1' specifies the
device name, 'printername' specifies the printer, and 'pagedefname'
indicates a page definition.
 Adding More Queue Devices for PSF/6000 Printers
 If you have just created an additional queue for a PSF/6000 printer, you
may want to add more queue devices to this queue.  Each queue device you
define, however, uses some AIX/6000 system memory.
 To add a queue device for the queue you created, follow these steps:
  1.  At the AIX command-line prompt, enter:
      smit mkquedev
      SMIT displays the 'Add a Device to an Existing Queue' panel.
  2.  From the 'Add a Device to an Existing Queue' panel, enter the name
     of the device to add (for example 'dev2') in the 'NAME of device
     to Add' field.
  3.  Enter the name of the queue you just created in the previous
     procedure in the 'QUEUE to which to attach device' field.
  4.  Change the 'BACKEND program pathname' field to the following:
      /usr/lpp/psf/bin/ainbe printername pagedef=pagedefname
     where 'printername' is the name of the PSF/6000 print queue
    and 'pagedefname' is the name of a PSF/6000 page definition.
    The field scrolls to the right as you type to accommodate
    the width of the entry.
  5.  Press Enter (ASCII interface) or select 'DO' (AIXwindows interface).
      SMIT modifies the configuration file -- '/etc/qconfig' -- to include
     a new queue device for an incoming data type of line.
  6.  Exit SMIT.
 The number of devices for a given queue should match the number of
devices that you specified when you configured the PSF/6000 printer.
For more information about configuring PSF/6000 printers, refer to the
PSF/6000 Print Administration publication.
 Note that you can perform the same task from the command line
by issuing:
     mkquedev -qQname -d'dev2' -a"backend = "'/usr/lpp/psf/bin/ainbe
    printername pagedef=pagedefname'
 where 'Qname' specifies the PSF/6000 queue name, 'dev2' specifies the
device name, 'printername' specifies the printer, and 'pagedefname'
indicates a PSF/6000-supplied page definition.

        Also, you will NEED to follow instructions
        found in IBM TCP/IP for MVS Network Print Facility V3.1
        since all of the configuration is for TCP/IP for MVS.

        From Announcement letter 294529 :

        TCP/IP for MVS 
        Product number 5655-HAL
        Supported by Networking Family of Services 
                800-426-5148



Support Line: Printing from MVS to PSF/6000 ITEM: AL6877L
Dated: July 1995 Category: N/A
This HTML file was generated 99/06/24~13:30:26
Comments or suggestions? Contact us