Apple II
Technical Notes
_____________________________________________________________________________
                                                  Developer Technical Support


AppleTalk
#3:    Avoiding Remote Printer Time-Outs

Revised by:    Jim Luther                                      September 1989
Written by:    Jim Luther                                            May 1989

This Technical Note discusses how to avoid time-outs when printing to remote 
printers.
Changes since May 1989:  Updated to reflect System Software 5.0 changes 
and to clarify the results of changing the time-out interval.
_____________________________________________________________________________

The Apple II AppleTalk firmware's Remote Print Manager (RPM), which supports 
AppleTalk's Super Serial Card (SSC) entry points, maintains a time-out 
interval value.  The time-out interval is usually set to 30 seconds.  When an 
application quits writing to the AppleTalk firmware, the RPM waits this time 
interval before sending the last block of data to the printer and closing the 
Printer Access Protocol (PAP) connection.

What does this mean?  If an application waits longer than the time-out 
interval (e.g., 30 seconds) between any write accesses to the AppleTalk 
firmware (i.e., a pause between initialization and printing or a pause during 
printing), the PAP connection closes, the current page may be ejected from the 
printer (this is printer dependent--the ImageWriter II and ImageWriter LQ do 
not automatically eject the page, the Apple LaserWriter does), and the rest of 
the application's output to the printer is lost.  If you initialize the 
AppleTalk SSC firmware, you must print immediately or a time-out may occur and 
reinitialization is necessary to print again.  Applications should not 
initialize the firmware and expect it still to be initialized at a later point 
in time.


What You Can Do

The RPM's PMSetPrinter call may be used to change the time-out interval to a 
different value.  However, the time-out interval should be kept as short as 
possible because other users cannot open another PAP connection with the 
printer until your machine has timed-out.  In other words, if you set the 
time-out interval for five minutes, the RPM keeps the PAP connection open with 
the printer for five minutes after the last character is written to the RPM, 
thus blocking other machines from using that printer for five extra minutes; 
this delay is unacceptable in a shared printer environment.

With an Apple IIGS using System Software 5.0, the RPM's PMSetPrinter call may 
be used to set the time-out interval to zero.  When the time-out interval is 
set to zero, the session never times out and must be closed with the Apple 
IIGS-specific PMCloseSession RPM call.


Further Reference
_____________________________________________________________________________
  o  AppleShare Programmer's Guide for the Apple IIGS