Deep in the Code - Adventures in Software Development

Aventuri în dezvoltarea de software ... de David Young

Postări

Remedierea stării unui job SQL Server fără repornirea serviciilor

deep

Ieri dimineață am primit înștiințarea că o lucrare SQL Server pentru o aplicație pe care o susțin și care rulează în mod normal destul de regulat nu funcționează. Această slujbă nu a fost lansată de un program manual, ci a fost chemată din altă parte.

Am reușit să rulez manual lucrarea fără nicio problemă. Cu toate acestea, lucrarea nu a început să ruleze „automat” așa cum era de așteptat. După câteva săpături, am aflat că lucrarea a fost lansată într-o declanșare a bazei de date pe INSERT.

Secțiunea de cod care a început lucrarea arăta astfel:

Deci, acest cod ar trebui să returneze un rând doar (și să prevină executarea lucrării dacă lucrarea este deja în curs de executare. Lucrarea nu se desfășura și totuși un rând a revenit spunând că lucrarea a început cu două zile înainte și nu s-a terminat niciodată.

S-a întâmplat ca clusterul SQL Server să fie repornit exact în acel moment. Slujba părea să ruleze, dar nu a fost.

Prima soluție: reporniți agentul SQL Server. Acest lucru nu a avut niciun efect asupra tabelului de activitate sysjob.

A doua soluție: reporniți întreaga instanță SQL Server. Acest lucru nu a fost făcut, din cauza operațiunilor critice la locul de muncă.

Ce altceva s-ar putea face?

Actualizarea manuală a tabelului pentru a reflecta faptul că jobul nu mai rulează!

Rularea acestui bloc de cod introduce un timp (acum) pentru finalizarea executării lucrării și, de asemenea, trimite manual o comandă de oprire a lucrării în cazul în care lucrarea a început între timp.

După aceasta, declanșatorul a funcționat așa cum era de așteptat!

Imparte asta:

  • LinkedIn
  • Reddit
  • Facebook
  • Stare de nervozitate
  • Pinterest
  • Marea

Widgeturi în Temenos Quantum Visualizer pentru iOS și Android

În ultimele câteva săptămâni, am construit o aplicație folosind Temenos (fostul Kony) Quantum Visualizer versiunea 9. Această aplicație va fi trimisă în cele din urmă atât pe telefoanele și tabletele Apple, cât și pe cele Android, care este principalul motiv pentru care cineva ar folosi Visualizer în loc să dezvolte nativ cu XCode și Android Studio.

În teorie, codul JavaScript scris în Visualizer IDE va ​​avea ca rezultat aceeași interfață de utilizare atât pe platformele iOS, cât și pe cele Android, dar nu este întotdeauna cazul.

Pentru prima dată, am primit o eroare JavaScript reală în aplicația Android, în timp ce aplicația iOS a funcționat perfect. Aparent, Android nu este la fel de iertător atunci când lăsați accidental cuvântul cheie „nou” atunci când creați un widget - în cazul meu, un RadioButtonGroup. (Eroarea pe care am primit-o pe partea Android a fost „operațiune nevalidă: încercarea de a crea un obiect fără un cuvânt cheie„ nou ”.”)