Às 13:28 de 04/07/20, Carlos Correia escreveu:
Às 06:14 de 01/07/20, Massimo Di Pierro escreveu:
Yes. Only on PostgreSQL, MySQL and Firebird. Assuming the feature has not been broken over time, I do not know of anybody who used it.

On Thursday, 11 June 2020 12:51:48 UTC-7, Ari Lion BR Sp wrote:

    Hi to all,

    I am trying to  understand how to use the below feature:

    DAL.distributed_transaction_commit(db_a,  db_b)

    mentined here:
    
http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Distributed-transaction
    
<http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Distributed-transaction>

    Does web2py does the synchro work, through DAL?

    Thanks!


Hi, Massimo,

It seems to be broken :(


I have this piece of code in a controller to test a distributed transaction but it fails with: "ValueError: need more than 0 values to unpack". def index():
     response.flash = T("Hello World")
     db0 = DAL('postgres://belmiro:naosei@localhost/ennos__blm_0139' )
     db1 = DAL('postgres://belmiro:naosei@localhost/ennos__blm_0143' )
     DAL.distributed_transaction_begin( db0, db1 )
     db0.auth_event.insert(description='test tx 0' )
     db1.auth_event.insert(description='test tx 1' )
     DAL.distributed_transaction_commit( db0, db1 )
     return dict(message=T('Welcome to web2py!'))

Stack trace:
File ".../web2py/applications/welcome/controllers/default.py" <http://trane:8000/admin/default/edit/welcome/controllers/default.py>, line 12, in index DAL.distributed_transaction_begin( db0, db1 ) File ".../web2py/gluon/packages/dal/pydal/base.py", line 341, in distributed_transaction_begin keys = ['%s.%i' % (thread_key, i) for (i, db) in instances]

Best regards,


Indeed it has a bug in gluon/packages/dal/pydal/base.py at lines 341 and 342, which should be switched.

341         keys = ['%s.%i' % (thread_key, i) for (i, db) in instances]
342         instances = enumerate(instances)

should be:

341         instances = enumerate(instances)
342         keys = ['%s.%i' % (thread_key, i) for (i, db) in instances]

I switched the lines, tested, and it worked as expected. Shall I open an issue on Github?


Best regards,


Carlos Correia
=========================
MEMÓRIA PERSISTENTE
GSM:  917 157 146 (Signal, WhatsApp)
e-mail: ge...@memoriapersistente.pt
URL: http://www.memoriapersistente.pt
XMPP (Jabber): car...@memoriapersistente.pt
GnuPG: wwwkeys.eu.pgp.net

--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- You received this message because you are subscribed to the Google Groups "web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/0bd99e21-2f16-891c-1393-2b4ed260ec6d%40memoriapersistente.pt.

Reply via email to