Προς το περιεχόμενο

MySQL Connection (Solved)


nkeroulis

Προτεινόμενες αναρτήσεις

Δημοσ.

Θέλω το πρόγραμμα μου να είναι σε συνεχή συνδεση με μια MySQL Βάση δεδομένων.

Βλέπω όμως οτι οταν κάνω την σύνδεση αν δεν στείλω κάτι για 1sec κλείνει απο μόνη της.

Μπορείτε να μου εξηγείσετε πως θα την κρατήσω ανοικτή?

Δημοσ.

Καταρχην ποιος ο λογος που θες να την αφησεις ανοιχτη ? Ειναι λαθος να εχεις μια συνδεση συνεχεια ανοιχτη για πολλους λογους. Η σωστη πρακτικη ειναι να ανοιγει η συνδεση, να κανεις οτι transaction θελεις και να κλεινει οσο πιο γρηγορα γινεται. Δωσε περισσοτερες λεπτομερειες ομως...

Δημοσ.

CONNECT

DO

-> CHECK CONNECTION

-->DOWNLOAD DATA FROM MYSQL

--->PROCESSING

---->UPLOAD DATA TO MYSQL

LOOP

 

Γιατι θέλω να τελειώνει την μια επανάληξη όσο ποιο γρήγορα γίνεται. Για να κλήσει και να ξανανοίξει μια σύνδεση θέλει τουλάχιστον 300ms που μου είναι πολύτιμα.

 

---------- Προσθήκη στις 00:32 ---------- Προηγούμενο μήνυμα στις 00:25 ----------

 

Φαντάσου οτι πρέπει να ανοιγοκλείνω την σύνδεση 2 φορές σε κάθε loop.

Απο Test συμπέρανα οτι: θέλει +1000ms χρησιμοποιώντας αυτην την τακτική.

Δημοσ.

google mysql persistent connection αν θες η σύνδεση να είναι πάντα ανοικτή..

Δημοσ.

Τελικά απο οτι κατάλαβα έχετε δικιο και δεν είναι προγραμματιστικά σωστό να την ανοίγω μια φορά. Αλλά κοιτάκτε τι συμβάινει:

 

Είναι ένα τεράστιο Loop.

  • (ΕΙΣΟΔΟΣ) Πρώτα ανοίγει μια σύνδεση διαβάζει τα columns Input κ Output απο έναν πίνακα και την κλείνει.
  • (ΕΠΕΞΕΡΓΑΣΙΑ) Βλέπει κάποια πράγματα απο το Input κ Output.
  • (ΕΞΟΔΟΣ) Ανοίγει πάλι την σύνδεση κ αναλόγως γεμίζει το Output κ αδιάζει το Input.

 

Δεν περιμένω να μου δώσετε απάντηση γιατι τελικά το πρόβλημα είναι στην αρχιτεκτονική του software.

Δημοσ.

Τελικά απο οτι κατάλαβα έχετε δικιο και δεν είναι προγραμματιστικά σωστό να την ανοίγω μια φορά. Αλλά κοιτάκτε τι συμβάινει:

 

Είναι ένα τεράστιο Loop.

  • (ΕΙΣΟΔΟΣ) Πρώτα ανοίγει μια σύνδεση διαβάζει τα columns Input κ Output απο έναν πίνακα και την κλείνει.
  • (ΕΠΕΞΕΡΓΑΣΙΑ) Βλέπει κάποια πράγματα απο το Input κ Output.
  • (ΕΞΟΔΟΣ) Ανοίγει πάλι την σύνδεση κ αναλόγως γεμίζει το Output κ αδιάζει το Input.

 

Δεν περιμένω να μου δώσετε απάντηση γιατι τελικά το πρόβλημα είναι στην αρχιτεκτονική του software.

Δημοσ.
Γιατί δεν δοκιμάζεις μια λογική όπως παρακάτω;

 

>
Open Connection
Open Transaction
...Do your work...
Close transaction
Close Connection

 

Τι είναι το "Transaction" ?

Δημοσ.
Γιατί δεν δοκιμάζεις μια λογική όπως παρακάτω;

 

>
Open Connection
Open Transaction
...Do your work...
Close transaction
Close Connection

 

Τι είναι το "Transaction" ?

Δημοσ.

Φαντάσου το σαν ομάδα εντολών. Λές

Έναρξη ομάδας εντολών.

εντολή 1

εντολή 2

.....

εντολή Ν

εκτέλεση εντολών

 

Σε περίπτωση που μια από αυτές τις εντολές αποτύχει να εκτελεστεί τοτέ καμιά δεν εκτελείτε. Χρησιμοποιήται κυρίος στο να προστατευσεις κέριες λειτουργίες από λάθη στα δεδομένα ή στις εντολές.

ΠΧ.

εναρξη ομαδας

αλλαγή κωδικού Μαθητή σε 4

εισαγωγή μαθητή 4 στην βιολογια

εισαγωγή μαθητή 4 στο τεστ βιολογίας.

εκτέλεση εντολών.

 

Σε περίπτωση που αποτύχη να αλαχθεί ο κωδικός του μαθητή

τοτέ οι εισαγωγές που ακολουθούν είτε θα εισάγουν λάθος μαθητή ή ανύπαρκτο. Σε αυτή την περίπτωση αποτύγχανουν και οι εισαγωγές

Δημοσ.

Φαντάσου το σαν ομάδα εντολών. Λές

Έναρξη ομάδας εντολών.

εντολή 1

εντολή 2

.....

εντολή Ν

εκτέλεση εντολών

 

Σε περίπτωση που μια από αυτές τις εντολές αποτύχει να εκτελεστεί τοτέ καμιά δεν εκτελείτε. Χρησιμοποιήται κυρίος στο να προστατευσεις κέριες λειτουργίες από λάθη στα δεδομένα ή στις εντολές.

ΠΧ.

εναρξη ομαδας

αλλαγή κωδικού Μαθητή σε 4

εισαγωγή μαθητή 4 στην βιολογια

εισαγωγή μαθητή 4 στο τεστ βιολογίας.

εκτέλεση εντολών.

 

Σε περίπτωση που αποτύχη να αλαχθεί ο κωδικός του μαθητή

τοτέ οι εισαγωγές που ακολουθούν είτε θα εισάγουν λάθος μαθητή ή ανύπαρκτο. Σε αυτή την περίπτωση αποτύγχανουν και οι εισαγωγές

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...