[Firebird-devel] ExprNode::FLAG_VALUE
Hi! There is ExprNode::FLAG_VALUE ("Full value area required in impure space"), inherited from old (2.5) code base nod_value. It's set by sort subsystem and used only for parameters and variables. It makes then allocate impure space for impure_value_ex instead of traditional dsc. Most nodes allocate space for impure_value. But not all of them. Literals directly return the descriptor set in compile time. I see no usage of the expressions impure_value in sort. And if they were using, we'd certainly have a problem with literals. I see no need to have this flag. Do anyone see something I'm not seeing? Adriano Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commit (un)certainity
>Yes. You probably have the same problem in your provider, no? The problem exists there. Same as with fbclient. But I don't explicitly solve it, application developer is responsible for handling such scenario (if ever). -- Mgr. Jiří Činčura https://www.tabsoverspaces.com/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commit (un)certainity
Em qua., 5 de jan. de 2022 17:14, Dimitry Sibiryakov escreveu: > Jiří Činčura wrote 05.01.2022 19:44: > > You're probably thinking about something in client library? > >Yes. You probably have the same problem in your provider, no? If no response or network error is returned, application will be stuck, will receive the error or will receive a timeout error. It looks like an application thing, not a driver thing. Adriano Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commit (un)certainity
Jiří Činčura wrote 05.01.2022 19:44: You're probably thinking about something in client library? Yes. You probably have the same problem in your provider, no? -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commit (un)certainity
05.01.2022 15:03, Dimitry Sibiryakov wrote: Hello All. It is documented that successful return from function send() for TCP doesn't mean successful delivery of data to the target host, mere put them into socket buffer. If op_commit is sent but network error appear during waiting for response there can be two cases: 1) op_commit packet is lost on its way to server; 2) op_response is lost on its way to client. In the first case the transaction on server is rolled back in the latter - committed successfully. Is there a way to handle such situation? 2PC protocol was developed for this kind of problems. Using of two round-trips cannot solve the problem, only shift point of uncertainty. 2PC allows to know trasaction state and fix half-done commit. Regards, Vlad Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commit (un)certainity
One way to handle this is via manual inserts (and deletes) in a dedicated table. Something like: 1. Insert a row into the table at the beginning of each transaction. 2. If the connection fails during the commit, check for the presence of the corresponding row in the database. - If the row is present, continue normally, as the transaction was committed successfully - If the row is absent, use an execution strategy to retry the current operation. 3. If the commit is successful, delete the corresponding row to avoid the growth of the table. But this needs support on application level. You're probably thinking about something in client library? -- Mgr. Jiří Činčura https://www.tabsoverspaces.com/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] Commit (un)certainity
Hello All. It is documented that successful return from function send() for TCP doesn't mean successful delivery of data to the target host, mere put them into socket buffer. If op_commit is sent but network error appear during waiting for response there can be two cases: 1) op_commit packet is lost on its way to server; 2) op_response is lost on its way to client. In the first case the transaction on server is rolled back in the latter - committed successfully. Is there a way to handle such situation? Using of two round-trips cannot solve the problem, only shift point of uncertainty. -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] Commit (un)certainity
Hello All. It is documented that successful return from function send() for TCP doesn't mean successful delivery of data to the target host, mere put them into socket buffer. If op_commit is sent but network error appear during waiting for response there can be two cases: 1) op_commit packet is lost on its way to server; 2) op_response is lost on its way to client. In the first case the transaction on server is rolled back in the latter - committed successfully. Is there a way to handle such situation? Using of two round-trips cannot solve the problem, only shift point of uncertainty. -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] Timeout on batch
Hi *, Is there a way to send timeout value for batch, same way it's now possible for single statements (op_execute/op_execute2)? -- Mgr. Jiří Činčura https://www.tabsoverspaces.com/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel