Open ERP uses serialised transactions which has the highest level of isolation between transactions. As the word serialised itself indicates, transactions seem to work as though they were executed one after the other and this is completely true in the case of writes to the database.
The problem with such an architecture is when there are concurrent transactions which wait for a specific transaction to complete before it can modify a record. For example Transaction A starts and calls get_id of the sequence ( which updates the sequence next number) and goes on for the next operation while the transaction remains uncommitted. In the meantime somebody else does an operation which starts a different transaction B, but the transaction will have to wait until transaction A completes because of the serialised nature. This causes OperationalError: could not obtain lock on row in relation "ir_sequence". Since version 6.0 of openerp it uses NOWAIT which means do not wait for the transaction which has a lock to complete, but just fail. This is not the ideal behaviour for a concurrent software. ** Summary changed: - Enterpise system NOT Enterprise capable, Only one concurrent transaction possible! + serialized transaction architecture flaw PLEASE COLLABORATE -- You received this bug notification because you are a member of C2C OERPScenario, which is subscribed to the OpenERP Project Group. https://bugs.launchpad.net/bugs/746620 Title: serialized transaction architecture flaw PLEASE COLLABORATE Status in OpenERP Server: New Bug description: OpenERP is classified as an Enterprise class software package. Meaning that more than one person, at least 2 should be able to use the system simultaneously. Like packers shipping products, taking orders, reserving products. I find that in fact, it is not possible for creation of stock moves simultaneously. Say I am importing orders from a shop. It is creating stock moves because the order is paid. At the same time I am shipping products which is normal for an ERP system. I might also import orders from a separate shop say a POS system. It is not possible! [2011-03-31 13:10:47,657][midwestsupplies] WARNING:stock.location:Failed attempt to reserve 1.0 x product 1669, li kely due to another transaction already in progress. Next attempt is likely to work. Detailed error available at D EBUG level. OperationalError: could not obtain lock on row in relation "ir_sequence" Two different errors. I can only perform one action at a time! What happens is that any time the program calls for a stock_move it will lock the stock_move table so no other process can access it which means that you cant do hardly anything unless its done individually. Now say with a MS system, or any Enterprise system would be able to handle many simultaneous actions but this program has a serious architecture flaw to not be able to support this. _______________________________________________ Mailing list: https://launchpad.net/~c2c-oerpscenario Post to : [email protected] Unsubscribe : https://launchpad.net/~c2c-oerpscenario More help : https://help.launchpad.net/ListHelp

