Hi All, I'm building a high transaction traffic db application using Zope. I used for this tests two DB: MSAccess 97 and SQL Server 7.0 with the ZODBCDA product I have made some tests and I have found this: The test is: I have two DTML document called Test1 and Test2 I have 2 ZSQL Queries called Select1 and Select2 I have an external method (which id is Wait) that call the time.sleep(10) #it sleeps 10 seconds Test1 calls Select1 and then the Wait() Test2 calls Select2 First transaction test: Select1 and Select2 queries are equal:= select * from Users where name='example' I call test1 in a browser and immediately after test2 in another Browser. RESULT: Test2 wait the end of test1 before the page was displayed Second Transaction test: Select1 = select * from Users where name='example' Select2 = select * from Products where id='example' I call test1 in a browser and immediately after test2 in another Browser. RESULT: Test2 wait the end of test1 before the page was displayed!! Third Transaction test: Select1 = select * from Users where name='example' on the Access Connection Select2 = select * from Products where id='example' on the SQL sever Connection I call test1 in a browser and immediately after test2 in another Browser. RESULT: Test2 wait the end of test1 before the page was displayed!!!!!!!!!! :( Now Summarizing: I think the Zope transaction Server works in every Zope operation. This is good, but it seems that it uses a bad locking method. I mean when I read a DB (usually a select) I wouldn't to lock the entire DB and I would let the other DB session free to call select statements!! Am I right?? Or I do some mistake?? Thanks Very much for your cooperation Paolo Quaglia Information Technology Coordinator Sitek S.p.A. paolo@sitek.it
participants (1)
-
Paolo Quaglia