by Bridget Meyer, First appeared in January/February 1999 issue of AS/400 Network Expert
Do you want to send network printouts to your AS/400 printers without using Client Access or any other commercial software? Do you want to share your office PC printer with your coworkers on the LAN even though your PC may be low on the disk space needed for spooling printouts? If so, you may want to take advantage of the AS/400 Support for Windows Network Neighborhood (AS/400 NetServer) to handle your print serving needs. With OS/400 V4R2 or later and the print-sharing capabilities in your Microsoft Windows desktops--Windows for Workgroups (WFW), Windows 95, Windows 98, and Windows NT—you can use AS/400 NetServer to seamlessly integrate AS/400 output queues with your network. NetServer allows you to use your AS/400 as a network print server, redirecting PC and network printouts to any available printer on the network, regardless of whether or not that printer is attached to your AS/400.
AS/400 NetServer takes advantage of the print-sharing capability in a Windows desktop environment by enabling the X/Open Company's industry-standard Server Message Block (SMB) protocol inside OS/400. To use your AS/400 to route network printouts to PC printers using SMB, you only need to have two things configured in your network:
- The PCs must be configured to use the Client for Microsoft Networks component in their Windows desktop Network setup.
- Both your AS/400 and the PCs the printers are attached to must be configured to use TCP/IP.
On the client, TCP/IP and the Client for Microsoft Networks component are both included with Windows 95, Windows 98, Windows NT and Windows for Workgroups. Once this basic configuration is in place, you can begin using AS/400 NetServer to route network printouts from your network to your OS/400 to a directly attached AS/400 printer or a PC printer attached to a networked PC.
OS/400's native print server software
The AS/400 Network Print Server is used by AS/400 NetServer to spool print jobs to AS/400 output queues. OS/400 output queues can be configured for printers that are directly attached to an AS/400, a LAN-attached printer, or a printer attached to a PC in the network. The Network Print Server has been handling the print serving needs for the AS/400 since the first OS/400 release in June 1988. Once AS/400 NetServer has spooled a print job onto an AS/400 output queue (with the help of the Network Print Server), the Network Print Server independently handles routing the spooled file to the destination printer based on the configuration of the writer. The IBM AS/400 Printing IV (GG24-4389-00) Redbook has more information about printing on the AS/400. This manual can accessed at the IBM Redbook Web page at http://www.redbooks.ibm.com.
While there are many ways to set up AS/400 NetServer in combination with Network Print Server to handle your network print serving needs, I will only examine two possible AS/400 NetServer printing scenarios in this article:
- Sending Windows printouts via NetServer to an Advanced Function Presentation (AFP) directly attached to the AS/400
- Sending Windows printouts via NetServer to a remote ASCII printer (such as a IBM 4029 LaserPrinter) attached to a PC in the network
Using AS/400 NetServer to share these printers with Windows desktop clients consists of three steps:
- Create an OS/400 output queue to direct spooled-file output to your AFP or PC-attached printer. For printers attached to a TCP/IP PC, you must also have a Line Printer Daemon (LPD) output queue configured and running on the printer PC. The LPD output queue accepts spooled-file output from the network and prints it on an attached printer.
- Use AS/400 Operations Navigator to create a network printer share for the AS/400 output queue you created in step one. This allows your networked PCs to use the output queue.
- Configure your client PCs to use AS/400 NetServer to send printer output to the target printer via your AS/400 output queue
Setting up your AS/400-to-network output queues
For AFP, use the Create Output Queue (CRTOUTQ) command to create an AS/400 output queue for the directly attached printer. Because your AFP is directly attached to your AS/400, OS/400 will already contain a printer device with specific parameters such as device type, class, and model. Therefore, the command to create the output queue could be as simple as:
- CRTOUTQ OUTQ(QUSRSYS/AFP)
For ASCII printers (such as IBM 4029 LaserPrinter printers and other PC-attached devices) attached to a networked PC for LPD/Line Printer Requester (LPR) printing over TCP/IP, you also use the CRTOUTQ command, but the parameters are different. Because this is a remote printer, you need to specify the remote location, the name of the remote printer queue, the protocol to use for connectivity, and some other information. The remote PC must have a TCP/IP LPD set up to handle the incoming print-serving requests. This is an example of what the command to create the output queue might look like if you were using the TCP/IP LPR for printing to a remote system:
- CRTOUTQ OUTQ(QUSRSYS/ASCII) RMTSYS('remotePC') RMTPRTQ('PCprinter') AUTOSTRWTR(1) CNNTYPE(*IP) DESTTYPE(*OTHER) TRANSFORM(*NO)
In this example, the remote system is the name of the PC with the attached printer. You can also create this output queue to send spooled files to the TCP/IP address of the networked PC by entering the command as follows:
- CRTOUTQ OUTQ(QUSRSYS/ASCII) RMTSYS(*INTNETADR) RMTPRTQ('PCprinter') AUTOSTRWTR(1) CNNTYPE(*IP) DESTTYPE(*OTHER) TRANSFORM(*NO) INTNETADR('127.0.0.1')
By specifying *INTNETADR (Internet Address) in the Remote System (RMTSYS) parameter, you specify that the remote output sends files directly to an Internet Protocol (IP) address specified in the INTNETADR parameter.
Figure 1. It's simple to add an AS/400 Netserver print share through AS/400 Operations Navigator.
The remote print queue is the name of the LPD/LPR print queue on the PC to which the remote writer sends spooled files. A remote writer is used to send spooled files to the remote system. Setting the Autostart Writers parameters to 1 indicates that a remote writer should automatically be started whenever your AS/400 is IPLed. The destination type specifies that the remote system is not OS/400-based, and the connection type indicates that TCP/IP will be used to make a connection to the remote system. Because I will be printing from networked PCs to a printer attached to another networked PC, I don't need to use the host print transform function (the TRANSFORM parameter), which converts SNA Character String (SCS) spooled files to an ASCII format.
Sharing the output queue with the network
A share is a unique name assigned to an AS/400 output queue that lets remote network users and applications access it. Using AS/400 Operations Navigator V3R2M0 and later (as well as the upcoming IBM Client Access Express for Windows product), the AS/400 administrator can find the Shared Object icon by following the Network-Servers-TCP/IP-AS/400 NetServer path. In V3R1M3, the Shared Object icon is found in the Network/Servers/NetServer path. This brings you to the screen shown in Figure 1. Right-click on the Shared Object icon, and select New and Printer to access the AS/400 NetServer Print Share dialog panel shown in Figure 2. You will need *IOSYSCFG to add or change print share information. Changes take effect immediately.
Figure 2. The AS/400 NetServer print shares dialog allows you to share AS/400 output queues for ASCII, AFP and SCS printers.
The administrator must enter the print share name of the output queue along with a description of that output queue. The printer driver name and a spool type must also be entered. The share name is the name that network users will use to set up the remote printer on their PCs. The PC client will automatically define the printer using the printer driver specified here. The spool file type determines how the spooled files are created on the AS/400. In this case, the spooled files are created as User ASCII files. Other options include AFP files and SCS files.
Accessing the print share from the client PC
You will need to add a printer for the shared output queue on the PC client. From the client desktop, left-click on Start, Find, and then Computer. On the Find screen, enter the AS/400 NetServer server name (usually your AS/400 system name preceded by a Q, eg, Qas400). Figure 3 shows the AS/400 NetServer icon once it is found in the network. Double-click on the AS/400 NetServer icon to list the shares currently configured for AS/400 NetServer. From this list, find the print share icon for the output queue you want to access, and double-click on it to install the printer at your PC. The Windows operating system will set up the printer automatically using the printer driver type specified in the AS/400 NetServer share. Windows will use the Add Printer Wizard to install your printer, so, if you don't already have the printer driver installed on your computer, you must have the printer installation media to install this printer. If you're installing drivers for AFP or SCS printers, some stand-alone printer drivers are available in the Client Access install image in the /QCA400 AS/400 Integrated File System (AS/400 IFS) directory. AS/400 NetServer automatically shares this directory with the network using a share name of QCA400.
Figure 3. Once your AS/400 NetServer name is found on the network, remote users can access your AS/400 print shares.
Once you have added or installed the printer for the AS/400 print share, you can print to it and use Windows to work with the print jobs you have spooled to the AS/400 output queue. When you pause a print job for an AS/400 NetServer print share, you are really working with the spooled file on the AS/400 output queue. You can Pause, Resume, or Purge a print job or a printer.
AS/400 NetServer gives a name of QPZLSPRTF to all jobs spooled to the AS/400 output queues. The AS/400 administrator can use this name to immediately identify that AS/400 NetServer was used to spool the print job. Figure 4 shows a Windows PC view of an AS/400 output queue accessed via AS/400 NetServer.
AS/400 NetServer uses the user's Windows ID and password for authentication when the user requests print services. If the user name matches a corresponding AS/400 user profile, AS/400 NetServer authenticates using this user profile and its password. If the passwords do not match, the user will be prompted with a pop-up window that allows the user to enter the correct AS/400 password.
Printing tips
AS/400 NetServer can be enabled to support users without a corresponding AS/400 user profile through the use of a guest user profile. Since it is considered a nontrusted user, the guest user profile should have no special authorities. AS/400 Network Print Server requires that the guest user profile be enabled and have a password, but AS/400 NetServer users will not be prompted for this password. By default, the guest user profile is not configured for AS/400 NetServer. The support can be added through Operations Navigator.
Figure 4. This is a windows view of an AS/400 output queue viewed through NetServer.
Using AS/400 Operations Navigator V3R2M0 and later, the AS/400 administrator can find the AS/400 NetServer icon by selecting Network, then Servers, then TCP/IP. In V3R1M3, NetServer is found by selecting Network, then Servers, then NetServer. Right-click on the NetServer icon and select Properties to access the AS/400 NetServer Properties dialog shown in Figure 5. Click on the Advanced Tab and the Next Start button to specify a Guest user profile. You will need *IOSYSCFG and *SECADM special authority to change the guest user profile. Changes take effect the next time AS/400 NetServer is started.
If you are able to access the AS/400 NetServer print share but are unsuccessful getting the printer to work online, make sure the Network Print Server is active. Use the Work Active Job (WRKACTJOB) command to verify that there is a QNPSERVD job in the QSYSWRK subsystem. If there is no job in the subsystem, start the Network Print Server with the Start Host Server (STRHOSTSVR *NETPRT) command.
Figure 5. In the AS/400 NetServer properties dialog you can specify a nontrusted guest user profile to be used by a non-AS/400 users for access to shared printers.
While it is much easier to administer AS/400 NetServer using Operations Navigator, you can also use AS/400 APIs. These APIs can be implemented in CL, COBOL, RPG, C, and C++ programs. AS/400 System API Reference (SC41-5801) contains information about implementing AS/400 APIs. You can find this reference online along with an AS/400 command-line miniguide, which provides instructions for configuring AS/400 NetServer from the command entry line.
Using the command-line interface to call the APIs can be cryptic and should only be used by those familiar with the AS/400. Whenever possible, you should use Operations Navigator because the configuration is much easier.
And that's it
With AS/400 NetServer, you no longer need additional proprietary PC software to handle basic print serving needs. With TCP/IP and an LPD/LPR printer queue on your PC, you can take advantage of AS/400 disk to spool print jobs for network print requests instead of on the disk drive of the PC with the attached printer. AS/400 NetServer is easy to configure and use and it helps integrate your AS/400 closer to your Windows clients.
