因果予測プロセスが、Servigistics サービス パーツ管理における一意キー制約エラーにより失敗する
適用対象
- Servigistics Service Parts Management 11.4.1
説明
- 因果予測プロセスが一意のキー制約エラーにより失敗する
- Autopilot.log には次の内容が含まれます
エラー com.svg.core.util.EventLog - タスク因果予測の詳細が次のメッセージで失敗しました: StatementCallback;未分類 SQL の SQLException [テーブル IPCSTMP_G9316 を変更し、制約 IPCSTMP_G9316_PK 主キー (ProductID、LocID、PartID、StartDate) を追加]; SQL 状態 [72000];エラーコード[2437]
org.springframework.jdbc.UncategorizedSQLException: StatementCallback;未分類 SQL の SQLException [テーブル IPCSTMP_G9316 を変更し、制約 IPCSTMP_G9316_PK 主キー (ProductID、LocID、PartID、StartDate) を追加]; SQL 状態 [72000];エラーコード[2437]; ORA-02437: (<SCHEMA>.IPCSTMP_G9316_PK) を検証できません - 主キーに違反しています
;ネストされた例外は java.sql.SQLException です: ORA-02437: 検証できません (<SCHEMA>.IPCSTMP_G9316_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.database.temptable.TempTableImpl.build(TempTableImpl.java:59) で
com.svg.core.database.temptable.LocalTempTable.build(LocalTempTable.java:7) で
com.svg.core.process.BatchConnectorImpl.newLocalTempTable(BatchConnectorImpl.java:495) で
com.svg.planning.process.forecast.causal.ProductBomRollout.newProductBomTable(ProductBomRollout.java:114) で
com.svg.planning.process.forecast.causal.ProductBomRollout.process(ProductBomRollout.java:32) で
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.planning.process.forecast.causal.CausalForecastFailureRateInput.newInputTable(CausalForecastFailureRateInput.java:145) で
com.svg.planning.process.forecast.causal.CausalForecastFailureRateInput.prepare(CausalForecastFailureRateInput.java:53) で
com.svg.core.process.AbstractProcess.run(AbstractProcess.java:21) で
com.svg.planning.process.forecast.causal.CausalForecastFailureRateConnector.process(CausalForecastFailureRateConnector.java:26) で
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.planning.process.forecast.causal.CausalForecastDetailConnector.doProcess(CausalForecastDetailConnector.java:28) で
com.svg.core.process.ThreadableConnector.process(ThreadableConnector.java:32) で
com.svg.core.process.ThreadableConnector.process(ThreadableConnector.java:23) で
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) で
原因: java.sql.SQLException: ORA-02437: 検証できません (<SCHEMA>.IPCSTMP_G9316_PK) - 主キー違反oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) で
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) で
oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) で
oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) で
oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) で
oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) で
oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210) で
oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30) で
oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:931) で
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150) で
oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1707)
oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1670)
oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:310)
sun.reflect.GeneratedMethodAccessor287.invoke で (ソース不明)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
java.lang.reflect.Method.invoke(Method.java:498) で
org.springframework.util.ReflectionUtils.invokeJdbcMethod(ReflectionUtils.java:249) で
com.svg.core.database.support.ProxyHandler$1.invoke(ProxyHandler.java:29) で
com.svg.core.database.support.QueryMethodInvoker.invoke(QueryMethodInvoker.java:36) で
com.svg.core.database.support.ProxyHandler$2.doInDeadlockRetry(ProxyHandler.java:63) で
com.svg.core.database.support.DeadlockRetry.execute(DeadlockRetry.java:28) で
com.svg.core.database.support.ProxyHandler.invoke(ProxyHandler.java:60) で
com.svg.core.database.support.StatementHandler.invoke(StatementHandler.java:42) で
com.sun.proxy.$Proxy83.executeUpdate で (ソース不明)
org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:523) で
org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:520) で
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:404) で
...さらに60件