Technical Information Document
PLPD8.EXE; PLPD 1.2C Maintenance Patch - TID1005591 (last modified 12SEP1995)
1005591 1005591
associated file

Click filename to download:
plpd8.exe; 63891 bytes; Date/Time: 09-11-1995/03:35PM

abstract

This patch includes all bug fixes to date for PLPD.NLM and PLPDCFG.NLM. Not supported for 1.2b or other version previous to 1.2c.

installation

1) Backup PLPD.NLM and PLPDCFG.NLM, as a precaution.

2) Expand the file PLPD8.EXE into its components,
   PLPD.NLM
   PLPDCFG.NLM
   PLPD8.TXT

3) Copy program files PLPD.NLM and PLPDCFG.NLM into the SYS:SYSTEM subdirectory of the Flex/IP or NetWare NFS server.

4) If any of the new command line parameters will be used, add them to the load command for PLPD in the file SYS:SYSTEM/UNISTART.NCF.

5) Unload the old PLPD and reload the new.

6) Load NFSADMIN to review the new options in printer configuration. NFSADMIN launches PLPDCFG.NLM.

symptoms

1. Printing has ceased with a PKERNEL error message of "t_look() failed after t_rcv()".

2. PLPD may fail to release buffers when print jobs complete which eventually leads to malloc() failures.

3. Upon unloading PLPDCFG, "Module did not release xxx resources" displays on the console.

4. User needs one of the PLPD enhancements. See SOLUTION for details.

solutions

This patch consists of PLPD.NLM, PLPDCFG.NLM (configuration utility), and PLPD128.TXT (this document).

This PLPD.NLM is the socket version which replaces the TLI interface to the network with SPX socket connections. The change was needed for enhancements made to the TLI state logic, which made it more robust but adversely affected the dependent module PLPD.NLM. This PLPD eliminates all TLI-related problems.

Additional enhancements are described below:

1. The way in which NetWare connections are used has been optimized. Previously, a new NCP connection was made for every print job accepted by PLPD, and later closed when the print job completed. This incurred some computational expense, especially under NetWare 4.0x where NDS authentication takes place. This enhanced version logs in only once per queue using the Default User account, and that connection stays active as long as PLPD is loaded. The connection is made the first time a queue is used. If the NetWare System Administrator has set up the PLPD (using PLPDCFG.NLM) with individual user accounts mapped, the algorithm works as before, i.e. log in for each print job.

The first time a queue is used and successful login has occurred, a message will appear on the PKERNEL screen saying:

"Default user <username> for queue <queue number> is using connection <connection number>"

This is not an error, but an informational message.

2. The queues can now be configured to suppress banner and form feed using the enhanced PLPDCFG.NLM.

3. PLPD.NLM now does disk capacity checking. If an incoming spool job will fill the NetWare disk, the print job is rejected with -2 returned to the print client. Most LPR clients understand -2 to mean "disk full", which follows the Sun convention. Previously when the spool directory became full, 0 (success) was returned to the client, effectively clearing the job from its queue. With -2 returned, the LPR client will hold onto the job for retry later. Administrators need to add capacity to the SYS: volume when space is low. Since customers automatically submit very large jobs from mainframes without human attendance, disk full is still possible even with added space. A debug message prints on the PKERNEL screen if a disk full is detected.

Usage suggestion: If acceptable to users and administrator, configure PLPD to use a single user for default mapping rather than mapping of individual user accounts. Otherwise, the software will have to examine the configuration file to determine identity of user sending the print job, and then create a server connection, causing some delay. PLPD protocol always sends both a data file and a configuration file. The configuration file has the user's name which must be read by PLPD to check that the user's disk space limitations. If default mapping is used, PLPD already knows who the user is.

4. PLPD now checks to see if the client is attempting to use a non-reserved port. Previously, the client could communicate with PLPD on any TCP/IP port. This could be a security concern in some installations. It also violates the RFC for the LPD protocol.

Port checking can be disabled. If experiencing the error "Login failed: Attempt to use reserved port", use the command line option "ANYPORT" when loading PLPD.

Example: LOAD PLPD.NLM ANYPORT

5. Performance has been improved for NetWare 4.02 and newer versions of CLIB and TCP/IP. If performance is slow or packet traces show that the TCP/IP window size is going down to zero, buffer allocation can be increased. Optional load parameters allocate additional buffers for each queue. The default configuration will allocate 4KB per queue. Typically you should increase the size and number of buffers if you print many large jobs.

Usage: LOAD PLPD.NLM [number of buffers] [size of buffer] [delay interval] [debug level]

number of buffers - default value 2
size of buffer - default value is 2KB units in 1K increments
delay interval - default value is 55 milliseconds
debug level - default value is 0 = no debug
   1 = summary statistics
   2 = every read/write displayed

When PLPD loads, it displays the number of data buffers, size of data buffers, and delay interval that the PLPD threads wait after a thread switch. If debug level is 2, the number of messages going to the system console will be large.

Examples:
   LOAD PLPD.NLM 3 16 100 - 3 buffers per queue, 16k bytes each, delay interval 100
   LOAD PLPD.NLM 10 1 - 10 buffers, 1K bytes each, delay 55

6. Expanded the "Protocol Error" PKERNEL messages to be more descriptive.

7. PLPD now checks if the printdef database exists before trying to open it. This causes a 15 second delay for each print job when the printdef does not exist. This affects customers using NetWare 4.02.

contents

Self-Extracting File Name:  plpd8.exe

Files Included       Size   Date         Time    Version   Checksum

\
      PLPD.NLM      63448   07-31-1995   01:17PM
     PLPD8.TXT       7333   09-11-1995   02:24PM
   PLPDCFG.NLM      50128   02-17-1995   02:46AM
Document Title: PLPD8.EXE; PLPD 1.2C Maintenance Patch
Document ID: 1005591
Creation Date: 12SEP1995
Modified Date: 12SEP1995
Document Revision: 1
Novell Product Class: Connectivity Products
NetWare
Novell Product and Version: UNIX Connectivity
NetWare 3.12

Disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.

Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.