Understanding timeouts
What is the point of using transactions in this chapter if we are not using any databases? Besides making the Tuxedo transaction API easier to explain, its most useful feature is timeouts. Timeouts allow enforcing time constraints for computation.
There are two kinds of timeouts in Tuxedo, and while they are different, their implementation and behavior are similar. You already know about transaction timeouts. The second kind is called blocking timeouts. The name comes from Unix jargon, where blocking describes a system call that may wait indefinitely until it completes or fails with an error; this is as opposed to the non-blocking mode, where the system call completes or fails immediately.
The main thing to remember about timeouts in Tuxedo is that they apply to the clients, not the servers. The client will receive the timeout error but the server will continue working for hours with no clue that timeout occurred. The only way for the server to know that...