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: