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

This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.