技术文章 - CS327774
Servigistics 服务部件管理中的 AutoPilot 进程获取主机数据失败,出现“ORA-02437:违反主键”
已修改: 15-Apr-2023
适用于
- Servigistics Service Parts Management 11.4.1 to 13.0.0.0
说明
- 使用 HostDmdOvrByUserID 导入需求在获取主机数据时失败, ORA-02437为 _PK 主键(PartID、LocID、DemandStreamID、HistoryBegDate)
- 使用 SKUOverrideID 导入 SKU 覆盖在 GetHostData 失败并出现 ORA-02437
- 尝试添加约束 IPCSTMP_XXXXX_PK 主键时网关进程失败
- AutoPilot 进程获取主机数据失败,主键冲突
- AutoPilot.log 文件中的错误:
任务获取主机数据失败并显示消息:StatementCallback; SQL 的未分类 SQLException [更改表 IPCSTMP_G16810 添加约束 IPCSTMP_G16810_PK 主键(PartID、LocID、ForecastStreamID、ForecastSliceDate)]; SQL状态[72000];
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; SQL 的未分类 SQLException [更改表 IPCSTMP_G16810 添加约束 IPCSTMP_G16810_PK 主键(PartID、LocID、ForecastStreamID、ForecastSliceDate)]; SQL状态[72000];错误代码 [2437]; ORA-02437: 无法验证 (XXXXX.IPCSTMP_G16810_PK) - 违反了主键
;嵌套异常是 java.sql.SQLException: ORA-02437: 无法验证 (XXXXX.IPCSTMP_G16810_PK) - 违反了主键
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
在 org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:415)
在 org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:534)
在 com.svg.core.database.metadata.TableImpl.createPrimaryKeys(TableImpl.java:486)
在 com.svg.core.database.temptable.TempTableImpl$1TableWrapper.createPrimaryKeys(TempTableImpl.java:182)
在 com.svg.core.database.metadata.TableImpl.addPrimaryKeys(TableImpl.java:453)
在 com.svg.core.database.metadata.TableImpl.setPrimaryKeys(TableImpl.java:334)
在 com.svg.core.database.temptable.TempTableImpl.setPrimaryKeys(TempTableImpl.java:193)
在 com.svg.core.database.temptable.LocalTempTable.setPrimaryKeys(LocalTempTable.java:7)
在 com.svg.core.gateway.support.SyncGateway.newTableSync(SyncGateway.java:285)
在 com.svg.core.gateway.ForecastDetailGateway.syncToCore(ForecastDetailGateway.java:77)
在 com.svg.core.gateway.support.SyncGateway.doPopulate(SyncGateway.java:26)
在 com.svg.core.gateway.support.AbstractGateway.populate(AbstractGateway.java:142)
在 com.svg.core.gateway.executor.GatewayExecutor$PopulateWorkUnit.runSingleThreaded(GatewayExecutor.java:229)
在 com.svg.core.autopilot.SubTaskExecutor.run(SubTaskExecutor.java:41)
在 com.svg.core.gateway.executor.GatewayExecutor.run(GatewayExecutor.java:278)
在 com.svg.core.gateway.executor.GatewayExecutor.populate(GatewayExecutor.java:207)
在 com.svg.core.gateway.Gateway.process(Gateway.java:99)
在 com.svg.core.gateway.Gateway.process(Gateway.java:77)
在 com.svg.core.process.BatchConnectorImpl.doRun(BatchConnectorImpl.java:103)
在 com.svg.core.process.BatchConnectorImpl.lambda$run$0(BatchConnectorImpl.java:91)
在 com.svg.core.database.TransactionUtil.lambda$withNone$1(TransactionUtil.java:100)
在 com.svg.core.database.TransactionUtil.execute(TransactionUtil.java:52)
在 com.svg.core.database.TransactionUtil.withNone(TransactionUtil.java:99)
在 com.svg.core.process.BatchConnectorImpl.run(BatchConnectorImpl.java:91)
在 com.svg.core.task.BatchTask.runConnector(BatchTask.java:84)
在 com.svg.core.task.AbstractTask.run(AbstractTask.java:215)
在 com.svg.core.task.BatchTask.run(BatchTask.java:70)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; SQL 的未分类 SQLException [更改表 IPCSTMP_G16810 添加约束 IPCSTMP_G16810_PK 主键(PartID、LocID、ForecastStreamID、ForecastSliceDate)]; SQL状态[72000];错误代码 [2437]; ORA-02437: 无法验证 (XXXXX.IPCSTMP_G16810_PK) - 违反了主键
;嵌套异常是 java.sql.SQLException: ORA-02437: 无法验证 (XXXXX.IPCSTMP_G16810_PK) - 违反了主键
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
在 org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
在 org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:415)
在 org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:534)
在 com.svg.core.database.metadata.TableImpl.createPrimaryKeys(TableImpl.java:486)
在 com.svg.core.database.temptable.TempTableImpl$1TableWrapper.createPrimaryKeys(TempTableImpl.java:182)
在 com.svg.core.database.metadata.TableImpl.addPrimaryKeys(TableImpl.java:453)
在 com.svg.core.database.metadata.TableImpl.setPrimaryKeys(TableImpl.java:334)
在 com.svg.core.database.temptable.TempTableImpl.setPrimaryKeys(TempTableImpl.java:193)
在 com.svg.core.database.temptable.LocalTempTable.setPrimaryKeys(LocalTempTable.java:7)
在 com.svg.core.gateway.support.SyncGateway.newTableSync(SyncGateway.java:285)
在 com.svg.core.gateway.ForecastDetailGateway.syncToCore(ForecastDetailGateway.java:77)
在 com.svg.core.gateway.support.SyncGateway.doPopulate(SyncGateway.java:26)
在 com.svg.core.gateway.support.AbstractGateway.populate(AbstractGateway.java:142)
在 com.svg.core.gateway.executor.GatewayExecutor$PopulateWorkUnit.runSingleThreaded(GatewayExecutor.java:229)
在 com.svg.core.autopilot.SubTaskExecutor.run(SubTaskExecutor.java:41)
在 com.svg.core.gateway.executor.GatewayExecutor.run(GatewayExecutor.java:278)
在 com.svg.core.gateway.executor.GatewayExecutor.populate(GatewayExecutor.java:207)
在 com.svg.core.gateway.Gateway.process(Gateway.java:99)
在 com.svg.core.gateway.Gateway.process(Gateway.java:77)
在 com.svg.core.process.BatchConnectorImpl.doRun(BatchConnectorImpl.java:103)
在 com.svg.core.process.BatchConnectorImpl.lambda$run$0(BatchConnectorImpl.java:91)
在 com.svg.core.database.TransactionUtil.lambda$withNone$1(TransactionUtil.java:100)
在 com.svg.core.database.TransactionUtil.execute(TransactionUtil.java:52)
在 com.svg.core.database.TransactionUtil.withNone(TransactionUtil.java:99)
在 com.svg.core.process.BatchConnectorImpl.run(BatchConnectorImpl.java:91)
在 com.svg.core.task.BatchTask.runConnector(BatchTask.java:84)
在 com.svg.core.task.AbstractTask.run(AbstractTask.java:215)
在 com.svg.core.task.BatchTask.run(BatchTask.java:70)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
这是文章 327774 的 PDF 版本,可能已过期。最新版本 CS327774