Troubleshooting
Problem
Oracle 8.0.5 Bug: Internal Error, Transaction Does Not Exist for Distributed Transaction (PL/SQL)
Symptom
Oracle sporadically gives an internal error when a distributed transaction in a
PL/SQL block contains a commit or rollback.
This can affect our
Yantra/Oracle integration wrappers very severely.
Cause
Resolving The Problem
It has been reported that a wrapper left a lock on the infc_upld_tab_1 which
could not be removed unless the database was shutdown. This prevented
subsequent transactions from being uploaded.
When we contacted Oracle,
they told us that this a known problem that was fixed in patch release 8.0.5.1.
This problem was resolved when we applied the patch.
From the
case:
Upon analysis of the Yantra production server and the errors we
were receiving, the issue is known. The solution is to upgrade to 8.0.5.1 rdbms
patchset.
Below are the bug details and the published
fix:
<Bug:684157> Distributed Transactions containing PL/SQL Commit may
fail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<
br>Versions Affected
~~~~~~~~~~~~~~~~~
This problem was introduced in
Oracle release: 8.0
This problem is fixed in Oracle release:
8.0.6
This problem is fixed in Patch Set: 8.0.4.3 and
8.0.5.1
Platforms Affected
~~~~~~~~~~~~~~~~~~
GENERIC
Description
~~~~~~~~~~~
If a distributed transaction
contains a COMMIT or ROLLBACK within a PL/SQL block, it is possible that
subsequent transactions will fail with an internal error.
Likelihood of
Occurrence
~~~~~~~~~~~~~~~~~~~~~~~~
For this problem to occur the
application must:
i. Be using PLSQL in distributed transactions;
and
ii. Be using COMMIT or ROLLBACK within the PLSQL
This may occur
when using Symmetric Replication within Oracle.
Possible
Symptoms
~~~~~~~~~~~~~~~~~
The main symptoms of this problem are the
following error messages which may appear in the alert log:
ORA-600:
internal error code, arguments: [18208] [...]
ORA-24756: transaction
does not exist
Workaround
~~~~~~~~~~
The only workaround for the
problem is not to COMMIT or ROLLBACK a transaction within PLSQL but to issue
COMMIT or ROLLBACK as a top-level user command.
No database corruption
occurs as a result of this problem - it is possible to fully recover by
shutting down and restarting the instance reporting the
errors.
Patches
~~~~~~~
Please contact Oracle Worldwide Support to
find out if a patch is available for your platform and Oracle version.
Historical Number
PRI48232
Product Synonym
[<p><b>]Fact[</b><p>];
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21537495