ISTech Support Forum
http://www.istechforum.com/YaBB.pl Evo-ERP and DBA Classic >> Suggestions for Updates >> Abortable Transactions http://www.istechforum.com/YaBB.pl?num=1170042135 Message started by kkmfg on 01/28/07 at 19:42:15 |
Title: Abortable Transactions Post by kkmfg on 01/28/07 at 19:42:15 This was discussed elsewhere but, as is my custom, I'm reposting it here because this is the place for it. I was reading through the API documentation on calls to wbtrv32.dll (the library Evo uses to interface with BTrieve) and saw that BTrieve does indeed support abortable transactions (at least in reasonably recent versions of PervasiveSQL). So, how about adding abortable transactions as a feature in Evo??? Don't know if TAS7i supports this or not but I hope it does. Other people have expressed interest in this sort of thing as well. BTW, if you offered source code like DBA used to do then some of us (HINTHINTMEHINTHINT) might be able to either 1. Give more informed opinions of what is or is not reasonably feasible to do in Evo or 2. Do it themselves. ;-) Just a little more razzing about something I still don't fully support. (Remember *that* bloodfest? Shudder!) At least I can look at the old DBA source if I'm curious about the general way that things work. As it stands maybe I can redownload Tas7i and look for myself to see if it supports transactions. Something as simple as starting a transaction automatically at the beginning of a long task and automatically committing it on successful termination would be great. There would be no user viewable change except in the case of errors where the transaction would auto rollback. It doesn't seem like implimenting that would be overly difficult. (Update: Downloaded TAS and checked for myself. Yes, Tas7i does support transactions. Seems the support is pretty easy to add too!) |
Title: Re: Abortable Transactions Post by NovaZyg on 01/28/07 at 20:48:20 Yes, The docs say it is supported. But so did the docs to TAS 5 and we tried using it in 5 once. It did not work. So if in your spare time, you would like to test and prove that this feature works in 7 then we would be happy to take a look at implementing it in Evo. |
Title: Re: Abortable Transactions Post by kkmfg on 01/29/07 at 04:48:32 Sure thing, I'll learn TAS a bit and give it a whirl. Shouldn't be too hard to create a test app that uses it. I'd probably just have two code paths, one that starts a transaction, does some database work, and commits. Then one that starts a transaction, does database work, and then rolls back. Obviously one should update the database and one should not. Maybe a third path, one that starts a transaction, does work, and then dies. With no commit the database should still be left in a consistant state the same as before the transaction start. The third one is the real key... You want to know that if your machine locks up, catches fire, and explodes that the data on the server will still be consistant and safe. BTW, what about it did not work? Did it just plain not correctly abort transactions? Did it not actually do the correct all or nothing behavior? Never commits properly? |
Title: Re: Abortable Transactions Post by GasGiant on 01/29/07 at 07:11:53 I have another horror story today. A partially posted invoice is giving me fits. The program hung on the last invoice of the day and the runtime had to be killed. The material transactions have gone through, but the SO is still open. We can't void the invoice, since it is not fully posted, but we can't post it because the system thinks it has been posted. There are two different invoice numbers in different places (BKARINV vs BKARHINV) for the same transactions. Sweet. |
Title: Re: Abortable Transactions Post by kkmfg on 01/29/07 at 09:01:32 Sorry to hear that. We've had some *weird* things happen with crashing programs as well. I hope that Tas7i really does support transactions fairly well so that ISTech can put transactions into critical places. |
ISTech Support Forum » Powered by YaBB 2.1! YaBB © 2000-2005. All Rights Reserved. |