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.
|