Question

ORA-06508: PL/SQL: could not find program unit being called

  • 6 January 2024
  • 2 replies
  • 67 views

Userlevel 4
Badge +8

We are on 23R1 SU6.

We have a custom integration sending in 1000s of messages through CONNECT to application messages updating Work Tasks. 

There is 3 connect pods running, and the application message queue runs in Parallel.

Application message is calling a procedure, and out of 19000 messages, 233 calls ended up in error (application message is processing fine, but running the business logic causes the error, which we are catching and saving into a separate table):

ORA-06508: PL/SQL: could not find program unit being called

We know that no one was deploying anything to make any package invalid. What else could cause this error to happen? 
Is there a good way to troubleshoot? Any way to know which package it is referring to?
 


2 replies

Userlevel 4
Badge +8

The routing address used looks like this:
 

The code called:

 

I’m wondering, where the App_Context_SYS APPLICATION_MESSAGE_ID is set. Is it set from middletier? SInce the context_ variable in this package is a global variable, could this lead to the error if two messages are run at exactly the same time?

 

Userlevel 2
Badge +5

Hi,

App_conext_sys sets session variables which sets the APPLICATION_MESSAGE_ID for session. usually this is set, accessed, unset during one session and not possible to be shared among different transactions.

Error usually comes when plsql package cannot be accessed, or not visible to user because user has no grants to that package. if we have customizations, may be failed messages taking different logic path where it encounters non granted package. have you had a look in this direction?
 

/Chameera

Reply