NOVELL TECHNICAL INFORMATION DOCUMENT TITLE: PLPD8.EXE; PLPD 1.2C Maintenance Patch README FOR: PLPD8.EXE NOVELL PRODUCTS and VERSIONS: NetWare FLeX/IP 1.2C NetWare NFS 1.2C 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. ----------------------------------------------------------------- DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS 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. ----------------------------------------------------------------- SYMPTOM: 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. SOLUTION: 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 for queue is using connection " 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. Self-Extracting File Name: plpd8.exe Files Included Size Date Time ..\ PLPD8.TXT (This file) PLPD.NLM 63448 7-31-95 1:17:00 pm PLPDCFG.NLM 50128 2-17-95 2:46:06 am Installation Instructions: 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. ----------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. -----------------------------------------------------------------