Как-то у меня есть исторический экземпляр процесса без конечного времени в моей базе данных.Как удалить экземпляр исторического процесса Camunda без времени окончания?
Запись выглядит следующим образом:
ACT_HI_PROCINST (ID_, PROC_INST_ID_, BUSINESS_KEY_, END_TIME_)
VALUES ('0c128aec-e6f0-11e6-bc94-5456dbfc2b09', '0c128aec-e6f0-11e6-bc94-5456dbfc2b09', '3bc71b87-7134-4ead-8493-4c0f11d635be', null);
При попытке удалить экземпляр исторического процесса с DELETE HTTP request to the REST interface эта ошибка возникает:
ERROR [org.camunda.bpm.engine.context] (default task-7) ENGINE-16004 Exception while closing command context: Process instance is still running, cannot delete historic process instance: 0c128aec-e6f0-11e6-bc94-5456dbfc2b09: instance.getEndTime() is null: org.camunda.bpm.engine.exception.NullValueException: Process instance is still running, cannot delete historic process instance: 0c128aec-e6f0-11e6-bc94-5456dbfc2b09: instance.getEndTime() is null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:329)
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:49)
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:44)
at org.camunda.bpm.engine.impl.cmd.DeleteHistoricProcessInstanceCmd.execute(DeleteHistoricProcessInstanceCmd.java:49)
at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:95)
at org.camunda.bpm.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:58)
at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
at org.camunda.bpm.engine.impl.HistoryServiceImpl.deleteHistoricProcessInstance(HistoryServiceImpl.java:99)
at org.camunda.bpm.engine.rest.sub.history.impl.HistoricProcessInstanceResourceImpl.deleteHistoricProcessInstance(HistoricProcessInstanceResourceImpl.java:53)
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:497)
Как я могу удалить экземпляр исторического процесса без время окончания либо на Java, либо через HTTP?
Я думаю, что есть непонимание каких «исторических» означает. У вас будет экземпляр runtime-экземпляра и исторический экземпляр в то же время ... только, что экземпляр среды выполнения удаляется при завершении. Подумайте об историческом примере как о отражении того, что произошло ... так что с момента «начала события» произошло уже историческое прошлое ... –