Restaurer la
DBCleanUp tâche :
Etape 1 : effectuez une sauvegarde de la base de données ePO avant de procéder à toute modification. Pour obtenir des instructions sur la sauvegarde de la base de données SQL, reportez-vous à l’un des articles suivants :
Etape 2 : confirmez que vous rencontrez le problème décrit dans cet article.
- Connectez-vous à la Microsoft SQL Server Management Studio.
- Développez bases de données.
- Cliquez avec le bouton droit sur la base de données ePO (dont le nom par défaut est ePO_ ) et sélectionnez nouvelle requête.
- Collez les instructions SQL suivantes dans la fenêtre requête et déterminez les tâches de nettoyage qui se trouvent dans la table OrionTaskQueueMT :
SELECT
SUBSTRING(TaskDescription, LEN(LEFT(TaskDescription, CHARINDEX ('<name>', TaskDescription))) + 6, LEN(TaskDescription) - LEN(LEFT(TaskDescription, CHARINDEX ('<name>', TaskDescription))) - LEN(RIGHT(TaskDescription, LEN(TaskDescription) - CHARINDEX ('</name>', TaskDescription))) - 6) as 'Task Name',
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, OrionTaskQueueMT.RunTime), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS 'Local Start Time',
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, OrionTaskQueueMT.EnqueuedTime), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS 'Local Queued Time',
CASE WHEN State=0 THEN 'Queued' WHEN State=1 THEN 'INVALID' WHEN State=2 THEN 'Pending/Waiting' WHEN State=3 THEN 'Running' ELSE 'Unknown' END as 'State'
FROM OrionTaskQueueMT
where taskdescription like '%db clean%'
- Cliquez sur exécuter.
Les résultats varient en fonction de la version d’ePO que vous utilisez.
Résultats attendus :
ePO 5.9.x
Nom de la tâche |
Heure de début locale |
Heure locale dans la file d’attente |
Etat |
DB Clean-up Task |
|
|
En file d'attente |
ePO5.10
Nom de la tâche |
Heure de début locale |
Heure locale dans la file d’attente |
Etat |
DB Clean-up Task |
|
|
En file d'attente |
DC DB Clean-up Tasks |
|
|
En file d'attente |
Important : Si les résultats affichés sur votre serveur sont
similaires aux exemples ci-dessus (une ligne renvoyée sur une base de données ePO 5.9.x ou deux lignes renvoyées sur une 5.10 base de données), vous rencontrez un problème différent. Arrêtez-vous ici et contactez le support technique. Pour plus d’informations, consultez le champ "informations connexes".
Etape 3 : Déterminez l’ID de la tâche manquante dans les résultats ci-dessus.
Si vous
ne voyez pas les résultats attendus ci-dessus, et qu’il y a une tâche manquante, exécutez la requête suivante pour afficher les identificateurs de tâche de la
OrionSchedulerTaskMT table :
SELECT Id, name, UniqueKey, Enabled FROM OrionSchedulerTaskMT WHERE name like '%db clean%'
Remarque : Le script ci-dessus détermine les ID des tâches manquantes.
Résultats attendus :
ePO 5.9.x
ID |
Nom |
Clé unique UniqueKey |
Désactivé |
6 |
Tâche de nettoyage de la base de données |
DBCleanupTask |
1 |
ePO5.10.x
ID |
Nom |
Clé unique UniqueKey |
Désactivé |
7 |
Tâche de nettoyage de la base de données |
ClientTaskCleanupTask |
1 |
87 |
DC DB CleanUp Task |
DbCleanupTask |
1 |
Comparez les résultats ci-dessus avec les résultats de la requête précédente et déterminez l'
ID de la tâche manquante.
Exemple : Supposons que vous utilisez ePO 5.10 et que la requête de l'
étape 2 ne renvoie que la tâche de nettoyage de la base de données et
non la tâche de nettoyage de la base de données
CD . Ensuite, en fonction des résultats
OrionSchedulerTaskMT mentionnés ci-dessus du tableau, la tâche portant l’ID
87 est manquante dans le premier jeu de résultats.
Etape 4 : Vérifiez que le problème est résolu.
- Exécutez la commande suivante à l’aide d’un navigateur Web :
https://<ePO_server_name>:8443/remote/scheduler.updateServerTask?taskId=<ID_from_Step_3>&status=disabled&isHidden=true
- Lorsque vous êtes invité à entrer les informations d’identification, saisissez un utilisateur ePO disposant des autorisations d’administrateur global. Par exemple, l’utilisateur administrateur d’origine.
S’il existe une réponse autre que celle ci-dessous, indiquez le message d’erreur complet contenant les fichiers actuels orion.log à support technique et arrêtez-vous ici. Pour obtenir les coordonnées, reportez-vous à la section "informations connexes" ci-dessous.
OK
true
- Exécutez à nouveau la requête SQL de 'étape 3 ' pour afficher les résultats de la OrionSchedulerTaskMT table. Le résultat indique que la tâche est désactivée (activé = 0).
- Supprimer les enregistrements dans OrionSchedulerTaskQueueEntryMT en utilisant l’ID de la tâche manquante trouvée à l' étape 3:
DELETE FROM OrionScheduledTaskQueueEntryMT WHERE SchedulerTaskID = < ID_from_Step_3>
Remarque : Un message peut s’afficher, indiquant "0 ligne affectée. "Si tel est le cas, ce message n’indique pas un problème. Passez à l’étape suivante.
- Exécutez la commande suivante à l’aide d’un navigateur Web :
https://<ePO_server_name>:8443/remote/scheduler.updateServerTask?taskId=<ID_from_step_3>&status=enabled&isHidden=true
S’il existe une réponse autre que celle ci-dessous, indiquez le message d’erreur complet contenant les fichiers actuels Orion.log à support technique, puis arrêtez-vous ici. Pour obtenir les coordonnées, reportez-vous à la section "informations connexes" ci-dessous.
OK:
True
- Exécutez à nouveau les requêtes SQL des étapes 2 et 3 . La première requête doit désormais renvoyer les résultats attendus, comme indiqué dans l’exemple de l' étape 2. La deuxième requête est censée indiquer que la tâche est à nouveau activée (activé = 1).
Utilisez la requête ci-dessous pour afficher toutes les données sur une page :
SELECT
st.Id,
st.[name],
st.[UniqueKey],
st.[Enabled],
st.[type],
CASE WHEN tq.[state]=0 THEN 'Queued'
WHEN tq.[state]=1 THEN 'INVALID'
WHEN tq.[state]=2 THEN 'Pending/Waiting'
WHEN tq.[state]=3 THEN 'Running'
ELSE 'UNKNOWN'
END AS [state],
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, TQ.RunTime), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS 'Local Start Time',
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, TQ.EnqueuedTime), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS 'Local Queued Time'
FROM OrionSchedulerTaskMT as ST
INNER JOIN OrionScheduledTaskQueueEntryMT as TQE on ST.id=TQE.SchedulerTaskID
inner join OrionTaskQueueMT as TQ on tq.id=TQE.TaskQueueEntryID
WHERE ST.name like '%db clean%' or st.name like '%Task Queue Maintenance Task%'
Exemple de sortie :
ID |
Name |
UniqueKey |
Enabled |
Type |
State |
Local Start Time |
Local Queued Time |
4 |
Task Queue Maintenance Task |
scheduler.taskQueue.maintenance |
1 |
3 |
Queued |
2022-02-28 10:43:00.000 |
2022-02-28 10:43:15.267 |
7 |
DB Clean-up Task |
ClientTaskCleanupTask |
1 |
3 |
Queued |
2022-02-28 11:00:00.000 |
2022-02-28 10:00:13.720 |
35 |
DC DB CleanUp Task |
DbCleanupTask |
1 |
3 |
Queued |
2022-02-28 10:43:00.000 |
2022-02-28 10:43:15.263 |