About CICS Printers

Mainframe CICS supports two main kinds of printing over TN3270 connections: SNA Character Stream (also called SCS or LU1) and 3270 datastream (also called 3270DS or LU3). SCS is similar to many PC printer languages; it combines output text with control sequences. 3270DS uses the same 3270 output operations as a 3270 terminal, so printer output is formatted as a series of pages that correspond to screens of terminal output. (Of course input fields in the 3270 output have no effect for 3270DS print operations.) Enterprise Server for .NET supports both types of printer devices.

Mainframe CICS lets printer devices connect to the region in the same way that terminals do. If the printer client doesn't request a particular terminal name, it will be assigned one that corresponds to a suitable terminal model and terminal type. The printer client can also request a specific "device name" or "LU name". If there is a terminal definition installed in the region with a netname that matches the requested name, and that terminal isn't already attached, and it refers to a printer-type device, then the printer will be given that terminal ID. Usually printers are connected to a specific terminal ID this way so print output can be sent to them, for example by doing an EXEC CICS START specifying the printer's terminal ID as the facility, to start a task that writes to the printer with EXEC CICS SEND.

Mainframe CICS also lets a printer device connect with a request to "associate" itself with an existing terminal session, so that print output from transactions started by that terminal will automatically go to the associated printer. Enterprise Server for .NET does not currently support the printer-association feature.

TN3270 printer clients usually can send their output to any printing output destination available on the system where they're running, including virtual printers such as "print to file" destinations. See the documentation for your TN3270 software for more information.

Selecting the printer type

In Enterprise Server for .NET, each connected printer client only handles one type of output, either SCS or 3270DS. Applications that generate print output are almost always written to support only one of the two data streams, so you will need to configure your CICS printers to use the data stream your applications require. (If you have a mix of SCS and 3270DS applications, you can configure two or more printer clients. Multiple printer clients can print to the same physical printer.)

The "classic" TN3270 protocol only supports 3270DS printers. Clients connecting using this protocol will always be 3270DS.

Most TN3270 client software supports the newer TN3270E protocol, which includes SCS support. During TN3270E negotiation, clients can tell the region whether they support SCS, 3270DS, or both. If a client only supports one datastream, it will connect as that type of printer.

If a client announces that it supports both SCS and 3270DS, Enterprise Server for .NET determines what kind of printer it will be:

  1. If the printer does not ask to connect as a specific terminal (by sending a "device name" or "LU name"), it will be a 3270DS printer by default.
  2. If the device name sent by the printer matches a CICS terminal definition's netname attribute, and that terminal definition specifies a CICS TypeTerm (terminal type) resource, and the TypeTerm has a device type attribute of "SCSPRINT", "3790", or "3270P1", then the printer will be an SCS printer. (All three attribute values have the same meaning. They are defined as synonyms for compatibility with mainframe CICS and native Enterprise Server.)
  3. Otherwise, the printer will be a 3270DS printer.

So to use SCS printing, you need a TN3270 client that supports the TN3270E protocol and SCS printing, and you need to define a TypeTerm and Terminal in the resources for the CICS region.