Hi,
A PB app getting stuck on "Communication link failure sql error 08S01" has an issue in its DB error recovery logic. You can subclass SQLCA or any other transaction object to capture DBError event and react accordingly. Comm. link suggests a DISCONNECT;. Why disconnect? Because that command probably fails but it sends signals to DB client that you are giving up on current connection. Perhaps even a destroy of said transaction object would kill that error situation. FreeDBLibrary = true on application object may be needed.
Recovery is then to possibly create new transaction object of same class (if code destroy that object) and a new CONNECT could re-establish DB connection.
NOTE: Sometimes bad connection hangs in a pool on the client so first CONNECT may fail albeit next CONNECT succeeds "just because".
In any case, as pointed out by Miguel in earlier response you always have the option to HALT CLOSE or HALT to allow PB process to kill itself.
HTH /Michael
I remember first time a SQL Anywhere database suddenly had a VPN over internet between DB server and our PB client. Suddenly we had connectivity issues and timeout issues we never saw before. Took some code rewriting and a bunch of hard learning to cope with "guaranteed network connectivity" being a thing of the past.