记录: ORA-14450 ERROR DELETING FROM A GLOBAL TEMPORARY TABLE Bug 5334271

最近数据库中莫名在 执行"delete from  A GLOBAL TEMPORARY TABLE "时报"ORA-14450: attempt to access a transactional temp table already in use"错误,但重新执行相关的业务又正常,但过一段时间又出现.
环境:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
NLSRTL Version 10.2.0.4.0 - Production
 
临时表类型为:commit delete rows;
 
查资料发现现象与Bug 5334271的描述非常吻合,但Oracle目前没有相关的补丁.
 
后把临时表的类型改为commit preserve rows,错误竟然再也没有出现.
 
 
附Bug 5334271的内容:

Bug 5334271: SPORADIC ORA-14450 ERROR DELETING FROM A GLOBAL TEMPORARY TABLE

Show Bug AttributesBug Attributes


TypeB - DefectFixed in Product Version-
Severity2 - Severe Loss of ServiceProduct Version10.1.0.4.0
Status92 - Closed, Not a BugPlatform215 - z*OBSOLETE: Microsoft Windows Server 2003
Created14-Jun-2006Platform. Version5.2
Updated28-Jun-2006Base Bug-
Database Version10.1.0.4.0
Affects PlatformsGeneric
Product SourceOracle

Show Related ProductsRelated Products


LineOracle Database ProductsFamilyOracle Database
AreaOracle DatabaseProduct5 - Oracle Server - Enterprise Edition

Hdr: 5334271 10.1.0.4.0 RDBMS 10.1.0.4.0 PRODID-5 PORTID-215 ORA-14450
Abstract: SPORADIC ORA-14450 ERROR DELETING FROM A GLOBAL TEMPORARY TABLE

*** 06/14/06 02:10 pm ***
TAR:
----

PROBLEM:
--------
Application runs fine greater than 90% of time, then out of the blue will
fail with an ORA-14450 error.


From an event trace.
*** 15:49:47.796
ksedmp: internal or fatal error
ORA-14450: attempt to access a transactional temp table already in use
Current SQL statement for this session:
DELETE FROM SMPLCANDIDATES
----- PL/SQL Call Stack -----
object line object
handle number name
29E8D0CC 83 procedure QC_CDB.SPIS_MPMLSTEP1
29E93700 1 anonymous block

DIAGNOSTIC ANALYSIS:
--------------------
Have tried to reproduce using application code, but no luck getting the
failure to occur.


SQL> CREATE GLOBAL TEMPORARY TABLE SCOTT.SMPLCANDIDATES
2 (
3 MPID NUMBER(38) NOT NULL,
4 CLUSTERID NUMBER(38) NOT NULL,
5 ALINKCOUNT NUMBER(38) NULL,
6 CONSTRAINT PKSMPLCANDIDATES PRIMARY KEY (MPID, CLUSTERID)
7 )
8 ON COMMIT DELETE ROWS
9 /

Table created.

SQL> DELETE FROM smplcandidates;

0 rows deleted.

SQL> INSERT INTO smplcandidates
2 select empno, mgr, deptno from emp;

14 rows created.

SQL> select count(*) from smplcandidates;

COUNT(*)
----------
14

SQL> commit;

Commit complete.

SQL> select count(*) from smplcandidates;

COUNT(*)
----------
0

SQL> INSERT INTO smplcandidates
2 select empno, mgr, deptno from emp;

14 rows created.

SQL> DELETE FROM smplcandidates;

14 rows deleted.

SQL> select count(*) from smplcandidates;

COUNT(*)
----------
0

Have tried 2 and 3 concurrent sessions inserting and deleting, but cannot get
this to fail. Only fails at ct. site using application, and then only very
sporadically.

WORKAROUND:
-----------
Re-run the process that just failed, it will run fine.

RELATED BUGS:
-------------

REPRODUCIBILITY:
----------------
Unable to reproduce, only at ct. site.

TEST CASE:
----------

STACK TRACE:
------------
*** 15:49:47.796
ksedmp: internal or fatal error
ORA-14450: attempt to access a transactional temp table already in use
Current SQL statement for this session:
DELETE FROM SMPLCANDIDATES
----- PL/SQL Call Stack -----
object line object
handle number name
29E8D0CC 83 procedure QC_CDB.SPIS_MPMLSTEP1
29E93700 1 anonymous block
----- Call Stack Trace -----
calling call entry argument values in hex

location type point (? means dubious value)

-------------------- -------- --------------------
----------------------------
_ksedmp+576 CALLrel _ksedst+0 0
_ksddoa+122 CALLreg 00000000 3
_ksdpcg+143 CALLrel _ksddoa+0
_ksdpec+180 CALLrel _ksdpcg+0 3872 E5DC0C8 1
__PGOSF3__ksfpec+11 CALLrel _ksdpec+0 0
8
_kgesev+81 CALLreg 00000000 BF31BB0 3872
_ksesec0+39 CALLrel _kgesev+0 BF31BB0 E2FE63C 3872 0
E5DC11C
_kctphTTGet+38 CALLrel _ksesec0+0 3872
__VInfreq__delini+3 CALLrel _kctphTTGet+0 234F8F24 5F82C68
28
_delexe+149 CALLrel _delini+0 26A2F314 5F8293C
_opiexe+13427

SUPPORTING INFORMATION:
-----------------------

24 HOUR CONTACT INFORMATION FOR P1 BUGS:
----------------------------------------

DIAL-IN INFORMATION:
--------------------

IMPACT DATE:
------------

*** 06/14/06 02:18 pm ***
Uploaded the following to "/upload/bug5334271"

RDA.HSMPQC_OJSISQL103.zip - RDA report
trace_files.zip - event 14450 traces

The event traces where generated with the following and unable to find other
users even touching the failing temp table.

event="14450 trace name errorstack level 3"
event="14450 trace name systemstate level 10"

Please let me know what additional information is needed.
*** 06/21/06 12:48 pm ***
*** 06/25/06 09:40 pm *** ESCALATED
*** 06/25/06 09:40 pm ***
*** 06/25/06 10:30 pm ***
*** 06/26/06 09:16 pm ***
*** 06/27/06 11:04 am ***
*** 06/27/06 11:05 am *** (CHG: Sta->10)
*** 06/27/06 11:05 am ***
*** 06/28/06 07:12 am ***
*** 06/28/06 07:12 am *** -> CLOSED
*** 06/28/06 07:12 am *** (CHG: Sta->92)
 
   
Article Rating
Rate this document
Excellent
Good
Poor
Did this document help you?
Yes
No
Just browsing
How easy was it to find this document?
Very easy
Somewhat easy
Not easy
Comments
Provide feedback for this article. Please use 'Contact Us' for other feedback.

Important Note: this feedback may be anonymously visible to other customers until processed by Oracle Support.

Cancel
<!--5334271
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/195110/viewspace-734004/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/195110/viewspace-734004/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值