Tappan@G.BBN.COM (Dan Tappan) (11/03/86)
We've recently run into a couple of appletalk "subtleties" that it may be worth recording to save other people some time. 1) A week or so ago I sent out a message about a problem we were having communicating between a QMS-PS800 and a Kinetics FastPath. At first it looked like the PS800 wasn't able to receive the Kinetic's packets. To make a long story short: the final result was that there was nothing wrong with either device. We had a short in one of the connectors on our Appletalk cabling. The Kinetic's uses GND and +5 for signaling levels (vs -5 and +5 for a Mac) which is fine on a working net but not quite enough to drive a PS800 on the other end of a busted one. The moral here is: When you put an appletalk cable together it's not enough to plug devices in and see if it works. It may appear fine but really be on the edge of collapsing. Scope it out. 2) For the second time I've been bitten by the "Lost TRel" problem. The way ATP is designed the TRel packet which terminates a transaction is sent unreliably. If it gets lost, and you are using "Exactly Once" transactions, then your server will hang until the release timer goes off (up to several minutes). The solution is to take a hint from "Inside Appletalk" (ATP pp17,18) and design your protocols so that there will only be one transaction outstanding from a single host. Then never send a response synchronously, send it async and cancel it if you get in a subsequent transaction from that host. -------