タスクの復元:
手順 1 に
DBCleanUp 進みます。変更を行う前に、ePO データベースのバックアップを取得してください。SQL データベースをバックアップする手順については、以下のいずれかの記事を参照してください。
ステップ 2 - この記事で説明されている問題が発生していることを確認してください。
- Microsoft SQL Server Management Studio に ログオンします。
- [データベース ] を展開 します。
- EPO データベース (デフォルトの名前が ePO_ ) を右クリックして、新しいクエリー を選択 します。
- クエリーウィンドウに次の SQL ステートメントを貼り付け、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%'
- 実行 をクリックし ます。
結果は、使用している ePO のバージョンによって異なります。再利用するます。
期待される結果:
epo 5.9.x
タスク名 |
ローカルの開始時刻 |
ローカルキューの時間 |
状態 |
DB Clean-up Task |
日付 |
日付 |
キュー |
ePO5.10
タスク名 |
ローカルの開始時刻 |
ローカルキューの時間 |
状態 |
DB Clean-up Task |
日付 |
日付 |
キュー |
DC DB Clean-up Tasks |
日付 |
日付 |
キュー |
重要: サーバー上に表示される結果が上記の例と類似している場合 (ePO 5.9.x データベースに戻された行、または2つの行が
データベースに 5.10 戻されている場合)、別の問題が発生していることをします。ここで停止して、サポートに連絡してください。詳細については、関連する情報 を参照してください
ステップ 3 - 上記の結果から欠落しているタスクの ID を確認します。
もし
期待する 結果で無い場合、および不足しているタスクがある場合は、次のクエリを実行して、
OrionSchedulerTaskMT テーブルのタスク識別子を表示します
SELECT Id, name, UniqueKey, Enabled FROM OrionSchedulerTaskMT WHERE name like '%db clean%'
注: 上記のスクリプトは、不足しているタスクの id を決定します。
期待される結果:
epo 5.9.x
ID |
名前 |
UniqueKey |
Enabled |
6 |
DB クリーンアップタスク |
DBCleanupTask |
1 |
ePO5.10.x
ID |
名前 |
UniqueKey |
Enabled |
7 |
DB クリーンアップタスク |
ClientTaskCleanupTask |
1 |
87 |
DC DB CleanUp Task |
DbCleanupTask |
1 |
上記の結果と前のクエリーの結果を比較し、のが欠落しているタスクの ID
を確認 します。
例: ePO 5.10 を使用しているしている場合、手順 2
の クエリーは db クリーンアップタスク
を返すだけで、CD DB のクリーンアップタスクは
戻さないことを前提としてい ます。その後、上記の表の
OrionSchedulerTaskMT 結果に従って、最初の結果セットから ID
87 のタスクが欠落しています。
手順 4 - 問題が解決されていることを確認します。
- Web ブラウザーを使用して、次のコマンドを実行します。
https://<ePO_server_name>:8443/remote/scheduler.updateServerTask?taskId=<ID_from_Step_3>&status=disabled&isHidden=true
- 認証情報を要求されたら、グローバル管理者の権限を持つ ePO ユーザーを入力します。たとえば、元の管理者ユーザーです。
以下以外の返信がある場合は、現在のファイルを含む完全なエラーメッセージをテクニカルサポートに提供し、 orion.log ここで停止してください。連絡先の詳細については、関連する情報セクションを参照してください。
OK
True
- から SQL クエリーを実行します。手順 3 もう一度、テーブルの結果 OrionSchedulerTaskMT を表示します。この結果は、タスクが無効になっている (有効 = 0) ことを示しています。
- 手順3で見つかった 見つからないタスクの ID を使用してレコード OrionSchedulerTaskQueueEntryMT で見つかった不足しているタスクのIDを使用してレコードを削除します :
DELETE FROM OrionScheduledTaskQueueEntryMT WHERE SchedulerTaskID = < ID_from_Step_3>
注: というメッセージが表示される場合があります。0個の行が影響を受けます。 その場合、このメッセージは問題を示すものではありません。次の手順に進みます。
- Web ブラウザーを使用して、次のコマンドを実行します。
https://<ePO_server_name>:8443/remote/scheduler.updateServerTask?taskId=<ID_from_step_3>&status=enabled&isHidden=true
次のもの以外の応答がある場合には、現在 Orion.log のファイルをテクニカルサポートに完全なエラーメッセージを入力して、ここで停止してください。連絡先の詳細については、関連する情報セクションを参照してください。
OK:
True
- 手順 2 と 3 から SQL クエリーを実行します。最初のクエリーでは、手順 2 の例 に示すように、期待される結果が返されるようになりました。2番目のクエリーは、タスクが再度有効になっていることを示しています (有効 = 1)
以下のクエリーを使用して、すべてのデータを1ページに表示します。
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%'
出力例:
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 |