When a database restarts, sessions remain but active requests not in-doubt are terminated. When the database recovers, TDP elicits error responses from the database for all requests that were active at the time of the restart. These responses will then be reflected to the application.
Sessions that did not have active requests but were in-transaction have lost the in-transaction state. So the next request sent by the application will be unconditionally aborted to reflect the loss of transaction status to the application.
In-doubts requests remain in-doubt.
If a previously active SP is down after a restart, TDP switches any sessions on that SP to other SPs as session capacity exists. This is transparent to the application except that a request initiated before the session is switched will be delayed.