3.5 Termination
Termination can be initiated by the client (for example when it closed the session)
or by the server (for example in case of an administrator-commanded database
shutdown or some failure).
The normal termination procedure is that the client closes the session after
transaction commit. In this case the client sends the se_CloseConnection
message. The server processes its closing procedure. If no errors occur the server
sends the se_CloseConnectionOk message and closes the connection.
If the client sends the se_CloseConnection message before committing
the on-going transaction, the server does rollback for the transaction,
sends the se_TransactionRollbackBeforeClose message and closes the
connection.
If on receipt of the se_CloseConnection message, some errors on server occur
the server sends the se_ErrorResponse message and closes.
While an administrator-commanded database shutdown or some failure occurs
the server may disconnect without any client request to do so. Before closing the
connection the server sends the se_ErrorResponse message that contains error
code and error info.
The possible instructions from the client in this phase are:
- se_CloseConnection. Does not contain the body.
The possible instructions from the server in this phase are:
- se_CloseConnectionOk. Does not contain the body.
- se_TransactionRollbackBeforeClose. Does not contain the body.
- se_ErrorResponse. Body contains info.
|