KB Article #177638

Event capture fail when simultaneous events are received with the same disposition

Problem


One of the event capturefailed in Integrator when three simultaneous events with the same disposition arrived in the system, with the eror message:-

"An exception was thrown while looking for this URI into the cache:urn:epcglobal:cbv:disp:<disposition name> java.sql.BatchUpdateException: ORA-00001: unique constraint (EPCIS.U_DISPOSITION_DISPOSITION_URI) violated"



Resolution

It is due to the master data cache that is updated only when the capture starts and not later on (ie: it is not updated each time a new master data is saved). In this case, the same master data is coming in 2 or more different events and each of them try to save it in the repository. The first one is able to save and the second ask the master data cache if the master data exists and as the cache is not updated, the cache answer that the master data is not existing and so it tries to save it a second time. But it is not possible as the master data uri are unique (that is why the constraint U_DISPOSITION_DISPOSITION_URI violation is raised).
It is recommended to insert the master data in the repository before using them in capture events.
It is planned to forbid master data creation during capture in 4.0.0.