Coda mysql

di il
2 risposte

Coda mysql

Buongiorno a tutti, vorrei chiedervi una cosa, io ho un due pc centralizzati su un solo DB. Questi due pc, hanno la possibilità di accendere tutti e due nello stesso DB, leggere e scrivere contemporaneamente, e questo per me è un problema, ho provato a usare Lock, ma senza buoni risultati, posto la struttura del codice.

		MysqlConn = New MySqlConnection
                    MysqlConn.ConnectionString =
                        "server=nome_server;userid=id;password=password ;database=nome_db"
                     Dim READER As MySqlDataReader

                    Try
                        'MysqlConn.Open()
                        Dim Query As String
                        Query = "LOCK TABLE nome_tabella WRITE"
                        Query = ……..
                        COMMAND = New MySqlCommand(Query, MysqlConn)
                        READER = COMMAND.ExecuteReader
                        
                      MysqlConn.Close()
                         Catch ex As MySqlException
                        MessageBox.Show(ex.Message)
                    Finally
                        MysqlConn.Dispose()
                    End Try
Questo e come io accedo al DB, ma se provo ad accedere con un altro pc, non attende che il primo pc finisca ed esca dal DB sicuramente perche uso il Lock in modo errato.Come faccio a dirgli al secondo pc di attendere fin quando il primo pc esce dal DB?

2 Risposte

  • Re: Coda mysql

    Non mi è chiarissimo che vuoi fare.
    Comunque i Lock bloccano il processo client fino a quando non va in timeout. Non attende per sempre, avresti starvation.
    quello che semmai ti serve é cambiare acid e aprire transazione
  • Re: Coda mysql

    Grazie +m2+, leggendo la tua risposta, mi rendo conto che non sono stato molto chiaro, nel senso:
    Io non ho problemi di timeout, ma l'opposto, mi spiego meglio:

    Ho due pc con il software avviato, su questo software ho un bottone, cliccandolo, entro nel DB, siccome l'entrata e l'uscita nel DB e molto rapida, se io premo il bottone del pc1, e dopo 2 secondo, premo il bottone del pc 2, non ho nessun problema, siccome l'operazione di entrata e uscita mi dura qualche millisecondo. Il mio problema nasce su io premo in contemporanea(distanza di meno di 1 secondo) mi entrano nel DB tutti e due, io vorrei che il pc su cui premo il tasto qualche attimo dopo, rimanga in attesa di quei pochi millisecondi che bastano per far uscire l'altro pc, facendo una spece di coda.
Devi accedere o registrarti per scrivere nel forum
2 risposte