As Chapter 2 explained, printers, print queues, and print servers are NDS objects. In NetWare 4.x, you can submit a job to a printer by specifying the NDS name of the Printer object when you issue a print command. The Printer object can contain logical associations with Print Queue and Print Server objects. These logical associations ensure that the print job is processed by the appropriate print server and ends up in the correct print queue. Figures 7.1 and 7.2 show the physical and logical components of NetWare 4.1 printing. Print jobs submitted by the workstation are processed by the print server, stored in a queue on some storage volume, and then printed to a network printer. These physical print components are represented as objects in the NDS tree shown in figure 7.2. The print jobs are submitted by the User objects User A and User B to the Printer object, HP_PRINTER. Print jobs also can be submitted to the Print Queue object HP_QUEUE, which is the traditional method for printing in NetWare 3.x.
You can attach a printer as follows:
A complete NDS tree design should include a plan for where and how all printers can connect to the network (see Chapter 2).
Figure 7.1 Physical components of network printing.
Figure 7.2 Logical (NDS) components of network printing.
To set up printing you must perform the following steps:
The primary tools for adding print services are presented in the following list:
Other support utilities, such as PRINTDEF, PRINTCON, and PSC, still exist in NetWare 4, but describing these additional utilities extends beyond the scope of this discussion.
If you use the NetWare Administrator tool to create print objects, you must define the critical properties of the objects, as well as the logical links between the objects. (See Chapter 6, "Creating Objects," for more on the NetWare Administrator tool.)
PCONSOLE was specifically designed for creating and administering print services, and in most cases, it is the best tool for setting up printing on your network. PCONSOLE includes a Quick Setup option that creates the Print Queue, Printer, and Printer Server objects and defines all their critical properties in one step. This chapter provides a tour of the PCONSOLE setup procedures.
NetWare 4 also includes a utility called PUPGRADE.NLM, which upgrades the NetWare 3.1x print environment to NetWare 4.
PUPGRADE is a quick way to upgrade your printing services if you don't plan any changes to your configuration but plan only to use a configuration that is essentially a continuation of what it was under NetWare 3. You do not, however, get to use the full power and versatility of NetWare 4 NDS.
The following sections address the different objects--listed here--involved in the printing process.
The Print Queue object is a logical representation of the physical print queue. The physical print queue is a directory on a storage volume where the print jobs are kept while they are waiting to be printed. The Print Queue object can be created using NetWare Administrator or the PCONSOLE utility. The Print Queue object should be placed in the context it is most likely to be used. Figure 7.3 shows the NDS tree where the Print Queue object is placed in the O=SCS container. It is expected that users throughout the SCS organization will have access to the Print Queue object, including users in the departments CORP, ENG, and SALES represented by the Organizational Unit containers. Figure 7.4 shows a Print Queue object in the OU=CORP.O=SCS container. The Print Queue object in this container is expected to be used by users of OU=CORP in the organization O=SCS.
Figure 7.3 Print Queue object in an organization container.
Figure 7.4 Print Queue object in an Organizational Unit container.
One of the properties of a Print Queue object is the physical location of the queue. This queue is always located on a storage volume that must be specified at the time of creating the Print Queue object. The Print Queue is placed in a subdirectory of the QUEUES directory (see fig. 7.5). If the QUEUES directory does not exist when the queue is created, the QUEUES directory is automatically created.
NOTE: The Volume property for a Print Queue object is mandatory. It describes the volume that is to be used to hold print jobs waiting to be printed.
Figure 7.6 shows the properties of the Print Queue object. Notice that the Volume property is set to CN=NW4CS_SYS.OU=CORP.O=ESL. The properties, such as Other Name, Description, Location, Department, and Organization, are not set when the queue is initially created through PCONSOLE. It is a good practice to set these values to a meaningful description of the queue object. Figure 7.7 shows that the Queue_0 has the authorized print server CN=PS-CORP.OU=CORP.O=SCS and the printer that services this queue is CN=Printer_0.OU=CORP.O=SCS. This shows you how the logical association to the Printer object and Print Server object is made. The Operators property of the Print Queue object is a list of users who can perform administrative tasks on the queue.
Figure 7.5 The Print Queue object and the QUEUES directory.
Figure 7.8 shows only one operator for the queue named CN=Admin.O=ESL. The Users property of the queue consists of those users who can send print jobs to this queue. Figure 7.9 shows that these are the users CN=Admin.O=ESL and the container OU=CORP.O=SCS. Assigning a container to the Users property of the print queue means that all users within that container can send print jobs to the queue, because of the grouping nature of container objects.
Figure 7.6 Print Queue object properties.
Figure 7.7 Print Queue object assignments.
Figure 7.8 The Print Queue operators.
Figure 7.9 The Print Queue users.
Figure 7.10 shows the queue directories created for the queue objects CN=HP_QUEUES.O=SCS and CN=Queue_0.OU=CORP.O=SCS.
Figure 7.10 The Print Queue directories.
In figures 7.7 through 7.10, you can see that the Print Queue object has the following important properties:
The Print Job List property of the Queue object can be used to view the print queue jobs (see fig. 7.11). You can see that print jobs are assigned sequence numbers and a Job ID. The print job status, the name of the file being printed, and the form number used also are displayed.
Figure 7.11 Print Job List property.
The Printer object is a logical representation of the physical printer. The physical printer can be directly connected to the network (if it has a network interface), or to a workstation or a file server. The Printer object can be created by using NetWare Administrator or the PCONSOLE utility. The Printer object should be placed in the context in which it is most likely to be used.
Figure 7.3 shows the NDS tree where the Printer object is placed in the O=SCS container. It is expected that users throughout the SCS organization will have access to the printer, including users in the departments CORP, ENG, and SALES, represented by the Organizational Unit containers. Figure 7.4 shows a Printer object in the OU=CORP.O=SCS container. The Printer object in this container is expected to be used by users of OU=CORP in the organization O=SCS.
Figure 7.12 shows the properties of the Printer object. The Name property (Common Name) is the only property set on this screen. The other properties, such as Other Name, Description, Location, Department, and Organization, are not set when the queue is initially created through PCONSOLE. Setting these values to a meaningful description of the Queue object is a good practice.
The Printer Features property can be seen by selecting the Printer Features button (see fig. 7.12). Figure 7.13 shows the Printer Features property of CN=Printer_0.OU=CORP.O=SCS.
Figure 7.12 Printer object properties.
Figure 7.13 Printer features.
Figure 7.14 shows the assignments for the Printer_0. The printer is assigned to the print server CN=PS-CORP.OU=CORP.O=SCS (see property Print Server), and the queue CN=Queue_0.OU=CORP.O=SCS is assigned to the Printer object (see property Print Queues). This shows you how the logical association to the Print Server object and Print Queue object is made. There could be several Print Queue objects assigned to the Printer object. One of the Print Queue objects is the default object. If no specific queue object is specified, the default print queue is used (see property Default Print Queue).
Figure 7.15 shows some of the configuration properties for the Printer object. This shows the Printer Type (LPT1, Serial, AppleTalk, Unix, AIO, XNP). The Banner Type can be Text or PostScript. The Service Interval shows how often the print server checks the print queue for the number of print jobs (a value between 1 and 15 seconds, where 15 is the default) assigned to this printer. The Buffer Size in KB represents how large each segment of print data sent to the printer can be. The buffer size can range from 3 KB to 255 KB and has a default value of 3 KB. The Network Address Restriction shows the network address the printer can use. It can only be used if the printer location is set to Manual mode. The Service Mode for Forms property is used to change forms.
Figure 7.16 shows the notification form for printers. The print job owner is notified of printer status changes.
Figure 7.14 Printer assignments.
Figure 7.15 Some of the Configuration properties for Printer object.
Figure 7.16 The Notification properties for Printer object.
In figures 7.12 through 7.16, the Printer object has the following important properties:
Before describing the last printing object, the Print Server object, you need to understand how the print server and the PSERVER.NLM use this object.
The Print Server object describes the print server. It is activated by the PSERVER.NLM, and can therefore run on NetWare servers only. This program takes the print server object name as a parameter when it is loaded.
LOAD PSERVER PrintServerObjectName
This command can be run on any NetWare server in the NDS tree. The PrintServerObjectName is replaced by the complete name of the Print Server object. Thus, to activate the Print Server object CN=PS-CORP.OU=CORP.O=SCS, run the following at one of the NetWare servers:
LOAD PSERVER .CN=PS-CORP.OU=CORP.O=SCS
The PSERVER.NLM is the only type of print server program available from Novell. The PSERVER.EXE of NetWare 3.x is not supported in NetWare 4.x.
The PSERVER.NLM can support up to 256 printers. Up to 5 of the 256 printers can be attached to the server, where PSERVER.NLM is run (local printers). The remaining 251 printers can be attached anywhere else on the network (remote printers). These remote printers can be on other NetWare servers or workstations, or they can be directly attached to the network.
Figure 7.17 shows the types of printers used with a print server, and figure 7.18 shows the operation of the PSERVER.NLM. The PSERVER.NLM monitors the queue and the printer and directs print jobs in the network print queue to the appropriate network printer.
Figure 7.17 Types of printers used with print server.
Figure 7.18 The print server operation.
With this background, you now are ready to understand the properties of the Print Server object.
The Print Server object is a logical representation of the print server program (PSERVER.NLM) running at a server. The Print Server object can be created using the NetWare Administrator or the PCONSOLE utility. The Print Server object should be placed in the context it is most likely to be used. Figure 7.3 shows the NDS tree where the Print Server object is placed in the O=SCS container. It is expected that users throughout the SCS organization will have access to this Print Server object. This includes users in the departments CORP, ENG, and SALES represented by the Organizational Unit containers. Figure 7.4 shows a Print Server object in the OU=CORP.O=SCS container. The Print Server object in this container is expected to be used by users of OU=CORP in the organization O=SCS.
Figure 7.19 shows the properties of the Print Server object. Besides the Name property (Common Name), the only property set on this screen is the Advertising Name. Server programs in the NetWare environment, such as the PSERVER.NLM that activates a print server from the description in the Print Server object, advertise their existence using the Service Advertising Protocol (SAP). Figure 7.20 shows a packet trace captured using LAN Analyzer, and figure 7.21 shows the packet decode of the SAP frame. Notice that the name of the service advertised is PS-CORP, which is the value of the property shown in figure 7.19.
Figure 7.19 Print Server object properties.
NOTE: It is interesting to note that the PS-CORP has a service type of 71 (see fig. 7.21). All SAP services are identified by their SAP type value. A well-known service, such as the print server, has a published value of 71. The NetWare 4.x server, on the other hand, has a service type of 263. This is the same type used for NetWare 3.x servers. The directory tree name CNET is advertised by server type 632. For more information on how the SAP protocol works, see NetWare: The Professional Reference also from New Riders Publishing.
Figure 7.20 The print server SAP protocol trace.
Figure 7.21 The packet decode of the SAP frame.
NOTE: The Advertising Name property of the Print Server object is the name used by the PSERVER.NLM to advertise its existence using the Service Advertising Protocol (SAP).
The other properties, such as Other Names, Description, Location, Department, and Organization, are not set when the queue is initially created using PCONSOLE. Setting these values to a meaningful description of the Queue object is good practice. The Network Address property is set only when the print server is running. The print server in figure 7.19 is running, as indicated by the Status field and the Version property, which reports the version number of the PSERVER.NLM currently running. The Network Address property shows that the print server is at F0000055:000000000001. The F0000055 is the internal network number of the NetWare server on which the PSERVER is running, and 000000000001 is its node address.
NOTE: The node address for the server on the internal network is always 1.
You can unload the print server by selecting the Unload button (see fig. 7.19). The print server also can be unloaded directly from the NetWare console on which it was loaded or by using the PCONSOLE program. The print server password is used to secure access to the Print Server object and can be changed through the Change Password option.
The print server assignments are shown in figure 7.22. The Printers property is a list of printers assigned to print servers. The figure shows that there are two printers assigned to the print server object PS-CORP. These printers are CN=HP_PRINTER.O=SCS and CN=Printer_0.OU=CORP.O=SCS.
Figure 7.23 shows that the Operators property for PS-CORP is set to CN=Admin.O=ESL. This property describes the list of users who can perform administration tasks on the print server. Figure 7.24 shows the Users property for PS-CORP, which is set to OU=CORP.O=SCS. This means that all users in the OU=CORP.O=SCS container can use the print server.
Figure 7.22 Print Server object assignments.
Figure 7.23 Print Server operators.
Figure 7.24 Print Server users.
From figures 7.19 and 7.22 through 7.24, the Print Server object has the following important properties:
NOTE: Note that the Print Server object properties are read into the server memory when PSERVER.NLM loads. Any changes made to the Print Server object are not registered with the print server unless you bring the print server down (unload PSERVER.NLM) and bring it up again (load PSERVER.NLM).
When configuring network printing objects, certain critical properties for each of these objects need to be set up. You saw the use of some of these critical properties in the earlier discussion on Print Queue, Printer, and Print Server objects.
Figure 7.25 shows the important or critical properties for the Print Queue, Printer, and Print Server objects. The print queue is assigned to the Print Queues property of the Printer object, and the Printer object is assigned to the Printers property of the Print Server object. This assignment allows a link between the different printing objects regardless of their context. That is, the network print configuration objects (Printer Queue, Print, and Print Server objects) can be placed in the same context or different contexts. You should, however, try to create these objects in contexts in which they are most likely to be used.
The diagram in figure 7.25 shows a one-to-one correspondence between the Print Queue, Printer, and Print Server object, the simplest and most often used setup. More complex, many-to-one assignments can be made. Figure 7.26 shows that multiple queues can be assigned to a single Printer object, and multiple Printer objects can be assigned to a single Print Server object.
To create the print configuration objects, you should minimally have the Create object right next to the container in which these objects are to be placed. The quickest way to create these objects is to use the Quick Setup option under PCONSOLE. If you do not have the Create object right (or the Supervisor object right), this option does not appear on the PCONSOLE menu.
Figure 7.25 Critical properties for Print objects.
By default, the creator of the print objects is made a trustee and given all object rights and property rights to that object. Figure 7.27 shows the trustee rights to object PS-CORP. The creator of the object is Admin.ESL. This user has all rights to Object Rights (Supervisor, Browse, Delete, and Rename) and the All Properties rights (Supervisor, Compare, Read, Write, and Add Self). (See Chapter 10 for a complete discussion of NetWare 4 security.)
Figure 7.26 Many-to-one relationship among objects.
Figure 7.27 Trustee right of owner to Print Server object.
As mentioned earlier, the primary tools for configuring network services are PCONSOLE and NetWare Administrator. But only PCONSOLE has the Quick Setup option. The other options in PCONSOLE are the same as in the PCONSOLE for NetWare 3.x, only these options have been modified to work with NDS objects.
If you use the NetWare Administrator tool to create print objects, you have to make sure their critical properties are defined, and also that the logical links between the objects are properly defined.
The NETADMIN.EXE program cannot be used to create print objects. You also cannot use this tool to view or edit properties of print objects. Figure 7.28 shows that the queue object Queue_0 cannot be edited or viewed using NETADMIN.
Figure 7.28 Attempt to view/edit Queue object from NETADMIN.
Now for a guided tour on implementing network printing using the PCONSOLE utility. You will create print queues, Printer objects, and Print Server objects, and then configure them.
Figure 7.29 The PCONSOLE main menu.
Figure 7.30 The initial Print Queues.
Figure 7.31 Entering a queue's volume name.
Figure 7.32 A newly created queue in the Print Queues list.
Figure 7.33 The initial Printers list. Figure 7.34 Prompt to Create New Printer.
Figure 7.35 Newly created Printer object in the Printers list.
Figure 7.36 The Printer Configuration screen.
Figure 7.37 Print Queue Priority and Status.
Figure 7.38 An initially empty Print Servers screen.
Figure 7.39 The New print server name box.
Figure 7.40 The newly created Print Server object in the Print Servers list.
Figure 7.41 Print Server Information options.
Figure 7.42 Printer objects list.
Figure 7.43 Printers assigned to print server.
The PSERVER command syntax is as follows:
LOAD PSERVER PrintServerObject
To load the PSERVER.NLM for the print server object CN=PSRV_1.OU=CORP.O=ESL_XXX that you created in the previous section, use the command:
LOAD PSERVER .CN=PSRV_1.OU=CORP.O=ESL_XXX
When the PSERVER.NLM loads, you should see a list of Available Options for the PSERVER.NLM (see fig. 7.44). Selecting "Printer Status" should show the list of printers defined for the Print Server object (see fig. 7.45). Selecting any of the printers listed reveals the printer status (see fig. 7.46). Selecting "Print Server Information" from Available Options shows the print server information and status (see fig. 7.47).
You can change the Current Status field in the Print Server Information (see fig. 7.47) from "Running" to "Unload" to unload the print server immediately. If you want to wait until all print jobs are finished before unloading the print server, you can set the Current Status field to "Unload after active print jobs."
Figure 7.44 The PSERVER main screen.
Figure 7.45 The PSERVER Printer List.
Figure 7.46 PSERVER Printer Status.
Figure 7.47 Changing printer server status.
When the PSERVER.NLM loads, it activates the Printer objects defined in the specified Print Server object's printers property list. If the printer is defined local to the PSERVER.NLM, a program called NPRINTER.NLM is autoloaded to activate any attached local printers (see fig. 7.48). For this reason, printers attached locally to the NetWare Server on which PSERVER.NLM is run are called autoload printers. In figure 7.48, you can see that Printer_0 was loaded successfully, but the second printer failed to load because it also was trying to use interrupt line 7, which was already in use by the first printer. If the second printer was defined on a different port from LPT1, this problem would not exist.
Figure 7.48 Loading PSERVER.NLM console messages.
Printers attached to other NetWare servers or workstations are called remote printers. Remote printers must have the NPRINTER program manually loaded on them. For NetWare servers, the NPRINTER program is NPRINTER.NLM, and for workstations, the NPRINTER program is NPRINTER.EXE. Because the NPRINTER program must be manually loaded with remote printers, they are referred to as manual load printers.
NOTE: Printer definitions that are remote from the print server must be loaded manually using the NPRINTER.NLM.
NPRINTER.EXE is available for both DOS and OS/2 printers.
The syntax for loading the NPRINTER program is
NPRINTER [PrintServerObjectName] [PrinterObjectName]
LOAD NPRINTER PrintServerObjectName PrinterObjectName
The first form is used for DOS and OS/2 workstations, and the second form is used for loading the printer definition on a NetWare server. Multiple printers can be serviced at the NetWare server by running the LOAD NPRINTER command several times and specifying a different printer number each time.
NOTE: The NPRINTER.EXE is used to load remote printers at a workstation.
NOTE: The NPRINTER.NLM is autoloaded for local printers attached to the print server and must be manually loaded for printers attached to remote NetWare servers.
The PrintServerObjectName refers to the Print Server object to which the printer is assigned. Because a Print Server object could have more than one Printer object assigned to it, the second parameter, PrinterObjectName, further qualifies the statement by specifying the actual printer object name. You also can load the printer definition directly by leaving out the print server object name. Thus, to load Printer object CN=HP_PRINTER.O=SCS at a workstation as a remote printer, you can use
When the print server loads, it assigns printer numbers to all of the Printer object definitions activated by it. Figure 7.49 shows the printer numbers assigned to the Printer objects CN=Printer_0.OU=CORP.O=SCS and CN=HP_PRINTER.O=SCS when the CN=PS-CORP.OU=CORP.O=SCS printer loads. NPRINTER supports an alternative syntax, where the printer number can be used rather than the printer object name. That is,
NPRINTER PrintServerObjectName PrinterNumber
NOTE: If the NPRINTER command does not work, try using a complete name for the Print Server object name.
The second NPRINTER syntax allows it to be compatible with the NetWare 3.x RPRINTER syntax. RPRINTER.EXE was used in NetWare 3.x to set up remote printing, but is no longer used. Its functionality has been replaced by the NPRINTER.EXE program. You need to load NPRINTER at a workstation or server to set up a remote printer.
Figure 7.49 Printer List on the print server.
An example of the second type of NPRINTER syntax is
NPRINTER .CN=PSERV.OU=CORP.O=ESL 1
where printer number is used rather than the printer object name. Figure 7.50 shows the effect of executing the preceding command. Notice that the status message says that the HP_PRINTER (printer 1) is installed. The NPRINTER.EXE runs as a TSR.
Figure 7.50 Activating a printer with the NPRINTER command.
If NPRINTER is used without any options, it runs as a menu utility.
To unload the NPRINTER.EXE, use the following command:
To see the status of a printer, use the following command:
The following list shows the output produced by running NPRINTER /S on a workstation that had NPRINTER loaded in a prior step:
NetWare Network Printer Driver v4.01. Copyright 1988 - 1993, Novell, Inc. All Rights Reserved. Print server: PS-CORP Printer name: HP_PRINTER Printer number: 1 Printer port: Unknown Using IRQ: None (Polled Mode) TSR status: Shared Mode NPRINTER status: Waiting for Print Job Printer status: Out of Paper
Figure 7.51 shows a summary of the different types of NPRINTER programs that are possible.
NOTE: If NPRINTER is used without any options, it runs as a menu utility.
Figure 7.51 Different NPRINTER types.
The PCONSOLE also can be used to monitor print server status. The steps to perform this are outlined as follows:
You should see a screen showing print server information and status (see fig. 7.52).
Figure 7.52 The PCONSOLE Print Server Information and Status screen.
The Quick Setup information option in PCONSOLE can be used to create in a single step a Print Queue, Printer, and Print Server object that have all of their critical properties defined. The print objects are created to have the proper logical links among themselves. This means that the Print Queue object is assigned to the Printer object's Print Queues list property, and the Printer object is assigned to the Print Server object's Printers list property.
The print objects that are created have default names of Q1 for Print Queue object, P1 for Printer object, and PS-container for the Print Server object. The container in the print server name PS-container is the name of the container in which the print server is defined. At the time you create these objects, you can change the default names to any other names (as long as they do not conflict with leaf names of other objects in the container).
Quick Setup also makes assumptions about the printer properties. For the printer object, Quick Setup defines the following property values.
|Location:||Auto Load (Local)|
|Interrupt:||None (polled mode)|
The Banner type can be Text or PostScript. The Text setting is used to print NetWare's standard print banner. If your printer uses the PostScript language and you want your printer to print a PostScript banner, you can use the PostScript setting.
These values can be modified during Quick Setup, but they should match your physical printer configuration.
NOTE: Any of the default parameters of Quick Setup can be modified at the time of creating print objects using Quick Setup.
NOTE: If you want to set up a remote printer, use the Manual Load value for the Location.
Next, you are given a guided tour on using the Quick Setup Option of PCONSOLE.
Figure 7.53 The Print Services Quick Setup screen.
The PUPGRADE NLM is run at the server and upgrades the NetWare 3.1x print environment to NetWare 4. The following is a brief outline of using PUPGRADE.
Figure 7.54 The PUPGRADE main menu.
This chapter showed you how to set up the following:
You also learned about the PUPGRADE utility, which upgrades the NetWare 3.1x printing environment to NetWare 4.
© Copyright, Macmillan Computer Publishing. All rights reserved.