競合の解決
公開処理中に、Liferayは公開内容と本番環境との間の競合をチェックします。 出版を完了するには、すべての紛争を解決することが必要です。 コンフリクトは自動的に解決されるものもあれば、手作業が必要なものもある。
矛盾が生じるのは、出版物に既に変更が加えられた後に、制作上の変更が加えられた場合に限られる。 出版物は、矛盾しない制作上の変更があれば自動的に更新されます。
競合を自動的に解決する
Liferayは、以下のような事前定義された解決策を使用して、一部の競合を自動的に解決します。
- 出版物の内容を追加、変更、または削除すること。
- 生産版を公開版に置き換えます。
自動解決方法が利用可能な場合は、公開時に通知が表示されます。 詳細を確認するには、 表示をクリックし、次に 公開 をクリックしてソリューションを実装します。

競合を手動で解決する
Liferayが自動的に競合を解決できない場合は、手動での解決が必要です。 Publications は の競合タイプ を識別し、2 つのオプションを提供します。
- 編集: 出版物内の競合ソースに移動し、必要な変更を行います。
- 破棄: プレビューして、競合する変更を出版物から完全に削除します。

変更を破棄すると、元に戻すことはできません。 出版物から削除する前に、残しておきたいコンテンツを保存してください。
予定されている出版物に関する競合
Liferay DXP 2024.Q2+/Portal GA120+
定期刊行物は、刊行予定期間中の制作上の変更の可能性により、刊行予定日と刊行予定日が重なるリスクが高くなる。 その場合、Liferay は一部の競合を 自動的に処理しようとしますが、場合によっては手動で 介入する必要があります。
いずれの場合も、競合の詳細と解決手順を記載した通知が、関係するユーザー (発行者、編集者、管理者、所有者など) に送信されます。
通知を表示するには、 ユーザー管理メニュー を開き、 通知をクリックします。

スケジュールされた公開の競合チェック が ジョブスケジューラに設定されている場合、定期的なチェックによってスケジュールされた公開の潜在的な競合が特定されます。 デフォルトでは、cronの式はUTCの午前0時に設定されています。
予定されている公開に競合やエラーが発生した場合、競合チェックの実行時にユーザーに通知されます。
ユーザーは通知を通じて競合の一覧にアクセスでき、そこには自動的に解決された競合と手動での解決が必要な競合が表示されます。

競合とは無関係のJavaエラーが発生した場合、通知には詳細な調査のためのスタックトレースへのリンクが含まれます。

競合の種類について
ユーザーは、次の 6 種類の一般的な競合に遭遇する可能性があります。 重複、 変更、 削除変更、 変更削除、 要件不足、および 追加。
重複の競合

これらの競合は、本番環境の何かでパブリケーションで行われた変更と同じ一意の値を使用している場合に発生します。 これは、一意の値を必要とするあらゆるタイプのコンポーネント(フォルダ、URL、ロール名など)が原因で発生する可能性があります。
次の例を考えてみましょう。 例えば、あなたが「マーケティング」という名前の新しいフォルダを出版物に追加したとします。その一方で、本番環境のユーザーが同じ名前のフォルダを作成したとします。 同じリポジトリ内のフォルダは一意の名前を持つ必要があるため、変更を公開しようとすると重複競合が発生します。
重複の競合を解決するために、ユーザーはパブリケーションの値を編集するか、変更を破棄することができます。
変更の競合

これらの競合は、パブリケーションで変更したエンティティが本番環境で変更された場合に発生します(たとえば、編集したWebコンテンツの記事が移動された場合)。 一部の変更の競合は自動的に解決できますが、手動による解決が必要なものもあります。
変更の競合を解決するには、競合する資料を編集するか、パブリケーション内の競合する変更を破棄するか、本番環境でバージョンを置き換えることができます。
Liferay DXP 2025.Q1/Portal GA132以降では、特定の競合が手動による介入なしに自動的に解決されます。 これには、通常変更不可能なフィールド、例えば status や lastPublishDate などが含まれます。
監査フィールド(例: createDate、 modifiedDate)、主キー、およびグループ識別子は、データの整合性を維持するために自動解決から除外されることに注意してください。
color、 title、および descriptionのような編集不可能なフィールドに関する競合は、公開時に自動的に解決されます。 例えば、Webコンテンツのフィールドが公開環境と本番環境の両方で更新された場合、手動による介入なしに、公開環境の更新内容が本番環境の更新内容を上書きします。
削除の変更と変更の削除の競合

これらの競合は、異なる環境でエンティティが変更または削除された場合に発生します。 紛争には2種類あります。
-
削除と変更:この競合は、本番環境でエンティティが削除されたにもかかわらず、公開環境で変更された場合に発生します。 例えば、出版物の編集中に本番環境で文書が削除された場合、システムは本番環境に存在しなくなったエンティティに変更を適用できないため、競合が発生します。
-
変更削除:この競合は、エンティティが本番環境で変更されたにもかかわらず、公開環境で削除された場合に発生します。 例えば、本番環境で文書のメタデータが更新されたにもかかわらず、同じ文書が公開環境で削除された場合、システムは削除対象としてマークされた項目に変更を適用できないため、競合が発生したと警告します。
Liferay DXP 2025.Q1+/Portal GA132+ 変更削除の競合はデフォルトで自動的に解決されます。 出版物内でエンティティが編集され、その後同じ出版物内で削除された場合、出版物が公開される際に、そのエンティティは本番環境でも削除されます。
公開中に削除の競合を確認するには、 グローバル メニュー (
) → コントロール パネル タブの インスタンス設定 → 公開 → 公開の競合の下にある 変更削除の競合チェック 設定を有効にします。
どちらのタイプの紛争に対しても、唯一提示されている解決策は、出版物の矛盾する変更を破棄することである。
Liferay DXP 2024.Q2/Portal GA120 以降では、 change.tracking.deletion.protection.enabled=true プロパティを portal-ext.properties に追加することで、競合を防ぎ、パブリケーションで変更されたアイテムの削除を回避できます。
このプロパティは、削除が本番環境で行われるか、別のパブリケーションで行われるかにかかわらず、パブリケーション内でアイテムが変更されている場合、そのアイテムの削除をブロックします。
アイテムを削除しようとすると、エラーメッセージが表示され、削除ができなくなります。

アイテムをごみ箱に移動せずにすぐに削除しようとすると、削除がブロックされ、エラーメッセージが表示されます。
ただし、最初に ごみ箱 に移動されたアイテム (Web コンテンツ記事、ブログ投稿、ドキュメントなど) を削除すると、アイテムはごみ箱に移動され、ごみ箱から削除しようとしたときにのみメッセージが表示されます。
これは、保護プロパティが設定されていても、これらのアイテムが削除の競合を引き起こす可能性があることを意味します。
Liferay DXP 2025.Q1+/Portal GA132+ パブリケーションで変更が発生し、対象要素が本番環境でごみ箱に移動された場合、パブリケーション管理者は 本番環境で復元 をクリックしてアセットを復元し、競合を解決できます。 サポートされているアセットには、フォルダ、ウェブコンテンツ、ブログ、ブックマーク、ドキュメントとメディア、メッセージボード、およびWikiが含まれます。
要件の欠落の競合

これらの競合は、子エンティティがパブリケーションで作成または編集されたが、その親が本番環境から削除された場合に発生します。 例としては、パブリケーションでサブフォルダを追加または変更したときに、本番環境からフォルダを削除した場合があります。
要件の欠落の競合を解決するには、パブリケーションから競合する変更を破棄するか、本番環境で削除を元に戻します。 本番環境に公開された変更を元に戻す方法については、 変更の取り消し を参照してください。
追加の競合

これらの競合は、ユーザーが既に取り消された削除を含むパブリケーションを元に戻そうとした場合にのみ発生します。 システムはすでに追加されたものを追加し直すことができないため、ユーザーは削除が含まれていた同じパブリケーションを2度元に戻すことはできません。
バージョンごとの機能提供状況
| 機能 | Liferay DXPバージョン | ポータルバージョン | メモ |
|---|---|---|---|
| 削除と変更の競合 | 2024年第2四半期以降 | GA120+ | 削除保護は change.tracking.deletion.protection.enabled=true を介して利用可能です。 |
| 予定されている出版物に関する競合 | 2024年第2四半期以降 | GA120+ | 予定されている出版物に競合が発生した場合の通知。 |
| 変更の競合 | 2025年第1四半期以降 | GA132+ | 監査フィールドを除き、一部の競合は自動的に解決されました。 |
| 変更・削除の競合 | 2025年第1四半期以降 | GA132+ | デフォルトでは自動的に解決されます。 |
| ゴミ箱から復元 | 2025年第1四半期以降 | GA132+ | 本番環境でリサイクルビンに移動されたアセットを復元できるようにします。 |