問題
- ステージングでパブリケーションが作成され、サーバーがシャットダウンされた場合、パブリケーションは起動時にキューに残り、キャンセルされた場合でも、それ以上ステージング パブリケーションを作成することはできません。
- 次の Java クラスはキューに入れられたままになります。
BackgroundTaskResult backgroundTaskResult =
backgroundTaskExecutor.execute(backgroundTask);
status = backgroundTaskResult.getStatus();
statusMessage = backgroundTaskResult.getStatusMessage();
}
catch (DuplicateLockException e) {
status = BackgroundTaskConstants.STATUS_QUEUED;
}
環境
- ポータル 6.2
- DXP 7.0
- DXP 7.1
- DXP 7.2
解像度
- 保留中のステージング パブリケーションをすべてキャンセルします。
- すべての Liferay サーバーを停止します。
- データベースの Lock_ テーブルをクリアします (DB コンソールまたは Groovy スクリプト経由)
たとえば、ポータルで次の Groovy スクリプトを実行します。
com.liferay.portal.kernel.backgroundtask. BackgroundTaskManagerUtil. cleanUpBackgroundTasks();
- サーバーを起動します。
追加情報
- お客様に DB の変更を提案する場合は注意してください。
- Liferay Cloud では現在、唯一の解決策は Groovy を使用することです。
- サーバーが起動すると、Lock_ テーブルが再度作成されますが、空になります。
- LPP-34173