Task ist hängengeblieben und lässt sich nicht beenden

Erstellt von Markus Pomper, Geändert am Do, 28 Sep, 2023 um 2:17 NACHMITTAGS von Michael Wörther

Dieser Leitfaden befasst sich mit dem Thema  "hängengebliebene Task" und wie diese bereinigt werden können.


Bild 1:Ein hängengebliebener Task


Tasks können aus unterschiedlichen Gründen hängenbleiben und lassen sich normalerweise über dem Client beenden.

Lässt sich der Task nicht über den Client beenden, hilft folgende Schritt für Schritt Anleitung:



Achtung: Durch Fehler beim SQL Update Befehl kann Ihr PDM-Tresor irreparabel beschädigt werden! 

  • Wenn Sie sich hier nicht sicher sind, dann kontaktieren Sie bitte unbedingt unseren Support! 
  • Erstellen Sie unbedingt ein vollständiges Backup der PDM-Tresor-Datenbank 
    VOR der Änderung!



Step 1: Vorbereitung

  • Über Remote mit PDM Server verbinden 
  • Auf dem Server das SQL Server Management Studio öffnen
    (Alternativ direkt auf dem Client, wenn das SQL Server Management Studio dort installiert ist)



Step 2: Zugriff auf die SQL-Datenbank und Backup

  • Mit einen User anmelden, welcher die Rechte zum Zugriff auf die PDM Tresor-Datenbank hat.
    (standardmäßig der User "sa" mit dem dazugehörigen Passwort)


  • Zur Sicherheit als erstes ein vollständiges Backup der PDM Tresor-Datenbank erstellen:




Step 3: Ausführung der SQL-Abfrage


In der PDM Datenbank gibt es einige Tabellen.
Die Taskliste und alle Tasks ( sowohl die offenen als auch die schon ausgeführten) stehen alle in der SQL-Tabelle „TaskInstances“.


Die Tasks können folgende Werte beim „TaskStatus“ haben:


-- 1 [Waiting for host],

-- 2 [Starting up],

-- 3 [In process],

-- 4 [Retrying],

-- 5 [Suspended],

-- 6 [Cancelling],

-- 7 [OK],

-- 8 [Cancelled],

-- 9 [Failed],

-- 10 [Suspending],

-- 11 [Resuming]


Als Erstes wird jetzt eine SQL SELECT Abfrage ausgeführt, um zu kontrollieren, ob wir damit die gleiche Anzahl  hängengebliebener Tasks gelistet bekommen , wie in der PDM Administration beim Client ersichtlich:


Select * from Taskinstances

Where TaskStatus in (6, 10, 11)


 

Wenn das übereinstimmt, dann wird als Nächstes  mit einem SQL-Update der Taskstatus dieser Tasks  auf "9" geändert, wodurch diese Tasks dann als "Fehlgeschlagen" unter den "erledigten Task" aufgelistet werden:

 

UPDATE TaskInstances

SET TaskStatus = 9

WHERE TaskStatus in (6, 10, 11)


(Ergänzung:

Man kann man den Update Befehl noch zusätzlich "absichern" indem man auch die TaskInstanceID mit  in die Query-Bedingungen aufnimmt. Damit ist sichergestellt, dass definitiv nur diese eine Task geändert wird:
sicher ist sicher...)


 

Nach dem Ausführen

sollte damit der Task beim Client unter "erledigte Task" zu finden sein:



War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren