existing state of packages has been discarded

Hello,

I've been trying to reproduce this error due to a test i was doing and was unable to do so. So i tried from sqlplus with the exact same sequence of events and it worked i.e. I got the error.

Then I started wondering what was going on and traced what was happening with PL/SQL Developer.

pl/sql developer is silently ignoring this error and resending the procedure :eek:

This is very bad, as a developer needs to be aware that this error had happened.

You should not do this silently in the background without any notification ! Some one can spend days trying to figure out why it works in the command window each time, and when called from the say webserver it fails every so often. :mad:

I would like to suggest either (or all) of the following:
- have an option (like the timing option) for the command window, wether to auto-retry such errors
- have some kind of indication that this has happened, like a small warning triangle like the one for this post, which when pointed will show a hint with an explanation of it's meaning.

Please don't do that again, do not silently ignore any errors. We're are not end users, we are developers. We need to be aware of those so that we can fix them.

This is 6.0.3.893 (btw you should've put in the news that 6.0.3. is out...)
 
pl/sql developer is silently ignoring this error and resending the procedure
PL/SQL Developer does not do this silently. It displays a warning on the message line (Warning: ORA-04068: Existing state of packages has been discarded).
This is 6.0.3.893 (btw you should've put in the news that 6.0.3. is out...)
That was an unfortunate oversight. We have fixed it.
 
Sorry, I forgot to mention that I am running the package from the command line.

I checked carefully, there were no messages indicating of the problem.
 
We're looking into this. I don't think it was intended, but rather a side-effect of the Test Window implementation. In that case it will be fixed.
 
I would'nt complain of the 4068 handling of pl/Developer. In fact it's the way I'd like my procedures to work.

So How did you manage it?????

All my attempts to catch this error and retry the call have been in vain.

I've been looking in Metalink and asking Oracle support without success.

Thanks a lot.
 
It's simple: if you get ORA-04068, try again.

This can only be done from within a host language though, and not from within PL/SQL.
 
How exactly do you do it? Do you write a try except around every call?

Is this something that you could add as a (GREAT) feature in the TOracleSession? Make it a property like "ResendMethodOnDiscardedState" and default is TRUE.

Thanks
 
That's good enough. Because that includes the TOracleDataSets (if it executes an anonymous block) and Packages created with the wizard...

Am I correct?

Is this on the enhancement list? ;)

Thanks!
 
That is not correct. I am talking about PL/SQL Developer, and you are talking about Direct Oracle Access.

Direct Oracle Access has no built-in functionality to transparently handle ORA-04068. You will have to explicitly implement this.
 
Excuse me, but you have some example os this implementation?
Every time I got an ORA-04068 on OracleSession, I need to reconnect because my session has gone...
 
I have no example, but if you execute a PL/SQL Block and it raises an ORA-04068, you can execute it again to run with the reset package state.
 
Back
Top