Reputation: 17203
I have a distributed transaction which wraps lets say 3 others. One of those inner transactions fails with ORA-02049. The insidious thing is, the outer transaction and the others are fine, because the transaction manager first got from all 3 transactions that they will succeed. The one transaction fails with ORA-02049 and is correctly rolled back. But in the whole the system is in an inconsistent state because the system expects all transactions to go through.
The database is not under our control, we have to use it. Our client uses some stupid non Oracle replication software which is responsible for the error in the first place.
In my opinion it is not reasonable to expect from us to design the system in a way that it handles such error cases automatically! How would you respond to such a request?
Is it our fault to expect from a transaction manager if it says it will commit, that the commit will actually go through?
How would you approach such a problem - our whole software expects that the database works flawlessly - is this a faulty assumption?
Upvotes: 1
Views: 198
Reputation: 3594
I would have the customer raise a bug with the third party software vendor. I would lay out to the client that the issue is caused by a bug in, what effectivly, their system. I would then indicate that they have a choice, either wait for a bug fix from the third party, or pay for a Change Request so that your software codes round it.
It is of course up to you and the company relationships etc if you actually make them pay for the CR, but make it clear that it is extra work and not your fault.
Upvotes: 0