Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

OAAdapter and ORA-04061: existing state of package has been invalidated

RobertMetcalfSep 28 2011 — edited Jun 11 2012
Oracle Applications Adapter and ORA-04061: existing state of package has been invalidated

Hi
We get the ORA-04061 error from time to time after a code change in our development environment. It causes our composites to fail. I have been asked to investigate this error to determine if it will cause problems for us in PROD.
Based on reading various articles (including http://oraclequirks.blogspot.com/2007/03/ora-04061-existing-state-of-package-has.html) it seems that there is a danger of this error occurring after we run a database patch that changes the PLSQL packages called through SOA. Our DBA’s tell me that forcing restarts of servers after patching is impractical.
To resolve the error all that is needed is that the PLSQL needs to be called again. I could put exception handlers into BPELs that try every PLSQL twice but that is a massive change to a lot of code and could introduce other problems. Is there an option for the Oracle Applications adapter to detect this error and retry?
Alternatively can we add some code to the database patch which would force WebLogic to close all active connections once the patch is applied?
Any advice would be appreciated
Thanks
Robert

Comments

Nick Gorman-Oracle

Supanut,

See the processor help here:

http://www.oracle.com/webfolder/technetwork/data-quality/edqhelp/index.htm

The details are only added when used in a real time [i.e. web services] call or run as part of a job.

regards,

Nick

S_Srisaksakul

Thank you for your helpful reply.

I make a test and it is really as you and the help file stated.

It is working on realtime data input.

If you would be kind to help me more,

My destination data table has a field named "UPDATE_USER" to record  name of who put  or update the data.

Are there anyway to link EDQ username to be put in the output data so that non EDQ user know which of the edq user put the data in?

Nick Gorman-Oracle

Hi,

If you're talking about writing the EDQ data back to a database table then you need to read the help topic on Exports.

regards,

Nick

S_Srisaksakul

thanks again

I forgot to mention that  the input data is non-real time and  the problem that I currently have is to aqquire the username from EDQ user since from what i understand  "User data detail" only work  on  real time data. I have no problem writting data back to the database.

regards,

T

Nick Gorman-Oracle

Yes, this processor is specifically designed for real-time mode. The username that invoked a batch job is stored in the event log [which can be snapshotted - see System Information - Event log data store] but it's not easy to add this to batch data [as this would require some post-processing to do the lookup].

Mike-Matthews-Oracle

Batch jobs that write data to external targets are normally run from a schedule by a system user (with rights to execute batch jobs) in any case, rather than by a specific 'user' who is logged into EDQ. Depending on your use case, it might therefore be that you need to identify the update as from EDQ rather than from anyone specific?

1 - 6
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jul 9 2012
Added on Sep 28 2011
1 comment
1,381 views