даже не знаю как объяснить. Вчера что то произошло с ораклом. Попробуй абстрактно рассказать:
Есть апи на asp net core. У него есть put метод который дергает процедуру на оракле с одним параметром (ид документа).
Этот метод дергается в цикле клиентского приложения (проходя по каждому документу и передавая его ид).
На оракле эта процедура берет по ид, выбирает из базы документ, смотрит на его статус, если он равен к примеру 1, то она выполняет списание средств и обновляет статус на 2. Так вот по логам в 30 секундный период, у сотни документов статус был проставлен 2 раза и списаны средства тоже 2 раза. Причем в одну секунду (для каждого док.).
Т.е. это выглядит примерно так: в одной транзакции мы выбираем статус он равен 1 и тут же как будто параллельно данная процедура выполняется еще раз и делает тоже самое при этом первая еще не завершилась. В итоге получается у каждого док. в одну секунду был проставлен статус 2 и списаны дважды средства.
Приложение работает несколько лет, отлажено все до блеска. т.е. проблема явно в оракле. В этот момент на другой ноде выполнялся инкрементный бэкап