Home » RDBMS Server » Server Administration » Fetch across commit, ora-1555 (DB > 9.0)
Fetch across commit, ora-1555 [message #660844] |
Mon, 27 February 2017 12:33  |
John Watson
Messages: 8978 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
I have a problem with a procedure: it sometimes fails with a 1555 after a couple of hours. The code is doing what you are not supposed to do: committing within a cursor loop. The developer says "the procedure never takes more than three hours, so if you set undo_retention=10800 then it will always succeed" only it doesn't. Does anyone have an explanation of why the undo_retention does not work as one would like? Everyone knows that one should never fetch across commit in a loop cursor loop but I cant find a reason why the undo_retention does not fix the problem. I could do with a reason so that I can tell the developers to rewrite the code.
Thank you for any insight.
|
|
|
|
|
|
|
|
|
|
Re: Fetch across commit, ora-1555 [message #660877 is a reply to message #660876] |
Tue, 28 February 2017 02:59   |
 |
Michel Cadot
Messages: 68758 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
Quote:The v$undostat and the dba_hist flavour will shed some light on what is happening, but I'm assuming you've already looked there.
Yes, an abstract of DBA_HIST_UNDOSTAT (or similar) for the period during the procedure executes along with undo_retention parameter value and undo tablespace size during this period will help to diagnose.
[Updated on: Tue, 28 February 2017 03:01] Report message to a moderator
|
|
|
|
|
|
|
|
|
Re: Fetch across commit, ora-1555 [message #660895 is a reply to message #660893] |
Tue, 28 February 2017 08:52  |
Roachcoach
Messages: 1576 Registered: May 2010 Location: UK
|
Senior Member |
|
|
I know, but they've not always been there nor the expected accompanying items I'd have expected like unexpired stolen, much like John describes 
I don't have an example to hand at the minute though.
BEGIN_TIME : 20-feb-2017 13:23:03
END_TIME : 20-feb-2017 13:33:03
DBID : 3399676100
INSTANCE_NUMBER : 1
SNAP_ID : 165547
UNDOTSN : 28
UNDOBLKS : 64352
TXNCOUNT : 219595
MAXQUERYLEN : 3197
MAXQUERYSQLID : d4zt50d826gtq
MAXCONCURRENCY : 42
UNXPSTEALCNT : 0
UNXPBLKRELCNT : 0
UNXPBLKREUCNT : 0
EXPSTEALCNT : 0
EXPBLKRELCNT : 0
EXPBLKREUCNT : 0
SSOLDERRCNT : 1
NOSPACEERRCNT : 0
ACTIVEBLKS : 54528
UNEXPIREDBLKS : 9076480
EXPIREDBLKS : 5373104
TUNED_UNDORETENTION : 43200
From the DB this was taken from, there's no way this hit that error without some blocks being stolen etc.
[Updated on: Tue, 28 February 2017 08:57] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Mon Jun 09 20:48:16 CDT 2025
|