問題
トリガーされたジョブの実行中にサーバーが停止した後、ジョブスケジューラのログステータスが「処理中」のままとなり、削除できないという問題がありました。
環境
- Liferay DXP 7.4
- 四半期リリース 2023.Q3
解決
Job Schedulerのログが 「処理中」ステータスで止まってしまう問題を解決するには、以下の手順に従います:
1. Groovyスクリプトを使用して、DispatchLogエントリーのステータスを変更します:
import com.liferay.dispatch.model.DispatchLog;
import com.liferay.dispatch.service.DispatchLogLocalServiceUtil;
DispatchLog dispatch = DispatchLogLocalServiceUtil.getDispatchLog(${dispatcherLogId})
dispatch.setStatus(4) //Status error
com.liferay.dispatch.service.DispatchLogLocalServiceUtil.updateDispatchLog(dispatch)
${dispatcherLogId}
を適切な値に置き換えてください。このIDは、次の2つのオプションのいずれかを使って取得できます:
-
オプション1: 「処理中」ジョブをクリックして、URLから以下を探します:
_com_liferay_dispatch_web_internal_portlet_DispatchPortlet_dispatchLogId=33701&_com_liferay_dispatch_web_internal_portlet_DispatchPortlet_dispatchTriggerId=3362
-
オプション2: ステータスが保留になっているdispatcherlogテーブルを確認します:
SELECT * FROM dispatchlog WHERE status = 1 AND endDate IS NULL;
2. 更新後、削除するか、正しいステータスで保持するかを選択できます。
追加情報