> Thanks for  your response. I wasn’t saying “do everything without 
> transactions”, because you can explicitly start a transaction if I’m not 
> mistaken. But for the built in CAS functionality it doesn’t work when using 
> implicit transactions. If you explicitly use a transaction and therefor 
> commit as soon as possible it will quicken the transaction, but that is not 
> the way the CAS server and the Authentication part of web2py seems to be 
> built. 
>
> It does work. The fact that with transactions it can't keep up with the 
traffic your experience is another problem...CAS and Auth in web2py do what 
they do in Mysql, SQLite, etc and the same in MSSQL. What you call 
"implicit transaction" is just calling "BEGIN TRAN" before any operation on 
the cursor and "COMMIT" everytime someone calls connection.commit(): this 
is done transparently by the various drivers API to respect the DBAPI spec.
 

> On the wrongness of my presentation of the problem I would gladly ask you 
> to visit 
> http://msdn.microsoft.com/en-us/library/ms187878%28v=SQL.100%29.aspx in 
> which is stated “Autocommit mode is the default transaction management mode 
> of the SQL Server Database Engine.”
>
> This only means that if you open a connection and do "update table set 
column = 0" the operation is carried on without being "forced" to call a 
COMMIT. MySQL and Postgresql works in this way, too. That being said, you'd 
normally want to use transactions issuing BEGIN, COMMIT, ROLLBACK because 
they are the safest way to use a relational db.
 

> My main intent was for others who might bump into the problem I 
> encountered to find a solution and save them hours of research. 
>
> No probl with that, but a "solution" that disables transaction support is 
a heavy price nonetheless.

-- 



Reply via email to