IBM Support

Oracle 8.0.5 Bug:  Internal Error, Transaction Does Not Exist for Distributed Transaction (PL/SQL)

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.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

PRI48232

Product Synonym

[<p><b>]Fact[</b><p>];

Document Information

Modified date:
16 June 2018

UID

swg21537495