wso2 / product-is

Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
http://wso2.github.io/
Apache License 2.0
742 stars 720 forks source link

[DB2][Migration Client] Error occurred while executing CREATE INDEX IDX_IDN_SCIM_GROUP_TI_RN_AN ON IDN_SCIM_GROUP (TENANT_ID, ROLE_NAME, ATTR_NAME) #7234

Open npamudika opened 4 years ago

npamudika commented 4 years ago

When doing the IS-as-KM migration form 5.3.0 to 5.9.0, and while running the IS-migration client, got the following error.

[2020-01-07 12:24:04,117] [] ERROR {org.wso2.carbon.is.migration.service.SchemaMigrator} - Error occurred while executing SQL script for migrating database java.lang.Exception: Error occurred while executing :  CREATE INDEX IDX_IDN_SCIM_GROUP_TI_RN_AN ON IDN_SCIM_GROUP (TENANT_ID, ROLE_NAME, ATTR_NAME) 
    at org.wso2.carbon.is.migration.service.SchemaMigrator.executeSQL(SchemaMigrator.java:255)
    at org.wso2.carbon.is.migration.service.SchemaMigrator.executeSQLScript(SchemaMigrator.java:186)
    at org.wso2.carbon.is.migration.service.SchemaMigrator.migrate(SchemaMigrator.java:81)
    at org.wso2.carbon.is.migration.VersionMigration.migrate(VersionMigration.java:42)
    at org.wso2.carbon.is.migration.MigrationClientImpl.execute(MigrationClientImpl.java:83)
    at org.wso2.carbon.identity.core.internal.IdentityCoreServiceComponent.activate(IdentityCoreServiceComponent.java:147)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
    at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
    at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
    at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
    at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:529)
    at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:305)
    at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
Caused by: com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-614, SQLSTATE=54008, SQLERRMC=IDX_IDN_SCIM_GROUP_TI_RN_AN, DRIVER=4.26.14
    at com.ibm.db2.jcc.am.b7.a(b7.java:815)
    at com.ibm.db2.jcc.am.b7.a(b7.java:66)
    at com.ibm.db2.jcc.am.b7.a(b7.java:140)
    at com.ibm.db2.jcc.am.k4.c(k4.java:2824)
    at com.ibm.db2.jcc.am.k4.d(k4.java:2808)
    at com.ibm.db2.jcc.am.k4.b(k4.java:2168)
    at com.ibm.db2.jcc.t4.ab.k(ab.java:446)
    at com.ibm.db2.jcc.t4.ab.c(ab.java:104)
    at com.ibm.db2.jcc.t4.p.b(p.java:38)
    at com.ibm.db2.jcc.t4.av.h(av.java:124)
    at com.ibm.db2.jcc.am.k4.ak(k4.java:2163)
    at com.ibm.db2.jcc.am.k4.a(k4.java:3366)
    at com.ibm.db2.jcc.am.k4.e(k4.java:1131)
    at com.ibm.db2.jcc.am.k4.execute(k4.java:1110)
    at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
    at com.sun.proxy.$Proxy56.execute(Unknown Source)
    at org.wso2.carbon.is.migration.service.SchemaMigrator.executeSQL(SchemaMigrator.java:225)
    ... 32 more

[2020-01-07 12:24:04,199] [] ERROR {org.wso2.carbon.is.migration.service.SchemaMigrator} - java.lang.Exception: Error occurred while executing SQL script for migrating database

The error occurred due to the combined length of the specified columns is too long in "CREATE INDEX IDX_IDN_SCIM_GROUP_TI_RN_AN ON IDN_SCIM_GROUP (TENANT_ID, ROLE_NAME, ATTR_NAME)". This is in the 5.6.0/dbscripts/step1/identity/db2.sql script.

Database version - DB2 11.5

DMHP commented 3 years ago

https://medium.com/@Vithursa/creating-indexes-for-columns-with-higher-field-size-in-db2-cdd48dadaf8c As the solution in the migration client, we need to move the table with existing data to a new tablespace created.