Исключение из-за ограничения адаптера БД Oracle Oracle при записи в две таблицы - внезапно нарушено
У меня есть процесс Oracle BPEL, работающий в WebLogic, который записывает в две таблицы с использованием адаптеров базы данных.
Есть две таблицы, TableA и TableB. TableB имеет внешний ключ для TableA.
В процессе я создаю запись в таблице A с A_ID. Когда я создаю запись в TableB, используя A_ID в качестве FK, я получаю исключение ограничения.
Что странно, это работало на прошлой неделе, и теперь, используя те же данные, я получаю сообщение об ошибке.
Источник данных настроен как стандартный - источник данных не-XA.
Это исключение, которое выдается:
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Exception occured when binding was invoked.
Exception occured during invocation of JCA binding: "JCA Binding execute of
Reference operation 'insert' failed due to: DBWriteInteractionSpec Execute
Failed Exception.
insert failed. Descriptor name: [Datawarehouse.TableB].
Caused by java.sql.BatchUpdateException: ORA-02291: integrity constraint
(DWH.TABLE_A_FK) violated - parent key not found
.
".
The invoked JCA adapter raised a resource exception.
Please examine the above error message carefully to determine a resolution.
</faultstring>
<faultactor/>
<detail>
<exception>ORA-02291: integrity constraint (DWH.TABLE_A_FK) violated - parent key not found</exception>
</detail>
</env:Fault>
1 ответ
Это не имеет ничего общего с Oracle BPEL. По какой-то причине либо вставка в таблицу A не удалась, либо вставка в таблицу A не видна в таблице B (вторая вставка находится в другой транзакции).