問題
- Oracle データベースを使用して DXP 7.2 から 7.4 U53 にアップグレードすると、次の WARN メッセージが表示されました:
ORA-00001: unique constraint (PORTALESLIFERAY1.IX_CB778855, nos podeis decir a que se debe y si afecta al proceso de acutalización del producto.
com.liferay.portal.kernel.log.LogSanitizerException: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (PORTALESLIFERAY1.IX_CB778855) violated_ [Sanitized]
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610) ~[ojdbc8.jar:18.3.0.0.0]
環境
- DXP 7.4
解像度
- WARNレベルでは、以下の例外が表示されるが、無視して構わない:
同じレコードを2回挿入しようとすると警告が出ますが、無視しても問題ありません。2023-02-09 09:46:46.396 WARN [main][BasePortletIdUpgradeProcess:511] null
com.liferay.portal.kernel.log.LogSanitizerException: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (PORTALESLIFERAY1.IX_CB778855) violated_ [Sanitized]
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) ~[ojdbc8.jar:18.3.0.0.0]
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8.jar:18.3.0.0.0]
[...]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:54) [com.liferay.portal.tools.db.upgrade.client.jar:?]
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: Error : 1, Position : 0, Sql = update PortletPreferences set portletId = 'com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormAdminPortlet' where portletId = 'com_liferay_polls_web_portlet_PollsPortlet', OriginalSql = update PortletPreferences set portletId = 'com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormAdminPortlet' where portletId = 'com_liferay_polls_web_portlet_PollsPortlet', Error Msg = ORA-00001: unique constraint (PORTALESLIFERAY1.IX_CB778855) violated_ [Sanitized]
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498) ~[ojdbc8.jar:18.3.0.0.0]
... 284 more
2番目のレコードが挿入されるのは、DXP 7.4でPollsの機能がFomsに移行されたためで、DXP 7.4 のアップグレードでは、portletPreferences テーブルの portletId がcom_liferay_polls_web_portlet_PollsPortlet
からcom_liferay_dynamic_data_mapping_form_web_portlet_DDMFormAdminPortlet
に変更され、更新されますが、ダッシュボードポートレット plid=0 では、重複挿入が発生します。
詳細については、DXP 7.3からのアップグレード後にAsset Libraries throw warningsという記事で説明されており、アップグレード中にWARNが表示されないようにする回避策があります。
追加情報
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン