19.05.2020

Διένεξη κλειδώματος 1c ms sql. Πώς διέγνωσα προβλήματα αποκλεισμού


Δεν μπόρεσα να γράψω τις αλλαγές για μεταφορά σε μια κατανεμημένη βάση δεδομένων, επικοινώνησα με την υποστήριξη 1c και πρόσφερα τα ακόλουθα. Αποφάσισα να κάνω απλώς επανεκκίνηση του διακομιστή εφαρμογών και του διακομιστή με SQL. Σε γενικές γραμμές, μπορείτε να επιλέξετε το πλαίσιο «Ο αποκλεισμός έχει προγραμματιστεί
Περιλαμβάνονται εργασίες"
Βοήθησε επίσης χωρίς επανεκκίνηση.

Προγραμματισμένες λειτουργίες σε επίπεδο DBMS για MS SQL Server

Οδηγίες για την εκτέλεση λειτουργιών ρουτίνας σε επίπεδο DBMS.

Οι πληροφορίες ισχύουν για την έκδοση πελάτη-διακομιστή του 1C:Enterprise 8 κατά τη χρήση του MS SQL Server DBMS.

Γενικές πληροφορίες

Μία από τις πιο κοινές αιτίες μη βέλτιστης λειτουργίας του συστήματος είναι η εσφαλμένη ή μη έγκαιρη εκτέλεση λειτουργιών ρουτίνας σε επίπεδο DBMS. Είναι ιδιαίτερα σημαντικό να ακολουθείτε αυτές τις συνήθεις διαδικασίες σε μεγάλο βαθμό πληροφοριακά συστήματα ah, που λειτουργούν υπό σημαντικό φόρτο και εξυπηρετούν ταυτόχρονα μεγάλο αριθμό χρηστών. Η ιδιαιτερότητα τέτοιων συστημάτων έγκειται στο ότι οι συνήθεις ενέργειες που εκτελούνται αυτόματα από το DBMS (με βάση τις ρυθμίσεις) δεν επαρκούν για αποτελεσματική λειτουργία.

Εάν ένα λειτουργικό σύστημα εμφανίζει συμπτώματα προβλημάτων απόδοσης, θα πρέπει να επαληθεύσετε ότι το σύστημα έχει ρυθμιστεί σωστά και εκτελεί τακτικά όλες τις συνιστώμενες τακτικές εργασίες συντήρησης σε επίπεδο DBMS.

Η εκτέλεση των διαδικασιών ρουτίνας θα πρέπει να είναι αυτοματοποιημένη. Για την αυτοματοποίηση αυτών των λειτουργιών, συνιστάται η χρήση των ενσωματωμένων εργαλείων του MS SQL Server: Maintenance Plan. Υπάρχουν επίσης άλλοι τρόποι αυτοματοποίησης αυτών των διαδικασιών. Σε αυτό το άρθρο, για κάθε προγραμματισμένη διαδικασία, δίνεται ένα παράδειγμα της διαμόρφωσής της χρησιμοποιώντας το Σχέδιο συντήρησης για MS SQL Server 2005.

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

Ενημέρωση στατιστικών στοιχείων

Ο MS SQL Server δημιουργεί ένα σχέδιο ερωτημάτων που βασίζεται σε στατιστικές πληροφορίες σχετικά με την κατανομή των τιμών σε ευρετήρια και πίνακες. Οι στατιστικές πληροφορίες συλλέγονται με βάση ένα μέρος (δείγμα) δεδομένων και ενημερώνονται αυτόματα όταν αλλάξουν αυτά τα δεδομένα. Μερικές φορές αυτό δεν είναι αρκετό για τον MS SQL Server να δημιουργεί με συνέπεια το βέλτιστο σχέδιο για την εκτέλεση όλων των ερωτημάτων.

Σε αυτήν την περίπτωση, ενδέχεται να προκύψουν ζητήματα απόδοσης ερωτήματος. Ταυτόχρονα, χαρακτηριστικές ενδείξεις μη βέλτιστης εργασίας (non-optimal operations) παρατηρούνται σε σχέδια ερωτημάτων.

Προκειμένου να διασφαλιστεί το μέγιστο σωστή δουλειάΤο εργαλείο βελτιστοποίησης του MS SQL Server συνιστά να ενημερώνετε τακτικά τα στατιστικά στοιχεία της βάσης δεδομένων MS SQL.

Για να ενημερώσετε τα στατιστικά στοιχεία για όλους τους πίνακες βάσεων δεδομένων, πρέπει να εκτελέσετε το ακόλουθο ερώτημα SQL:

exec sp_msforeachtable N"ΕΝΗΜΕΡΩΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ? ΜΕ FULLSCAN"

Η ενημέρωση των στατιστικών δεν οδηγεί στο κλείδωμα των πινάκων και δεν θα παρεμβαίνει στην εργασία άλλων χρηστών. Τα στατιστικά στοιχεία μπορούν να ενημερώνονται όσο συχνά χρειάζεται. Θα πρέπει να ληφθεί υπόψη ότι το φορτίο στον διακομιστή DBMS κατά την ενημέρωση στατιστικών στοιχείων θα αυξηθεί, γεγονός που μπορεί να επηρεάσει αρνητικά συνολική απόδοσησυστήματα.

Η βέλτιστη συχνότητα ενημέρωσης στατιστικών εξαρτάται από το μέγεθος και τη φύση του φορτίου στο σύστημα και προσδιορίζεται πειραματικά. Συνιστάται η ενημέρωση των στατιστικών τουλάχιστον μια φορά την ημέρα.

Το παραπάνω ερώτημα ενημερώνει τα στατιστικά στοιχεία για όλους τους πίνακες της βάσης δεδομένων. Σε ένα πραγματικό σύστημα, διαφορετικοί πίνακες απαιτούν διαφορετικούς ρυθμούς ενημέρωσης στατιστικών στοιχείων. Αναλύοντας σχέδια ερωτημάτων, μπορείτε να προσδιορίσετε ποιοι πίνακες χρειάζονται τις πιο συχνές ενημερώσεις στατιστικών στοιχείων και να ορίσετε δύο (ή περισσότερες) διαφορετικές διαδικασίες ρουτίνας: για πίνακες που ενημερώνονται συχνά και για όλους τους άλλους πίνακες. Αυτή η προσέγγιση θα μειώσει σημαντικά τον χρόνο ενημέρωσης των στατιστικών και τον αντίκτυπο της διαδικασίας ενημέρωσης στατιστικών στη λειτουργία του συστήματος συνολικά.

Διαμόρφωση αυτόματης ενημέρωσης στατιστικών στοιχείων (MS SQL 2005)

Εκκινήστε το MS SQL Server Management Studio και συνδεθείτε στον διακομιστή DBMS. Ανοίξτε το φάκελο Διαχείριση και δημιουργήστε νέο σχέδιουπηρεσία:

Δημιουργήστε ένα υποπρόγραμμα (Προσθήκη υποσχεδίου) και ονομάστε το "Ενημέρωση στατιστικών στοιχείων". Προσθέστε την εργασία ενημέρωσης στατιστικών στοιχείων σε αυτήν από τη γραμμή εργασιών:

Ρυθμίστε ένα πρόγραμμα ενημέρωσης στατιστικών στοιχείων. Συνιστάται η ενημέρωση των στατιστικών τουλάχιστον μία φορά την ημέρα. Εάν είναι απαραίτητο, η συχνότητα ενημέρωσης των στατιστικών μπορεί να αυξηθεί.

Ορίστε τις ρυθμίσεις εργασιών. Για να το κάνετε αυτό, κάντε διπλό κλικ στην εργασία στην κάτω δεξιά γωνία του παραθύρου. Στη φόρμα που εμφανίζεται, καθορίστε το όνομα της βάσης δεδομένων (ή πολλών βάσεων δεδομένων) για τις οποίες θα ενημερωθούν τα στατιστικά στοιχεία. Επιπλέον, μπορείτε να καθορίσετε για ποιους πίνακες θα ενημερώσετε τα στατιστικά στοιχεία (αν δεν γνωρίζετε ακριβώς ποιους πίνακες πρέπει να καθορίσετε, ορίστε την τιμή σε Όλα).

Η ενημέρωση των στατιστικών πρέπει να γίνεται με ενεργοποιημένη την επιλογή Full Scan.

Αποθηκεύστε το σχέδιο που δημιουργήθηκε. Όταν φτάσει η ώρα που καθορίζεται στο πρόγραμμα, τα στατιστικά στοιχεία θα ενημερωθούν αυτόματα.

Εκκαθάριση της διαδικαστικής προσωρινής μνήμης

Το πρόγραμμα βελτιστοποίησης του MS SQL Server αποθηκεύει προσωρινά σχέδια ερωτημάτων για εκ νέου εκτέλεση. Αυτό γίνεται για να εξοικονομηθεί χρόνος για τη σύνταξη ενός ερωτήματος εάν το ίδιο ερώτημα έχει ήδη εκτελεστεί και το σχέδιό του είναι γνωστό.

Είναι πιθανό ο MS SQL Server, βασιζόμενος σε ξεπερασμένες στατιστικές πληροφορίες, να δημιουργήσει ένα μη βέλτιστο σχέδιο ερωτημάτων. Αυτό το σχέδιο θα αποθηκευτεί στην προσωρινή μνήμη διαδικασιών και θα χρησιμοποιηθεί όταν κληθεί ξανά το ίδιο ερώτημα. Εάν έχετε ενημερώσει τα στατιστικά στοιχεία αλλά δεν έχετε εκκαθαρίσει τη διαδικαστική προσωρινή μνήμη, τότε ο SQL Server μπορεί να επιλέξει το παλιό (μη βέλτιστο) σχέδιο ερωτημάτων από τη μνήμη cache αντί να δημιουργήσει ένα νέο (καλύτερο) σχέδιο.

Για να διαγράψετε τη διαδικαστική προσωρινή μνήμη του MS SQL Server, πρέπει να εκτελέσετε το ακόλουθο ερώτημα SQL:

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

Διαμόρφωση διαδικαστικής εκκαθάρισης προσωρινής μνήμης (MS SQL 2005)

Δεδομένου ότι η προσωρινή μνήμη διαδικασιών πρέπει να εκκαθαρίζεται κάθε φορά που ενημερώνονται τα στατιστικά στοιχεία, συνιστάται η προσθήκη αυτής της λειτουργίας στο ήδη δημιουργημένο υποπλάνο "Ενημέρωση στατιστικών". Για να το κάνετε αυτό, ανοίξτε το υποσχέδιο και προσθέστε την Εργασία δήλωσης εκτέλεσης T-SQL στο σχήμα του. Στη συνέχεια, θα πρέπει να συνδέσετε την εργασία ενημέρωσης στατιστικών στοιχείων με ένα βέλος στη νέα εργασία.

Στο κείμενο της δημιουργημένης εργασίας Execute T-SQL Statement Task, θα πρέπει να καθορίσετε το ερώτημα "DBCC FREEPROCCACHE":

Ανασυγκρότηση ευρετηρίου

Όταν εργάζεστε εντατικά με πίνακες βάσεων δεδομένων, εμφανίζεται η επίδραση του κατακερματισμού των ευρετηρίων, η οποία μπορεί να οδηγήσει σε μείωση της αποτελεσματικότητας των ερωτημάτων.

sp_msforeachtable N"DBCC INDEXDEFRAG (<имя базы данных>, ""?"")"

Η ανασυγκρότηση ευρετηρίου δεν αποκλείει πίνακες και δεν θα παρεμβαίνει στην εργασία άλλων χρηστών, ωστόσο, δημιουργεί ένα πρόσθετο φορτίο στον SQL Server. Η βέλτιστη συχνότητα εκτέλεσης αυτής της διαδικασίας ρουτίνας θα πρέπει να επιλέγεται σύμφωνα με το φορτίο στο σύστημα και το αποτέλεσμα που προκύπτει από την ανασυγκρότηση. Συνιστούμε να κάνετε ανασυγκρότηση των ευρετηρίων σας τουλάχιστον μία φορά την εβδομάδα.

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

Διαμόρφωση ανασυγκρότησης ευρετηρίου (MS SQL 2005)

Στο πρόγραμμα συντήρησης που δημιουργήθηκε προηγουμένως, δημιουργήστε ένα νέο υποσχέδιο με το όνομα "Reindex". Προσθέστε μια εργασία ευρετηρίου Rebuild σε αυτό:

Ορίστε το χρονοδιάγραμμα εκτέλεσης για την εργασία ανασυγκρότησης ευρετηρίου. Συνιστάται η εκτέλεση της εργασίας τουλάχιστον μία φορά την εβδομάδα και εάν τα δεδομένα στη βάση δεδομένων είναι εξαιρετικά ασταθή, ακόμη πιο συχνά - έως και μία φορά την ημέρα.

Εκ νέου ευρετηρίαση πινάκων βάσης δεδομένων

Η αναπροσαρμογή πινάκων περιλαμβάνει μια πλήρη ανακατασκευή ευρετηρίων πινάκων βάσεων δεδομένων, η οποία οδηγεί σε σημαντική βελτιστοποίηση της εργασίας τους. Συνιστάται η τακτική αναπροσαρμογή των πινάκων της βάσης δεδομένων. Για να αναπροσαρμόσετε όλους τους πίνακες βάσης δεδομένων, πρέπει να εκτελέσετε το ακόλουθο ερώτημα SQL:

sp_msforeachtable N"DBCC DBREINDEX(""?"")"

Η αναπροσαρμογή των πινάκων τους αποκλείει κατά τη διάρκεια της εργασίας τους, γεγονός που μπορεί να επηρεάσει σημαντικά την εργασία των χρηστών. Από αυτή την άποψη, συνιστάται η εκ νέου ευρετηρίαση κατά τη διάρκεια του ελάχιστου φορτίου συστήματος.

Μετά την εκ νέου ευρετηρίαση, δεν υπάρχει ανάγκη ανασυγκρότησης των ευρετηρίων.

Ρύθμιση αναπροσαρμογής ευρετηρίου πίνακα (MS SQL 2005)

Στο σχέδιο συντήρησης που δημιουργήθηκε προηγουμένως, δημιουργήστε ένα νέο υποσχέδιο με το όνομα "Ανασυγκρότηση ευρετηρίου". Προσθέστε μια εργασία αναδόμησης ευρετηρίου σε αυτήν:

Ορίστε το χρονοδιάγραμμα εκτέλεσης για την εργασία αναπροσαρμογής του πίνακα. Συνιστάται η εκτέλεση της εργασίας κατά τη διάρκεια του ελάχιστου φορτίου στο σύστημα, τουλάχιστον μία φορά την εβδομάδα.

Προσαρμόστε την εργασία καθορίζοντας τη βάση δεδομένων (ή πολλές βάσεις δεδομένων) και επιλέγοντας τους απαιτούμενους πίνακες. Εάν δεν γνωρίζετε ακριβώς ποιους πίνακες να καθορίσετε, ορίστε την τιμή σε Όλα.

Τι είναι οι κλειδαριές στο 1C, γιατί χρειάζονται και πώς να αποφύγετε προβλήματα όταν εργάζεστε μαζί τους

Σίγουρα, πολλοί από εσάς, όταν χρησιμοποιείτε συστήματα πληροφοριών 1C Enterprise (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3), έχετε αντιμετωπίσει ένα φαινόμενο όπως ο αποκλεισμός. Επιπλέον, κατά κανόνα, ο καθένας αποκαλεί αυτό το φαινόμενο διαφορετικά: "Κλείδωμα 1C", "σύγκρουση κλειδώματος 1C", "Σφάλματα κλειδώματος 1C", "Κλείδωμα συναλλαγών 1C" και άλλα ονόματα. Ας καταλάβουμε εν συντομία τι είναι οι κλειδαριές (όχι αδιέξοδα), γιατί χρειάζονται και πώς να αποφύγετε προβλήματα όταν εργάζεστε μαζί τους.


Κλειδαριές (συμπεριλαμβανομένου του 1C και σε άλλα συστήματα) χρήσιμο εργαλείο, το οποίο παρέχει τη δυνατότητα διαδοχικής εργασίας με κοινόχρηστους πόρους. Για παράδειγμα, η έννοια των «κοινόχρηστων πόρων» μας περιβάλλει στη ζωή, για παράδειγμα, ενώ οδηγείτε ένα αυτοκίνητο, κανείς άλλος δεν μπορεί να το οδηγήσει. Επομένως, ένα αυτοκίνητο είναι ένας κοινός πόρος. Και ο δεύτερος οδηγός σας περιμένει να φτάσετε, για παράδειγμα, η γυναίκα / ο σύζυγός σας. Και οι δύο ανταγωνίζεστε για έναν κοινό πόρο - ένα αυτοκίνητο. Ποιος θα οδηγήσει το αυτοκίνητο αυτή τη στιγμήΕσείς ορίζετε σε εννοιολογικό επίπεδο, αλλά πώς πρέπει να είμαστε μέσα αυτοματοποιημένα συστήματα??? Για να το κάνουν αυτό, βρήκαν ένα εργαλείο μπλοκάρισμα, τα οποία οργανώνουν τη διαδικασία πρόσβασης σε έναν κοινόχρηστο πόρο και ορίζουν μια ουρά. Κατά κανόνα, στη ζωή, όπως και στα συστήματα πληροφοριών (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3), υπάρχουν πολλοί κοινοί πόροι και επομένως υπάρχουν και πολλές κλειδαριές. Τώρα το δεύτερο σημαντικό σημείο - πόσο καιρό θα περιμένει η γυναίκα / ο σύζυγός σας για την απελευθέρωση του αυτοκινήτου σας, είναι λογικό να υποθέσουμε ότι δεν θα διαρκέσει για πάντα. Επομένως, για τις κλειδαριές, ορίζεται όριο χρονικού ορίου - διαφορετικά, ο χρόνος λήξης. Το χρονικό όριο είναι το μέγιστο χρονικό διάστημα που μπορεί να περιμένει ένας αντίπαλος συμμετέχων (η σύζυγος/σύζυγός σας) για να κυκλοφορήσει ένας κοινόχρηστος πόρος. Μετά είτε συνεχίζει να περιμένει την ίδια ώρα, είτε πηγαίνει με τα πόδια. Στα συστήματα πληροφοριών 1C, η λήξη του χρονικού ορίου λήξης τελειώνει με το μήνυμα "Σφάλμα κλειδώματος 1C", "Σφάλματα κλειδώματος 1C", "Κλείδωμα συναλλαγών 1C", "Χρονικό όριο στο κλείδωμα".

Μια σημαντική λεπτομέρεια που πρέπει επίσης να θυμόμαστε είναι ότι οι κλειδαριές (ιδίως στο 1C) είναι σαφείς (ορίζονται από τον χρήστη) και σιωπηρές (ορίζονται από την πλατφόρμα SQL). Στο άρθρο μιλάμε για ρητές κλειδαριές, επομένως χρησιμοποιούνται πάντα σε μια συναλλαγή, επομένως αποδεικνύεται ότι το "1C Lock" και το "1C Transaction Lock" είναι συνώνυμα.

Αποφασίσαμε ότι όταν ξεπεραστεί το χρονικό όριο, εμφανίζεται ένα μήνυμα σφάλματος στον χρήστη, η ίδια η διαδικασία αναμονής μοιάζει με μια κολλώδη οθόνη του συστήματος πληροφοριών 1C γι 'αυτόν. Οι παρακάτω δείκτες επηρεάζουν την πιθανότητα ενός μηνύματος χρονικού ορίου (σφάλματα 1C για τον χρήστη):

  • Πολλά κλειδώματα 1C σε μια συναλλαγή.
  • Διάρκεια συναλλαγής.

Για να ελαχιστοποιήσετε τα μηνύματα που σχετίζονται με σφάλματα κλειδώματος, είναι απαραίτητο είτε να μειώσετε το σύνολο των κλειδαριών (βελτιστοποίηση επιλεκτικότητας) είτε να μειώσετε τη διάρκεια των συναλλαγών.
Τώρα ας αποφασίσουμε πώς μπορούν να επηρεαστούν αυτοί οι δείκτες σε ένα πραγματικό σύστημα πληροφοριών 1C.

Για να μειώσετε το μεγάλο μπλοκάρισμα:

Σε 1C:Enterprise 7.7:

Πληροφοριακό σύστημα 1C 7.7. για κλειδαριές, χρησιμοποιούνται κλειδαριές τραπεζιού, οι οποίες παραλύουν την εργασία των χρηστών. Κατά κανόνα, περισσότερα από 50 άτομα σε μία βάση δεδομένων δεν μπορούν να λειτουργήσουν χωρίς σφάλματα, ενώ προβλήματα μπορεί να εμφανιστούν και σε βάσεις δεδομένων από 20 χρήστες.
Λύση:

  • Εύκαμπτες κλειδαριές 1C από την εταιρεία "Softpoint". Με τη βοήθειά τους, όχι μόνο βελτιστοποιείτε πολλές κλειδαριές (αντικαθιστώντας τις κλειδαριές τραπεζιού με προσαρμοσμένες), αλλά και επιταχύνετε τις επιλογές, τις αναζητήσεις και τις αναφορές.
Σε 1C:Enterprise 8.x:
Πληροφοριακό σύστημα 1C 8.1., 1C 8.2., 1C 8.3. χρησιμοποιεί αυτόματα κλειδαριές πλεονάζοντος τύπου (REPEATABLEREAD, SERIALIZABLE). Αυτό οδηγεί σε επιδείνωση της εμπειρίας χρήστη από 100.
Λύση:
  • Οι διαχειριζόμενες κλειδαριές 1C είναι ένα ενσωματωμένο εργαλείο της πλατφόρμας 1C για πιο επιλεκτικές ρυθμίσεις κλειδαριάς. Για να το χρησιμοποιήσει, ο προγραμματιστής πρέπει να γράψει ειδικούς τελεστές στα σωστά σημεία στον κώδικα για να μπλοκάρει τους απαραίτητους ( κατά τη γνώμη του!) καταχωρήσεις στους πίνακες του πληροφοριακού συστήματος.
  • Ευέλικτες κλειδαριές 1C - Τεχνολογία Softpoint για αντικατάσταση τυπικών κλειδαριών με προσαρμοσμένες.

Για να μειώσετε τη διάρκεια των συναλλαγών:

Για οποιαδήποτε πληροφοριακά συστήματα 1C (1C 7.7., 1C 8.1, 1C 8.2, 1C 8.3), καθώς και για άλλα συστήματα πληροφοριών, χρησιμοποιούνται παρόμοιες προσεγγίσεις:

    Ελέγξτε και διορθώστε τη ρύθμιση συντήρηση ρουτίναςβάσεις δεδομένων (συντήρηση αρχείων, ευρετηρίων, στατιστικών στοιχείων, βάσεις δεδομένων προσωρινών πινάκων, εγκατάσταση Windows και SQLServer).

    Ανάλυση και βελτιστοποίηση βαρέων ερωτημάτων 1C και SQL (συντονισμός ευρετηρίου, επανεγγραφή ερωτημάτων).

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

  1. Εάν θέλετε να αντιμετωπίσετε ανεξάρτητα τα προβλήματα τεχνικής απόδοσης του 1C (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3) και άλλων συστημάτων πληροφοριών , τότε για εσάς μια μοναδική λίστα τεχνικών άρθρων στο Αλμανάκ μας (Κλειδαριές και αδιέξοδα, μεγάλος φόρτος CPU και δίσκου, συντήρηση βάσης δεδομένων και συντονισμός ευρετηρίου είναι μόνο ένα μικρό μέρος του τεχνικού υλικού που θα βρείτε εκεί).
  2. Εάν θέλετε να συζητήσετε θέματα απόδοσης με τον ειδικό μας ή να παραγγείλετε μια λύση παρακολούθησης απόδοσης PerfExpertστη συνέχεια αφήστε ένα αίτημα και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.

Γεια σε όλους!

Τις προάλλες στη δουλειά, αντιμετώπισα ένα πρόβλημα με τα λουκέτα, δηλαδή, άρχισε να εμφανίζεται το μήνυμα "Διένεξη κλειδώματος κατά την εκτέλεση συναλλαγής. Το μέγιστο χρονικό όριο για τη χορήγηση κλειδώματος έχει ξεπεραστεί".

Προφανώς εδώ δεν υπάρχει πρόβλημα αδιεξόδου, απλά κάποια συνεδρία έβαλε λουκέτο και «ξέχασε» να το αφαιρέσει. Την ίδια στιγμή, το πρόβλημα απειλείται με σοβαρές συνέπειες - το έγγραφο Πωλήσεις αγαθών και υπηρεσιών δεν πραγματοποιήθηκε. Περίπου 100 άτομα εργάζονται στη βάση δεδομένων κάθε φορά και είναι αδύνατο να πραγματοποιηθεί μια τυπική και συχνή λειτουργία!

Υπήρχαν δύο λύσεις - επανεκκίνηση του διακομιστή ή αναζήτηση αποτυχημένης περιόδου λειτουργίας. Η πρώτη λύση είναι απλή και γρήγορη, αλλά, όπως έγραψε ήδη κάποιος εδώ, μπορείτε να επανεκκινήσετε τον διακομιστή μέχρι να απολυθείτε. Αποφάσισε να ακολουθήσει τον δεύτερο δρόμο.

Την πρώτη μέρα - το πρόβλημα εμφανίστηκε το απόγευμα, στην αρχή φαινόταν ότι το πρόβλημα ήταν στον απομακρυσμένο χρήστη που είχε κολλήσει στο Configurator. Φαινόταν ότι η εκτέλεση σταμάτησε σε ένα σημείο και η κλειδαριά, φυσικά, δεν απελευθερώθηκε. Μετά από μερικές ώρες, καταφέραμε να απελευθερώσουμε το configurator, αλλά το πρόβλημα δεν εξαφανίστηκε. Ήταν εξαιρετικά ανεπιθύμητο να σκοτωθεί ο διαμορφωτής βίαια, ίσως δούλευαν σε αυτό. Μετά από αυτό, ανέλαβε η Google. Βρήκα ένα άρθρο σε αυτόν τον ιστότοπο, το οποίο λέει πώς να βρείτε κλειδαριές στο MS SQL DBMS, ελεγμένο, δεν υπήρχαν κλειδαριές σε επίπεδο DBMS. Παράξενος. Περαιτέρω, έγιναν προσπάθειες προσαρμογής αυτών. περιοδικό. Ρύθμιση, τι ακολουθεί; Σε 15 λεπτά μερικές συναυλίες κορμούς! Πώς να τα διαβάσετε, τι να αναζητήσετε; Αγνωστος.

Βρήκα ένα άρθρο σχετικά με το πώς να δω τι είναι αποκλεισμένο μέσω του SQL Trace. Ακόμα κι αν το βρω, τότε τι; Χρειάζομαι μια συνεδρία!

Πιο κοντά στις 16:00, όταν συνειδητοποίησα ότι δεν μπορούσα να το τραβήξω άλλο, έκανα μια επανεκκίνηση. Με την ελπίδα ότι αυτό δεν θα ξανασυμβεί (και αυτή ήταν η πρώτη περίπτωση μετά από έξι μήνες δουλειάς), ανάσασα με ανακούφιση, όλα λειτούργησαν. Αλλά μάταια ... Η δεύτερη μέρα - η ίδια κατάσταση. Έσκαψα μιάμιση ώρα, πάλι ακατανόητες απόπειρες γκουγκλάρισμα κ.ο.κ. Χωρίς αποτέλεσμα. Επανεκκίνηση. Στο τέλος της ημέρας συνέβη ξανά. Λοιπόν, νομίζω ότι είναι υπέροχο, θα επιστρέψω ήρεμα στο σπίτι και θα καθίσω, θα σκάψω πιο βαθιά. Γυρνάω σπίτι, όλα είναι καλά. Δυστυχώς.

Την τρίτη μέρα, παρακολούθησα ένα διαδικτυακό σεμινάριο, μίλησα για ένα ενδιαφέρον και αποτελεσματική μέθοδοςαναζήτηση για ένα πρόβλημα. Θυμήθηκε, αλλά το πρόβλημα δεν προέκυψε πια. Πέρασε μια εβδομάδα και ορίστε - και πάλι μπλοκάρισμα! Τρίβω τα χέρια μου και αρχίζω να ενεργώ.

Το πρώτο είναι η ρύθμιση του αρχείου καταγραφής. Ναι, δεν μπορώ χωρίς αυτό, αλλά τώρα μπορώ να το διαβάσω. Ορίσαμε δύο συμβάντα: το πρώτο είναι TLOCK, το δεύτερο είναι το TTIMEOUT. Το πρώτο εμφανίζει όλα τα συμβάντα αποκλεισμού, το δεύτερο εμφανίζει μπλοκαρίσματα που δεν ήταν δυνατό να δημιουργηθούν στον καθορισμένο χρόνο. Στην πραγματικότητα, πιθανότατα, μόνο το TTIMEOUT είναι αρκετό.



















Αντιγράφουμε το τεχνικό αρχείο καταγραφής στον καθορισμένο χώρο, πετάμε στο πρόγραμμα, καλούμε το lock, λαμβάνουμε ένα μήνυμα και αφαιρούμε ή μετονομάζουμε το αρχείο τεχνικού καταγραφής. Δεν χρειαζόμαστε πολλές πληροφορίες για άλλα μπλοκαρίσματα!

Μεταβείτε στο φάκελο rphost_PID, βρείτε αρχεία κειμένου και αναζητήστε τη λέξη TTIMEOUT. Βλέπουμε τη γραμμή:

53:16.789126-0,TTIMEOUT,5,process=rphost,p:processName=*****,t:clientID=16536,t:applicationName=1CV8,t:computerName=ASUSM,t:connectID=17272,SessionID= 2242,Usr=********,WaitConnections=8239

Παρεμπιπτόντως, μπορεί να υπάρχουν αρκετοί φάκελοι rphost_PID, όλα εξαρτώνται από το πόσες διεργασίες εργασίας εκτελούνται στον διακομιστή.

Και τότε όλα είναι απλά: κοιτάξτε στο τέλος της γραμμής - WaitConnections = 8239, αυτός είναι ο αριθμός ΣΥΝΔΕΣΗΣ μας. Πηγαίνουμε στην κονσόλα διακομιστή, πηγαίνουμε στις Συνδέσεις, βρίσκουμε αυτόν τον αριθμό και κοιτάμε τον αριθμό συνεδρίας. Στην περίπτωσή μου, υπήρχαν δύο συνεδρίες ανά χρήστη - μια αποτυχημένη και κάποια άλλη. Έσπασε η περίοδος λειτουργίας που υποδεικνύεται από το τεχνικό αρχείο καταγραφής. Και για ένα θαύμα! Όλα δούλεψαν, δεν υπάρχει όριο στη χαρά! Αλλά, όπως αποδείχθηκε αργότερα, η συνεδρία δεν κρεμάστηκε :), εργάστηκαν σε αυτήν. Επομένως, για το μέλλον, καλό είναι να επικοινωνήσετε με τον χρήστη και να προειδοποιήσετε.

Κατά τη γνώμη μου, μια αρκετά τυπική λύση σε ένα αρκετά τυπικό πρόβλημα. Δεν είναι γνωστό γιατί δεν το συνάντησα, ίσως λόγω του γεγονότος ότι έπρεπε να το ψάξω σε συναγερμό και όταν οι χρήστες δεν πίεσαν, τότε δεν ήταν δυνατή η διεξαγωγή δοκιμών - δεν υπήρχε σφάλμα.

Όταν εκατοντάδες χρήστες εργάζονται με προγράμματα και δεδομένα ταυτόχρονα, υπάρχουν προβλήματα που ενυπάρχουν μόνο σε λύσεις μεγάλης κλίμακας. Μιλάμε για προβλήματα που προκαλούνται από το κλείδωμα δεδομένων.

Μερικές φορές οι χρήστες ανακαλύπτουν για κλειδώματα από μηνύματα που υποδεικνύουν την αδυναμία εγγραφής δεδομένων ή εκτέλεσης κάποιας άλλης λειτουργίας. Μερικές φορές λόγω μιας πολύ σημαντικής πτώσης στην απόδοση του προγράμματος (για παράδειγμα, όταν ο χρόνος που απαιτείται για την εκτέλεση μιας λειτουργίας αυξάνεται δεκάδες ή εκατοντάδες φορές).

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

ΛΟΓΟΙ ΑΠΟΚΛΕΙΣΜΟΥ ΣΥΝΑΛΛΑΓΩΝ

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

Παράδειγμα 1: Αγορά εισιτηρίου αεροπλάνου ή τρένου. Ας υποθέσουμε ότι εκφράσαμε τις επιθυμίες μας στο ταμείο. Ο ταμίας μας λέει τη διαθεσιμότητα των θέσεων, από τις οποίες μπορούμε να επιλέξουμε αυτό που μας αρέσει περισσότερο (αν υπάρχουν αρκετές, φυσικά). Μέχρι να επιλέξουμε και να επιβεβαιώσουμε τη συμφωνία μας με την προτεινόμενη επιλογή, αυτές οι θέσεις δεν μπορούν να πωληθούν σε κανέναν άλλον, π.χ. προσωρινά αποκλεισμένο. Εάν δεν είχαν μπλοκαριστεί, τότε μέχρι τη στιγμή της επιβεβαίωσης μπορεί να υπάρξει μια κατάσταση όπου τα εισιτήρια που επιλέξαμε έχουν ήδη πουληθεί. Και σε αυτήν την περίπτωση, ο κύκλος επιλογής μπορεί να είναι ένας απρόβλεπτος αριθμός επαναλήψεων. Ενώ επιλέγουμε μέρη, αλλά έχουν ήδη πουληθεί! .. Ενώ επιλέγουμε άλλα, και δεν είναι πια εκεί...

Παράδειγμα 2: αγορά κάτι σε κατάστημα ή αγορά. Ανεβήκαμε στον πάγκο, διαλέξαμε το πιο όμορφο μήλο από τα εκατό διαθέσιμα. Διάλεξαν και έβαλαν το χέρι στην τσέπη τους για χρήματα. Πώς θα μοιάζει αν, ενώ μετράμε τα χρήματα, είναι το μήλο που επιλέξαμε που θα πουληθεί στον αγοραστή που ήρθε αργότερα από εμάς;

Έτσι, το μπλοκάρισμα από μόνο του είναι ένα απαραίτητο και χρήσιμο φαινόμενο. Χάρη στο μπλοκάρισμα εγγυόμαστε την εκτέλεση των ενεργειών σε ένα στάδιο. Και τις περισσότερες φορές όχι η πιο επιτυχημένη εφαρμογή οδηγεί σε αρνητικά λογισμικόόταν, για παράδειγμα:

  • ένας υπερβολικός αριθμός αντικειμένων (εισιτήρια, μήλα) είναι αποκλεισμένος.
  • ο χρόνος αποκλεισμού παρατείνεται αδικαιολόγητα.

ΥΠΕΡΒΟΛΙΚΑ INTERLOCK ΣΕ ΤΥΠΙΚΕΣ ΔΙΑΜΟΡΦΩΣΕΙΣ 1C

Επί μεγάλα έργαΚατά κανόνα, χρησιμοποιούμε 1C: Enterprise. Να γιατί πρακτικές συμβουλέςΘα προσπαθήσουμε να περιγράψουμε τις λύσεις σε προβλήματα αποκλεισμού χρησιμοποιώντας το παράδειγμα του πακέτου 1C:Enterprise + MS-SQL.

Η 8η γενιά του 1C:Enterprise παρέχει έναν πολύ, πολύ καλό παραλληλισμό χρήσης. Ταυτόχρονα με μία διαμόρφωση (δηλαδή σε μία βάση), με κανονικούς διακομιστές και κανάλια επικοινωνίας, μπορεί να λειτουργήσει μεγάλο ποσόχρήστες. Για παράδειγμα, εκατοντάδες αποθηκάριοι επεξεργάζονται την έκδοση ή την παραλαβή αγαθών, οι οικονομολόγοι υπολογίζουν ταυτόχρονα το κόστος των μισθών σύμφωνα με διάφορα τμήματα, οι αριθμομηχανές πραγματοποιούν τον υπολογισμό και τον υπολογισμό των μισθών κ.λπ.

Αλλά υπάρχει ένας λόγος για τον οποίο υπάρχει αντίθετη άποψη - ο μύθος ότι, με εντατική ταυτόχρονη χρήση, είναι άβολο ή αδύνατο να εργαστείτε με λύσεις που βασίζονται στο 1C: Enterprise. Εξάλλου, μόλις εκατοντάδες χρήστες αρχίσουν να χρησιμοποιούν τυπικές λύσεις για το 1C: Enterprise σε βιομηχανική κλίμακα, όλο και πιο συχνά εμφανίζεται ένα παράθυρο στην οθόνη με μια περήφανη επιγραφή: "Σφάλμα κατά την κλήση της μεθόδου περιβάλλοντος (Εγγραφή): Κλείδωμα διένεξη κατά την εκτέλεση μιας συναλλαγής: ...» και περαιτέρω ανάλογα με τον τύπο του διακομιστή SQL που χρησιμοποιείται, κάτι σαν «Παροχέας Microsoft OLE DB για SQL Server: Υπέρβαση της περιόδου λήξης αιτήματος κλειδώματος. ...».

Σχεδόν όλες οι τυπικές λύσεις στην προτεινόμενη υλοποίηση "out of the box" έχουν διαμορφωθεί για αυτόματη διαχείριση κλειδώματος. Το "Automatic" εδώ μπορεί να εκληφθεί ως "παρανοϊκό". Σε κάθε περίπτωση, κατά τη διεξαγωγή οποιουδήποτε εγγράφου, αποκλείουμε οτιδήποτε μπορεί να συνδεθεί με κάποιο τρόπο με αυτό. Αποδεικνύεται λοιπόν ότι όταν ένας χρήστης ξοδεύει κάτι (και μερικές φορές απλώς γράφει), οι υπόλοιποι δεν μπορούν παρά να περιμένουν.

Θα εκφράσω τη γνώμη μου γιατί η 1C αποφάσισε να μην προσαρμόσει τις τυπικές λύσεις της για υψηλό παραλληλισμό χρήσης. Το κόστος εργασίας για μια τέτοια βελτίωση δεν είναι υψηλό - λίγοι "άτομο-μήνες", το οποίο δεν είναι σημαντικό από την άποψη της κλίμακας 1C. Νομίζω ότι ο λόγος είναι διαφορετικός.

Πρώτον, μια τέτοια βελτίωση περιπλέκει σημαντικά τους επεξεργαστές για την ανάρτηση όλων των εγγράφων. Αυτό σημαίνει ότι για εκείνους τους καταναλωτές που χρησιμοποιούν 1C για μικρές εργασίες, χωρίς κανένα κέρδος θα υπάρχει μόνο ένα μειονέκτημα - η πολυπλοκότητα της οριστικοποίησης μιας τυπικής διαμόρφωσης θα γίνει πιο περίπλοκη. Ταυτόχρονα, τα στατιστικά στοιχεία δείχνουν ποια κατηγορία πελατών είναι ο κύριος τροφοδότης για 1C ...

Ο δεύτερος λόγος είναι θαμμένος στο τυπικό βασικές ρυθμίσειςΔιακομιστές SQL, όπως ο MS-SQL, ο οποίος εξακολουθεί να χρησιμοποιείται πιο συχνά από άλλους. Απλώς συνέβη ότι οι προτεραιότητες στις ρυθμίσεις δίνονται στην εξοικονόμηση RAM διακομιστή και όχι στη μείωση του αποκλεισμού. Αυτό οδηγεί στο γεγονός ότι, εάν είναι απαραίτητο να κλειδώσετε πολλές σειρές, ο διακομιστής SQL λαμβάνει μια "οικονομική" απόφαση για τη μνήμη και τον επεξεργαστή - να κλειδώσει ολόκληρο τον πίνακα ταυτόχρονα!..

Εδώ είναι τα ελαττώματα τυπικές λύσειςή οι ιδιαιτερότητες της ρύθμισης του διακομιστή βάσης δεδομένων που χρησιμοποιείται συχνά συγχέονται με προβλήματα που προκαλούνται από κλειδώματα. Ως αποτέλεσμα, οι τεχνικές ατέλειες οδηγούν σε πολύ σημαντικές οργανωτικά προβλήματα. Σε τελική ανάλυση, εάν ένας εργαζόμενος έχει λόγο να αποσπαστεί από την εργασία ή δικαιολογηθεί γιατί η εργασία δεν μπορούσε να γίνει, μια μειοψηφία θα λειτουργήσει αποτελεσματικά. Λοιπόν, ένα μήνυμα σχετικά με τον αποκλεισμό συναλλαγών ή ένα πρόγραμμα «επιβράδυνσης» είναι μια ιδανική αιτιολόγηση γιατί δεν μπορούσε να γίνει τίποτα.

ΣΥΣΤΑΣΕΙΣ ΓΙΑ ΚΑΤΑΡΓΗΣΗ ΤΟΥ ΥΠΕΡΒΟΛΙΚΟΥ ΜΠΛΟΚΑΡΙΣΜΟΥ ΓΙΑ 1C:ENTERPRISE

Τι να κάνετε εάν η επίλυση προβλημάτων υπερβολικού αποκλεισμού είναι τόσο σημαντική;

Στο τελικό στάδιο της υλοποίησης όλων των μεγάλων συγκροτημάτων, είναι απαραίτητο να πραγματοποιηθεί μια λεπτή βελτίωση προκειμένου να εξαλειφθούν οι περιττές κλειδαριές συναλλαγών. Είναι κρίσιμο να επιλυθούν προβλήματα που μπορεί να προκύψουν από ανεπαρκώς αναπτυγμένες συνθήκες αποκλεισμού ή μεθοδολογία εφαρμογής.

Επειδή αυτή τη λειτουργίαεξαιρετικά σημαντικό, πρέπει να πραγματοποιείται συνεχώς. Επομένως, για να απλοποιήσουμε την εφαρμογή μιας τέτοιας βελτίωσης, έχουμε αναπτύξει ορισμένες βασικές συστάσεις τις οποίες προσπαθούμε να τηρήσουμε. Λήφθηκαν συστάσεις και δοκιμάστηκαν με βάση την εμπειρία ενός σημαντικού αριθμού υλοποιήσεων μεγάλης κλίμακας.

  1. Εάν το DBMS ή το σύστημα ανάπτυξης (για παράδειγμα, 1C:Enterprise) χρησιμοποιεί λειτουργία αυτόματου κλειδώματος δεδομένων από προεπιλογή, απορρίψτε αυτόματο έλεγχοκλειδαριές. Ρυθμίστε μόνοι σας κανόνες αποκλεισμού, περιγράψτε τα κριτήρια αποκλεισμού για ολόκληρους πίνακες ή μεμονωμένες σειρές.
  2. Κατά την ανάπτυξη ενός προγράμματος, όποτε είναι δυνατόν, ανατρέξτε στους πίνακες με την ίδια σειρά.
  3. Προσπαθήστε να μην γράφετε στον ίδιο πίνακα πολλές φορές στην ίδια συναλλαγή. Εάν αυτό είναι δύσκολο, τότε τουλάχιστον ελαχιστοποιήστε το χρονικό διάστημα μεταξύ της πρώτης και της τελευταίας λειτουργίας εγγραφής.
  4. Αναλύστε τη δυνατότητα απενεργοποίησης της κλιμάκωσης κλειδώματος σε επίπεδο διακομιστή SQL.
  5. Ενημερώστε ξεκάθαρα τους χρήστες για τους λόγους αδυναμίας πραγματοποίησης οποιωνδήποτε ενεργειών εάν οφείλονται σε αποκλεισμό. Δώστε προσβάσιμες και κατανοητές συστάσεις για το τι πρέπει να κάνετε στη συνέχεια.

Αν κοιτάξετε προσεκτικά τις συστάσεις, γίνεται σαφές ότι μια τέτοια ανάπτυξη είναι κατάλληλη όχι μόνο για το 1C:Enterprise, αλλά για οποιαδήποτε συστήματα. Δεν έχει σημασία σε ποια γλώσσα είναι γραμμένα και με ποιο διακομιστή βάσης δεδομένων συνεργάζονται. Οι περισσότερες από τις συστάσεις είναι καθολικής φύσης και επομένως ισχύουν εξίσου κατά τη χρήση του 1C: Enterprise και για "αυτογραμμένα" προγράμματα ή άλλα συστήματα ERP "πλαισίων".

ΥΣΤΕΡΟΓΡΑΦΟ. Γνωρίζατε ότι προσφέρουμε επαγγελματική βοήθεια με την ενημέρωση του λογισμικού 1C καλύτερη τιμή?

Ετικέτες αναζήτησης:
  • Κλειδαριές συναλλαγών
  • Αφαίρεση μπλοκαρίσματος
  • Μπλοκάρισμα 1C
  • μπλοκάρισμα
  • Σύγκρουση κλειδώματος
  • Κλείδωμα διένεξης κατά την εκτέλεση μιας συναλλαγής

Σε συστήματα πολλών χρηστών σημαντικός ρόλοςπαίζει σωστή οργάνωσηκατασκευές και ρύθμιση κλειδαριών. Εάν όχι, οι χρήστες θα αντιμετωπίζουν συχνά σφάλματα που προκαλούνται από τον ανταγωνισμό για ορισμένους πόρους του συστήματος. Υπάρχει όμως ένα πρόβλημα διένεξης κλειδαριάς με το οποίο γνωρίζουν πολλοί χρήστες. Γιατί εμφανίζεται μια διένεξη κλειδώματος 1C και πώς να το διορθώσετε;

Διένεξη κλειδαριάς στο 1C 8.3 και η σημασία της

Για τους περισσότερους χρήστες, ένα μήνυμα διένεξης κλειδώματος 1C σημαίνει μόνο ένα σφάλμα που τους εμποδίζει να κάνουν τη δουλειά τους. Θέλουν να απαλλαγούν από αυτό το πρόβλημα το συντομότερο δυνατό και να πολιορκούν το τμήμα πληροφορικής με παράπονα ότι «το 1C δεν λειτουργεί».

Αλλά διαχειριστές συστήματοςκαι προγραμματιστές, ένα τέτοιο μήνυμα υποδεικνύει ένα πιθανό πρόβλημα στη δομή διαμόρφωσης. Πριν προσπαθήσετε να ευχαριστήσετε τους χρήστες και να αφαιρέσετε μπλοκ, πρέπει να αναλύσετε την κατάσταση και να κατανοήσετε την αιτία του μηνύματος σφάλματος.

Αιτίες σφαλμάτων αποκλεισμού στο 1C

Οι επιδεικτικές δοκιμές φορτίου δείχνουν ότι ο διακομιστής 1C μπορεί να αντέξει την παράλληλη λειτουργία περισσότερων από πέντε χιλιάδων χρηστών. Όμως οι ιδανικές συνθήκες για τέτοια πειράματα είναι αδύνατες στις καθημερινές συνθήκες των μεγάλων και μεσαίων επιχειρήσεων. Για να επιτύχετε παρόμοια απόδοση και απόδοση χωρίς σφάλματα, η διαμόρφωση πρέπει να είναι ιδανικά σχεδιασμένη και προσαρμοσμένη στις συγκεκριμένες επιχειρηματικές διαδικασίες της επιχείρησης.

Εάν δεν κάνετε ιδανικές επιλογές, τότε προκύπτουν διενέξεις κλειδώματος 1C για τους ακόλουθους λόγους:

Ταυτόχρονη εργασία χρηστών με μεγάλο όγκο δεδομένων.Αυτή η βασική αιτία υπαγορεύεται από τους εσωτερικούς μηχανισμούς του 1C. Συνεπάγονται την απαγόρευση αλλαγής των δεδομένων που εμπλέκονται σε μια συναλλαγή που δρομολογείται για λογαριασμό άλλου χρήστη.

Σφάλματα και ελλείψεις στη διαμόρφωση.Η δομή των τυπικών λύσεων από την εταιρεία "1C" λαμβάνει υπόψη συστάσεις για τη μεγιστοποίηση της παραγωγικότητας. Ωστόσο, οι προγραμματιστές τρίτων δεν τηρούν πάντα υψηλά πρότυπα και συχνά μπορείτε να βρείτε τις ακόλουθες ελλείψεις στον κώδικά τους:

  • Υποβέλτιστα αιτήματα.
  • Αίτημα για υπόλοιπα στην αρχή των ενεργειών.
  • Παρανόηση του σκοπού των αντικειμένων διαμόρφωσης και η εσφαλμένη χρήση τους.
  • Πλεονασμός εγγενής στο σύστημα ή επιπλέον ανεπτυγμένες κλειδαριές.

Πώς να διορθώσετε μια διένεξη κλειδαριάς στο 1C 8.3

Το μήνυμα συστήματος "σύγκρουση κλειδώματος κατά την εκτέλεση της συναλλαγής 1C 8.3" δεν χαρακτηρίζει τη διαμόρφωση ως εσφαλμένα σχεδιασμένη. Αν όμως αγνοηθούν τέτοια σήματα, τότε υπάρχει πιθανότητα την πιο κρίσιμη στιγμή, για παράδειγμα, κατά την υποβολή τριμηνιαίων ή ετήσιων εκθέσεων, να αντιμετωπίσετε μεγάλα προβλήματα. Στην καλύτερη περίπτωση, σύστημα επιβράδυνσης και δυσαρεστημένοι χρήστες. Στη χειρότερη, λανθασμένα δεδομένα εξόδου, τα οποία μπορούν να οδηγήσουν σε κυρώσεις από τις ρυθμιστικές αρχές.

Η λύση στο πρόβλημα της σύγκρουσης κλειδαριών στο 1C 8.3 μπορεί να είναι η μεταφορά της διαμόρφωσης σε μια διαχειριζόμενη (χειροκίνητη) λειτουργία διαχείρισης κλειδαριάς. Εφαρμόζεται στην έκδοση 8.1, ο μηχανισμός στα χέρια των ικανών ειδικών επιλύει το πρόβλημα των συγκρούσεων κλειδώματος κατά τις συναλλαγές στο 1C.


Θα πρέπει όμως να ληφθεί υπόψη ότι αυτή η ενέργεια θα μειώσει το επίπεδο προστασίας των δεδομένων από αλλαγές στη διαδικασία ανάγνωσης τους από άλλους χρήστες. Επομένως, εάν δεν είστε έτοιμοι να ελέγξετε ανεξάρτητα όλες τις κλειδαριές στο σύστημα, μην βιαστείτε να αλλάξετε τις ρυθμίσεις διαμόρφωσης.

Γρήγορη επίλυση διένεξης κλειδαριάς 1C

Στο έργο ενός διαχειριστή ή προγραμματιστή, μπορεί να υπάρχει μια κατάσταση όπου δεν υπάρχει χρόνος για να ελέγξετε το σφάλμα και να βρείτε τις βασικές αιτίες του προβλήματος. Για παράδειγμα, πρέπει να υποβάλετε μια αναφορά ή να υποβάλετε δεδομένα μέχρι μια συγκεκριμένη ώρα και τα σφάλματα αποκλεισμού 1C το αποτρέπουν.

Υπάρχουν δύο τρόποι για γρήγορη επίλυση του προβλήματος:

  • Βρείτε και τερματίστε την περίοδο λειτουργίας που έχει κλειδώσει τα απαιτούμενα δεδομένα. ΣΕ μικρές εταιρείες, όπου ο αριθμός των χρηστών 1C δεν υπερβαίνει τις μερικές δεκάδες άτομα, αυτή είναι η καλύτερη λύση.
  • Εάν ελέγχετε ένα σύστημα που έχει εκατοντάδες υπαλλήλους, η εύρεση της σωστής συνεδρίας χωρίς εξειδικευμένο λογισμικό μπορεί να διαρκέσει πολύ. Σε αυτήν την περίπτωση, θα είναι πολύ πιο αποτελεσματικό να κάνετε επανεκκίνηση του διακομιστή.

Αυτές οι λύσεις είναι ριζικές και στοχεύουν μόνο στη γρήγορη επίλυση του προβλήματος και στη δημοσιοποίηση δεδομένων για επείγουσα αναφορά. Μπορεί να εξαλειφθεί μόνο αν κατανοήσουμε τον λόγο για τον οποίο προέκυψε μια σύγκρουση κλειδώματος κατά την εκτέλεση μιας συναλλαγής 1C. Μετά από τέτοιες ενέργειες, είναι απαραίτητο να βρείτε τρωτά σημεία στο σύστημα, να βελτιστοποιήσετε τη διαμόρφωση ή την εργασία των εργαζομένων. Δεν συνιστάται η χρήση τέτοιων μέτρων σε μόνιμη βάση με τακτικές συγκρούσεις κλειδωμάτων στις συναλλαγές.


2023
newmagazineroom.ru - Λογιστικές καταστάσεις. UNVD. Μισθός και προσωπικό. Συναλλαγματικές πράξεις. Πληρωμή φόρων. ΔΕΞΑΜΕΝΗ. Ασφάλιστρα