On 20-03-2021 12:18, Dimitry Sibiryakov wrote:
20.03.2021 12:16, Mark Rotteveel wrote:
You could also send the packet, but defer processing of the response. Sure there is some overhead in sending the packet, but not as much as also waiting for the response.

   Why this packet require response at all? Dropping may fail...?

Judging by code in server.cpp (ISC_STATUS rem_port::end_statement(P_SQLFREE* free_stmt, PACKET* sendL)), yes it can. Though probably DSQL_close is more susceptible to this than others (you can't close the cursor of a statement without an open cursor, which IMHO should just be a no-op).

Also, keep in mind that any action you take on the database can result in an error (e.g. because the database was shutdown), so all requests can get a response (with the exception of op_cancel where the cancellation either does nothing), or the response piggy backs on the response to the outstanding request that was cancelled.

Furthermore, being able to receive response is also what tells you the action was complete.

Mark
--
Mark Rotteveel


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to