技术文章 - CS327774

Servigistics 服务部件管理中的 AutoPilot 进程获取主机数据失败,出现“ORA-02437:违反主键”

已修改: 15-Apr-2023   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • 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.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
在 org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)
在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
在 org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
在 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction (TransactionAspectSupport.java:281)
在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
在 org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
在 com.sun.proxy.$Proxy708.run(未知来源)
在 com.svg.core.service.impl.TaskServiceImpl$1.run(TaskServiceImpl.java:456)
在 java.lang.Thread.run(Thread.java:748)
在 com.svg.core.util.ThreadUtil$1.run(ThreadUtil.java:43)
Caused by: java.sql.SQLException: ORA-02437: cannot validate (XXXXX.IPCSTMP_G16810_PK) - 违反了主键

这是文章 327774 的 PDF 版本,可能已过期。最新版本 CS327774