[Python] MySQLdb connect non aggiorna i dati sui client

m m a pavis.biodec.com
Mer 2 Mar 2016 14:29:20 CET


* Carlo Miron (carlo at golang.it) [160302 14:21]:
>
>> sto migrando un' applicazione da sqlite a mysql, funziona tutto tranne che
>> per il fatto che se effettuo degli insert o update da un client queste
>> sono visibili
>> solo al client che esegue queste modifiche, mentre su tutti gli altri
>> devo chiudere l'applicazione e riavviarla.
>> Controllando sul server, le tabelle si aggiornano correttamente.
>> E' come se gli altri client vedessero le tabelle del server solo quando si
>> apre la connessione.
>

secondo me perché stanno all'interno di una transazione, e non la
chiudono mai, e il server sta andando con un livello di isolamento
'repeatable read' --- quindi gli fa vedere sempre lo stesso 'snapshot'
del database

se è quello (wild guess):
- puoi o portare il livello di isolamento a 'read committed'
   (sconsigliato)
- o cambiare l'applicazione in modo che chiuda la transazione (soluzione
   corretta)

per inciso, se la diagnosi è corretta, avresti quel comportamento anche
con postgresql o altri db

-- 
  .*.                            finelli
  /V\
(/ \) --------------------------------------------------------------
(   )       Linux: Friends dont let friends use Piccolosoffice
^^-^^ --------------------------------------------------------------

First shalt thou take out the Holy Pin. Then, shalt thou count to three,
no more, no less. Three shalt be the number thou shalt count, and the
number of the counting shalt be three. Four shalt thou not count, nor
either count thou two, excepting that thou then proceed to three. Five
is right out. Once the number three, being the third number, be reached,
then lobbest thou thy Holy Hand Grenade of Antioch towards thou foe, who
being naughty in my sight, shall snuff it.


Maggiori informazioni sulla lista Python