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

Reply via email to