I am getting no more ORA-21779 lately.
I am wondering if patch 10.1.0.5 did work in the end for my regexp_replace problem.
Definitely a weird case.
UPDATED July 13, 2007
if you are getting this error in an Oracle Application Express page, try out this workaround.
ORA-21779: durata non attiva
ORA-21779: duración no activa
ORA-21779: durada inactiva
ORA-21779: durée dépassée
ORA-21779: Dauer nicht aktiv
ORA-21779: διάρκεια μη ενεργή
ORA-21779: varighed ikke aktiv
ORA-21779: varaktigheten är inte aktiv
ORA-21779: varighet ikke aktiv
ORA-21779: kesto ei aktiivinen
ORA-21779: az időtartam nem érvényes
ORA-21779: durata nu este activă
ORA-21779: Tijdsduur is niet actief.
ORA-21779: duração não está ativa
ORA-21779: duração não activa
ORA-21779: период не активный
ORA-21779: trvání není aktivní
ORA-21779: trvanie nie je aktívne
ORA-21779: nie uaktywniono czasu trwania
ORA-21779: süre etkin değil
Welcome to Flavio Casetta's official Oracle database application development related blog.
Showing posts with label Duration. Show all posts
Showing posts with label Duration. Show all posts
Friday, November 24, 2006
Monday, July 31, 2006
ORA-21779 the brain teaser
Amongst my favourite oracle 10G enhancements there is the support for regular expressions.
There is a whole bunch of functions to deal with strings using these powerful pattern matching descriptors so i decided to use them for implementing a procedure that unscrambles search engine URLs in pursuit of the search keywords that led a user to my site.
So, i set out and wrote this wonderful web search URL decoder for the most popular engines like Google and Yahoo and installed it on my development box, just to find out minutes later that, at times, i was getting a strange error called ORA-21779: Duration not active.
The short error description wasn't very helpful, what kind of duration is it talking about?!?
Don't panic, let's see first what the Error Messages manual for version 10.1 says about it.
Cause: User is trying to use a duration that has been terminated
Action: User should avoid performing such operation.
I don't know the rest of you guys, but i'd love to know the "backstage" of the birth of this message. I get this fancy picture in my mind of two tired oracle techies working late in an office where everyone else is at home and sleeping and one screams at the colleague sitting at the other end of a big open space room:
- JOE! What was that error you got this morning?
- ...ion not active! (very weak)
- What?
- ...ion NOT ACTIVE! (somewhat louder)
- HUH?!?
- &$%!!
- (long silence)... and how do you fix it?
- Just don't do it!
- (long silence)
At any rate, back to my problem, it took me a while to figure out that the error was raised by function regexp_replace, for two reasons:
#1 the error was not returned every time i executed the query even against the same inputs.
#2 the function is contained in a so-called "process" inside a page definition of Oracle Apex (Application Express 2.0) , so, at first i thought it was returned by the underlying query of the report being displayed, not by the after submit process.
So, in the end, i commented out the function call and the error stopped occurring.
Said that, i turned up to oracle metalink in search of more descriptive explanations of the problem but i found just one note mentioning regexp functions called inside "pipelined functions".
I also found another note (or was it the same?) suggesting that patch 10.1.0.5 could fix the problem, so i installed the patch too, with little success regarding the point, but introducing the ORA-12640 problem i related in a previous post.
It was not my lucky day, definitely.
After several attempts to isolate the real cause of the problem however, i found out that the error can happen even without nesting regexp_replace inside pipeline functions, but still i cannot reproduce this behaviour sistematically, there is some erraticism in it.
To add more to the picture, this seems to be a Windows only problem.
I could not manage to reproduce it on Solaris, which is good on the other hand because it's my target production environment.
I also left a message in the metalink forum, but nobody has replied up to date.
So, at the end of the day, the function in my development box is still haunted by these infrequent ORA-21779 errors and i don't dare to install the new functionality in a production environment even if, so far, all the tests have returned positive results.
Any suggestions?
PS: UPDATED July 13, 2007
if you are getting this error in an Oracle Application Express page, try out this workaround.
There is a whole bunch of functions to deal with strings using these powerful pattern matching descriptors so i decided to use them for implementing a procedure that unscrambles search engine URLs in pursuit of the search keywords that led a user to my site.
So, i set out and wrote this wonderful web search URL decoder for the most popular engines like Google and Yahoo and installed it on my development box, just to find out minutes later that, at times, i was getting a strange error called ORA-21779: Duration not active.
The short error description wasn't very helpful, what kind of duration is it talking about?!?
Don't panic, let's see first what the Error Messages manual for version 10.1 says about it.
Cause: User is trying to use a duration that has been terminated
Action: User should avoid performing such operation.
I don't know the rest of you guys, but i'd love to know the "backstage" of the birth of this message. I get this fancy picture in my mind of two tired oracle techies working late in an office where everyone else is at home and sleeping and one screams at the colleague sitting at the other end of a big open space room:
- JOE! What was that error you got this morning?
- ...ion not active! (very weak)
- What?
- ...ion NOT ACTIVE! (somewhat louder)
- HUH?!?
- &$%!!
- (long silence)... and how do you fix it?
- Just don't do it!
- (long silence)
At any rate, back to my problem, it took me a while to figure out that the error was raised by function regexp_replace, for two reasons:
#1 the error was not returned every time i executed the query even against the same inputs.
#2 the function is contained in a so-called "process" inside a page definition of Oracle Apex (Application Express 2.0) , so, at first i thought it was returned by the underlying query of the report being displayed, not by the after submit process.
So, in the end, i commented out the function call and the error stopped occurring.
Said that, i turned up to oracle metalink in search of more descriptive explanations of the problem but i found just one note mentioning regexp functions called inside "pipelined functions".
I also found another note (or was it the same?) suggesting that patch 10.1.0.5 could fix the problem, so i installed the patch too, with little success regarding the point, but introducing the ORA-12640 problem i related in a previous post.
It was not my lucky day, definitely.
After several attempts to isolate the real cause of the problem however, i found out that the error can happen even without nesting regexp_replace inside pipeline functions, but still i cannot reproduce this behaviour sistematically, there is some erraticism in it.
To add more to the picture, this seems to be a Windows only problem.
I could not manage to reproduce it on Solaris, which is good on the other hand because it's my target production environment.
I also left a message in the metalink forum, but nobody has replied up to date.
So, at the end of the day, the function in my development box is still haunted by these infrequent ORA-21779 errors and i don't dare to install the new functionality in a production environment even if, so far, all the tests have returned positive results.
Any suggestions?
PS: UPDATED July 13, 2007
if you are getting this error in an Oracle Application Express page, try out this workaround.
Subscribe to:
Posts (Atom)
yes you can!
Two great ways to help us out with a minimal effort.
Click on the Google Plus +1 button above or...
We appreciate your support!