トラブルシューティング
- SQL エラー: 原因: com.microsoft.sqlserver.jdbc.SQLServerException: 固有索引「IX_USM_CONFIGURATION」を使用してオブジェクト「dbo.USM_CONFIGURATION」に重複するキー行を挿入できません。重複するキー値は (<NULL>, Affinium) です。
1. USM_CONFIGURATIONDROP INDEX [USM_CONFIGURATION].IX_USM_CONFIGURATION; の索引を削除します。
DROP INDEX [USM_CONFIGURATION[.IX1_USM_CONFIGURATION;
DROP INDEX [USM_CONFIGURATION[.IX2_USM_CONFIGURATION;
または
DROP INDEX IX_USM_CONFIGURATION;
DROP INDEX IX1_USM_CONFIGURATION;
DROP INDEX IX2_USM_CONFIGURATION;
2. USM_CONFIGURATION の索引を作成します。
CREATE UNIQUE INDEX IX2_USM_CONFIGURATION ON
USM_CONFIGURATION (PARENT_ID asc, INTERNAL_NAME asc);
CREATE UNIQUE INDEX IX1_USM_CONFIGURATION ON
USM_CONFIGURATION (NS_THREAD asc, NS_LEFT asc);
CREATE UNIQUE INDEX IX2_USM_CONFIGURATION ON
USM_CONFIGURATION (NS_THREAD asc, NS_RIGHT asc);
DB2 – 制約違反エラー: 古い基本環境から 11.1 (クリーン環境) への DB2 データのマイグレーションは、DBA の支援を受けて行う必要があります。アップグレード手順に進む前に、データベース・テーブル、制約、索引などがすべて正常にマイグレーションされたことを確認する必要があります。DB2 システム・テーブルでは、クリーン 11.1 へのインポートが原因で、特定のテーブルで AUTO ID の増分に関連する問題が発生します。これらのエラーの原因は制約違反エラーに関連します。
制約違反エラーに関連するエラーが原因で「Marketing Platform 構成のアップグレード」手順が失敗した場合に限り、この手順を実行する必要があります。
SELECT MAX(ID)+ 1 FROM USM_PERSONALIZATION;
ALTER TABLE USM_CONFIGURATION ALTER COLUMN ID RESTART WITH NNNN; --ここに上記の照会の結果を配置します。
SELECT MAX(ID)+ 1 FROM USM_NOTICE;
ALTER TABLE USM_ROLE ALTER COLUMN ID RESTART WITH NNNN; -- ここに上記の照会の結果を配置します。
SELECT MAX(ID)+ 1 FROM USM_DB_RESOURCE_BUNDLE;
ALTER TABLE USM_DB_RESOURCE_BUNDLE ALTER COLUMN ID RESTART WITH NNNN; --ここに上記の照会の結果を配置します。
SELECT MAX(ID)+ 1 FROM USM_AUDIT;
ALTER TABLE USM_AUDIT ALTER COLUMN ID RESTART WITH NNNN; -- ここに上記の照会の結果を配置します。
SELECT MAX(ID)+ 1 from USM_ALERT_TYPE;
ALTER TABLE USM_ALERT ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_ALERT_SUBSCRIPTION;
ALTER TABLE USM_ALERT_SUBSCRIPTION ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_NOTICE;
ALTER TABLE USM_NOTICE ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_DASHBOARD;
ALTER TABLE USM_DASHBOARD ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_DASHBOARD_PORTLET;
ALTER TABLE USM_DASHBOARD_PORTLET ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_DASH_PORT_IFRAME_DET;
ALTER TABLE USM_DASH_PORT_IFRAME_DET ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_DASH_PORT_PREF_MAP;
ALTER TABLE USM_DASH_PORT_PREF_MAP ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_DASH_MANAGE_RIGHTS;
ALTER TABLE USM_DASH_MANAGE_RIGHTS ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_PORT_QUICKLINK_PREF;
ALTER TABLE USM_PORT_QUICKLINK_PREF ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_PERSONALIZATION;
ALTER TABLE USM_PERSONALIZATION ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_OBJECT_TYPE;
ALTER TABLE USM_OBJECT_TYPE ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USM_OBJECT_ATTR;
ALTER TABLE USM_OBJECT_ATTR ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USCH_TASK_NOTIFICATION;
ALTER TABLE USCH_TASK_NOTIFICATION ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 FROM USCH_RUN_NOTIFICATION;
ALTER TABLE USCH_RUN_NOTIFICATION ALTER COLUMN ID RESTART WITH NNNN;
SELECT MAX(TASKID)+ 1 FROM USCH_TASK;
ALTER TABLE USCH_TASK ALTER COLUMN TASKID RESTART WITH NNNN;
SELECT MAX(RUNID)+ 1 FROM USCH_RUN;
ALTER TABLE USCH_RUN ALTER COLUMN RUNID RESTART WITH NNNN;
SELECT MAX(RUNEXCLUSIONID)+ 1 FROM USCH_RUN_EXCLUSION;
ALTER TABLE USCH_RUN_EXCLUSION ALTER COLUMN RUNEXCLUSIONID RESTART WITH NNNN;
SELECT MAX(ID)+ 1 from USM_ALERT_TYPE;
ALTER TABLE USM_ALERT_TYPE ALTER COLUMN ID RESTART WITH NNNN
テーブルの変更後、「commit;」ステートメントを実行する必要があります。DB2 – Marketing Platform システム・テーブルの制約が 11.1 システム・データベースにインポートされていないことを DBA が発見した場合、次の照会を実行できます。これにより、欠落している制約が作成されます。既に存在する制約についてはエラーが表示されますが、無視してかまいません。
次のスクリプト・ファイルを実行します: <PLATFORM_HOME> /db/ ManagerSchema_DB2_CreateFKConstraints.sql
- ソース DB で一時テーブルがオンになっている場合、ターゲット・セットアップで一時テーブル関連の問題が発生する可能性があります。
- ターゲット・セットアップで使用するユーザー DB は、ソースと同じでなければなりません。異なるユーザー・データ・ソースが使用されていると、テーブル・マッピングの違いが原因で既存のフローチャートが実行されません。
- 「exp」ユーティリティーを使用する Oracle エクスポート・データベース・スキーマでは、行のないテーブルはエクスポートされません。
注: これらのスクリプトを実行する前に、DBA と一緒にスクリプトを確認してください。このアプローチはエンジニアリングで使用され、DBA が提案する適切なアプローチを採用できます。
この場合、レコードがないテーブルのエクスポートを有効にするために、以下のスクリプトを実行できます。
SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';
このスクリプトは、出力として SQL スクリプトを提供します。この SQL スクリプトを、エクスポートする必要があるスキーマで実行する必要があります。 - Oracle – 制約違反エラー: 古い基本環境から 11.1 (クリーン環境) への Oracle データのマイグレーションは、DBA の支援を受けて行う必要があります。アップグレード手順に進む前に、データベース・テーブル、制約、索引などがすべて正常にマイグレーションされたことを確認してください。Oracle では、次のエラーが表示されます。
ORA-00001: unique constraint (IBM_MARKETING_PLATFORM.SYS_C0038815) violated insert into USM_CONFIGURATION_VALUES (VERSION, PREDEFINED, SELECTED, STRING_VALUE, NUMERIC_VALUE, DATE_VALUE, CONFIGURATION_ID, CONFIGURATION_ORDER, ENVIRONMENT_ID, USER_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
制約違反エラーに関連するエラーが原因で「Marketing Platform 構成のアップグレード」手順が失敗した場合に限り、次の手順を実行する必要があります。- USM_CONFIGURATION テーブルと USM_CONFIGURATION_VALUES テーブルのバックアップを作成します。
- 構成の「完全エクスポート」を作成します。./configTool.sh/bat -i -p "Affinium" -f full_export.xml
- USM_CONFIGURATION_VALUES テーブルを切り捨てます。truncate table usm_configuration_values; commit;
- USM_CONFIGURATION テーブルから削除します。delete from usm_configuration; commit;
- 「full_export.xml」ファイルをインポートします。./configTool.sh/bat -i -p "Affinium" -f full_export.xml
- 失敗したコマンドを再試行します。