Cum am diagnosticat problemele de blocare

Ce trebuie să fac dacă o sesiune a blocat și împiedică toată lumea să lucreze? Cum să aflați ce sesiune ar trebui să fie ucisă, astfel încât problema să dispară? O astfel de problemă pentru administratori este destul de comună, dar din motive pe care nu le înțelegeam pe Internet, nu am putut găsi o soluție standard pentru această problemă. Și este!







Una dintre aceste zile la serviciu am întâmpinat problema blocărilor, și anume mesajul "Conflictul de blocare atunci când tranzacția a fost executată". Timpul maxim de așteptare pentru blocare a fost depășit ".

Cum am diagnosticat problemele de blocare

Evident, nu există nici o problemă de blocare aici, doar o sesiune a pus o cheie și "uitat" pentru a elimina. În același timp, problema a fost amenințată de consecințe grave - documentul privind Realizarea bunurilor și serviciilor nu a fost realizat. Aproximativ 100 de persoane lucrează la bază la un moment dat și este imposibil să efectueze o operațiune tipică și frecventă!

Au existat două soluții: repornirea serverului sau căutarea unei sesiuni eșuate. Prima soluție este simplă și rapidă, dar pe măsură ce cineva a scris deja, puteți reporni serverul până când sunteți concediat. Am decis să urmez a doua cale.

S-a găsit un articol despre cum să vezi ce este blocat prin intermediul SQL Trace. Da, chiar dacă găsesc, atunci ce? Am nevoie de o sesiune!







Mai aproape de ora 16:00, când mi-am dat seama că nu pot continua să trag, am făcut o repornire. În speranța că acest lucru nu se va întâmpla din nou (și acesta a fost primul caz în șase luni de muncă), a oftat cu ușurință, totul a funcționat. Dar în zadar. A doua zi este aceeași situație. Sărbătește aproximativ o oră și jumătate, din nou, încercări de neînțeles la google și altele. Niciun rezultat. Reboot. La sfârșitul zilei, sa întâmplat din nou. Ei bine, cred că e minunat, voi veni liniștit acasă și voi sta, voi săpa. Vin acasă, totul este normal. Este trist.

În a treia zi, webinarul sa uitat, a spus despre o modalitate interesantă și eficientă de a căuta problema. Îmi amintesc, dar problema nu mai apărea. A trecut o săptămână și aici blochează din nou! Îmi freesc mâinile și încep să acționez.

Copiem fișierul din jurnalul tehnic în spațiul alocat, zburați în program, sunați la blocare, primiți mesajul și eliminați sau redenumiți fișierul din jurnalul tehnic. Nu avem nevoie de multe informații despre alte încuietori!

Accesați directorul rphost_PID, găsiți fișiere text și căutați cuvântul TTIMEOUT. Vedem linia:

Apropo, directorul rphost_PID poate fi mai multe, totul depinde de câte procese de lucru rulează pe server.

Și totul este simplu: privim la sfârșitul liniei - WaitConnections = 8239, acesta este numărul nostru de CONNECȚIE. Mergem la consola serverului, mergeți la Conexiuni, găsiți acest număr și examinați numărul sesiunii. În cazul meu, au existat două sesiuni pentru un utilizator - o sesiune nereușită și un altul. Sesiunea pe care jurnalul tehnic arăta a izbucnit. Și despre un miracol! Totul a funcționat, nu există nici o limită pentru bucuria! Dar, așa cum sa dovedit mai târziu, sesiunea nu a fost suspendată :), a funcționat. Prin urmare, pentru viitor - este de dorit să contactați utilizatorul și să îl avertizați.

În opinia mea, o soluție tipică a unei probleme tipice este suficientă. Nu se știe de ce nu am primit-o, poate pentru că trebuia să o caut pe alarma și când utilizatorii nu au apăsat, atunci testele nu puteau fi efectuate - nu există nici o greșeală.







Articole similare

Trimiteți-le prietenilor: