Forum Stats

  • 3,769,805 Users
  • 2,253,023 Discussions
  • 7,875,211 Comments

Discussions

ORA-06508 on callback from DBMS_AQ.REGISTER

User_ZNXPJ
User_ZNXPJ Member Posts: 10 Blue Ribbon

Hi:

We are using dbms_aq.register to register a Callback function to be called each time a message is enqueued in a queue. The callback function does not directly perform a dbms_aq.dequeue, instead we have a convenience package that does this, and we call this package from our callback function. This is working properly most of the time, except when we make any change in our convenience package. After compiling that package our callback process is fired but we get this error in the line where we call our convenience package: ORA-06508: PL/SQL: could not find program unit being called.

The occurrence of this error is not for each message that we enqueue, we get this error randomly, many times it get fires for each message during a time, other times it gets fired for some messages, but always after a time it disappears, the callback function works as expected and can call the convenience package without this problem.

We stop, delete, and recreate the queue each time we compile the package so, this couldn't be the source of this behaviour.

Our product version:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

PL/SQL Release 12.1.0.2.0 - Production

CORE 12.1.0.2.0 Production

TNS for Linux: Version 12.1.0.2.0 - Production

NLSRTL Version 12.1.0.2.0 - Production