Bibliography

Linux

In general, documentation on Linux can be obtained from
The Linux Documentation Project. Among it's many resources are the following documents that
assisted us in setting up the Linux lpd print service for our print-to-email proof-of-concept.

The "Linux Printing" HOWTO is a collection of information describing how to generate,
preview, print and fax anything under Linux. This document provided a lot of the instruction
on how to set up lpr and lpd, and introduced us to the concept of a
pseudo-printer (although not in those words).

The "Linux Printing Usage" HOWTO describes how to use the line printing spooling
subsystem provided with the Linux operating system and is a supplement document to the
"Linux Printing" HOWTO. This document added to our understanding of how lpd
worked, and gave us enough information to craft our own print filters.

The "Bash Programming Introduction" HOWTO provides instruction on writing basic to
intermediate shell scripts. Our print filter was written in Bash script language; this document
introduces the language concepts, and can be used as a basis for learning how to write Bash
scripts.

The "Linux Mail User" HOWTO introduces the concepts and facilities of electronic mail
in a Linux system. It focuses on user-level issues and typical configurations for a Linux home or
small business email server.

The "Linux Electronic Mail Administrator" HOWTO describes the setup and maintenance of
electronic mail in a Linux system. It is primarily intended for system administrators who have to
configure and maintain a Linux-based email system.

OS390/MVS (JES2, Batch, IMS, CICS)

IBM keeps an extensive online library of all their
documentation at their Boulder, Colorado server. This site provides public access to the many manuals
we used on the host side.

This manual describes the specifics of each MVS Job Control Language command, and was the
resource we used to determine which JCL parameters would be required to set the JES2 flash page
contents for our print-to-email filter. In particular, we used two chapters
(
"Chapter 22: OUTPUT JCL Statement" and
"Chapter 12: DD Statement") to determine the exact requirements of the batch
processing JCL.

This manual provides a user's view of MVS Job Control Language, discussing how JCL statements
are combined into runnable JOBs. Of interest in this manual is
"Chapter 22: SYSOUT Resources - Processing Control"
which discusses the use of the // OUTPUT statement in batch jobs.

The "TSO/E Command Reference" describes the syntax, functions and commands of the
TSO/E command language. In
"Section 1.56: The OUTDES Command", the manual describes the syntax
and parameters of the OUTDES command, which is used to create or reuse a
dynamic output descriptor. This is of interest to us because the IMS and
CICS interfaces to the MVS spooling system require parameters in the form
accepted by the OUTDES command described here.

The "IMS Version 7 Utilities Reference: System" is intended to help the mainframe programmer or
IMS system programmer maintain IMS facilities and application programs.
Section 1.2: Program Specification
Block (PSB) Generation discusses the content and creation of the PSB, including the specifications for
building a PSB that contains the non-express modifiable alternate PCB necessary for use in the SPOOL API.

The "IMS Application Programming: Design Guide" is intended to help the mainframe programmer design
IMS Application programs. Appendix A:
IMS Spool API Overall Design discusses the design of the Spool API and programs that use it. It is this Spool
API that our IMS programs used to generate their emailed reports.

This book gives guidance in the design and construction of CICS transaction programs.
Section 5.6: "Chapter 32:
CICS Interface to JES" discusses the design of applications that use the CICS SPOOL API
(SPOOLOPEN/SPOOLWRITE/SPOOLCLOSE) to spool output to JES.

This book describes the CICS Transaction Server for OS/390 EXEC application programming interface.
Here, we found descriptions of the various CICS EXEC calls used to generate output into the JES spool.
Of interest were
Section 1.229: "SPOOLOPEN OUTPUT", which described the format and parameters of the
EXEC SPOOLOPEN used to connect to the JES2 spool,
Section 1.231:
"SPOOLWRITE", which described the format and parameters of the EXEC SPOOLWRITE call
used to write report lines to the output spool, and
Section 1.227:
"SPOOLCLOSE" describes the format and parameters of the EXEC SPOOLCLOSE call used to terminate
the connection to JES and release the written report.