Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MySql] interrompere query precedenti

    Ciao a tutti!
    Ho un dubbio che sicuramente voi saprete risolvermi...
    vorrei fare in modo che quando l'utente esegue un'operazione che necessita di un'interazione col DB, mi bloccasse, se eventualmente ancora in esecuzione, tutte le query da lui fatte...

    Esempio:
    l'utente clicca su "modifica" e nel frattempo riesce a cliccare su "elimina" di un record.. vorrei che mi bloccasse la prima query e procedesse solo con la seconda.

    Nelle query ho usato le transazioni per evitare problemi di inconsistenza..

    Vi ringrazio anticipatamente!


  2. #2
    Ho trovato il modo di salvarmi in sessione il ProcessID della query che ho eseguito con la transazione, ma se dal secondo file che è stato richiamato e che ha ricevuto il PID eseguo il

    KILL numPID

    vedo che continua ad eseguirla!! come mai?
    Sbaglio qualcosa?

  3. #3
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    La risposta è semplice: non si fa.
    E' il singolo utente mysql (il client più precisamente) ad avere una "visibilità", ma comunque non ha il minimo senso, perchè non riesci ad interrompere a metà un lungo thread mysql.

    Se non buttanto giù del tutto il server (es. kill -9).

    Direi di cambiare strategia per l'applicazione.

  4. #4
    Quindi non riuscirei comunque ad interrompere una transazione nel caso io non voglio che continui con il KILL ?
    Ho provato anche ad eseguire una nuova connessione, con i privilegi di SUPER USER ma comunque non me lo blocca...

    Mi chiedo quale altra alternativa ci sia..

  5. #5
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Originariamente inviato da webking2003
    Quindi non riuscirei comunque ad interrompere una transazione nel caso io non voglio che continui con il KILL ?
    Ho provato anche ad eseguire una nuova connessione, con i privilegi di SUPER USER ma comunque non me lo blocca...

    Mi chiedo quale altra alternativa ci sia..
    Scrivere un'applicazione che abbia una logica di funzionamento... logica.
    Una transazione arriva a conclusione, oppure no, ed avrai il commit, oppure il rollback, indipendentemente dai tentativi di "ucciderla".
    Lo scopo è esattamente quello di "non sapere" che esistono altri transazioni concorrenti che si disputano le risorse (tipicamente in scrittura) condivise.

    Francamente mi sfugge la motivazione di un approccio del genere: al 99.99999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999% lo vedo sbagliato anche senza conoscere i dettagli.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.