.ora-code.com

Links
Home
Oracle DBA Forum
Frequent Oracle Errors
TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found'>ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated
ORA-06508 and the Shared Pool sizing

ORA-06508 and the Shared Pool sizing

2005-07-01       - By Powell, Mark D
Reply:     1     2     3     4     5     6     7  

In the past when we modified an object that invalidated a package and
would then recompile the package sessions that had previous called the
package prior to the update and which then called the package again
after the update would get an error that stated "package state has
changed".

I just discovered that on 9.2.0.5 running on AIX 5.2 that the 06508
message is now issued instead.  In this case the user session needs to
reconnect and the problem will go away.

HTH -- Mark D Powell --


__ ____ ____ ____ ____ ____ ____

From: oracle-l-bounce@(protected)
[mailto:oracle-l-bounce@(protected)] On Behalf Of Powell, Mark D
Sent: Wednesday, June 29, 2005 12:50 PM
To: robyn.sands@(protected); oracle-l@(protected)
Subject: RE: ORA-06508 (See ORA-06508.ora-code.com) and the Shared Pool sizing


The ORA-06508 (See ORA-06508.ora-code.com) error means Oracle could not find enough contiguous memory
in the shared pool to load the referenced package into.  The shared pool
becomes fragmented over time and even though Oracle can load packages
into multiple non-contiguous chunks of memory the rdbms still must find
large contiguous space for certain structures required by the code.  You
can generally avoid this problem by doing the following:

1 - in your production environment do not make object changes where
dependencies exist from large stored procedures and/or packages except
during a maintenance window

2 - flush the pool and immediately recompile all invalidated code after
making a change

3 - limit the size of any package or procedure using two or three
smaller routines if necessary

4 - use dbms_keep to pin all large packages immediately after database
startup

HTH -- Mark D Powell --


__ ____ ____ ____ ____ ____ ____

From: oracle-l-bounce@(protected)
[mailto:oracle-l-bounce@(protected)] On Behalf Of Robyn
Sent: Wednesday, June 29, 2005 12:08 PM
To: oracle-l@(protected)
Subject: ORA-06508 (See ORA-06508.ora-code.com) and the Shared Pool sizing


Hello everyone,

We've run into a new issue and I'm curious as to how 'normal' this might
be.  We have a new/upgraded application in test. User testing was
scheduled to start yesterday but one trigger was failing.  This trigger
calls a procedure owned by another user and had worked in the past.  It
is an 'after update' trigger and the procedure populates a status table,
but resulted in ORA-06508 (See ORA-06508.ora-code.com): PL/SQL: could not find program unit being
called.

The developers worked through all the stuff they knew to check
(permissions, full identificiation of the objects, etc) to no avail.
The procedure and trigger appeared to be valid, but compiling the
trigger caused the procedure to go invalid.  Procedure could be
recompiled but the trigger still didn't work.

I searched at Metalink and found several documents referrencing this
error for various Oracle applications, while the docs specific to the
database all mentioned the same stuff that had already been tried.

The Oracle applications docs stated that the shared pool was too small
and needed to be increased.  Seemed odd to me since the error mentioned
not finding a program unit, but these were the only docs that referenced
receiving just this error.  In every other case, there was a related
error message was mentioned.

So, I shutdown the database, increase the shared pool by 128M (or 33%)
and the procedure worked.  However a later attempt to recompile again
broke the procedure.  This time the database was restarted without an
increase in the shared pool and again, the procedure worked.

We're going to test a few things later when the users get off the
system, but this seems really odd.  The database is on HP-UX not
WinDoze, so I should not have to play the restart game to fix a problem.
Has anyone seem a similar problem?  I am planning to open a TAR if it
repeats but I can't test again until tonight.

TIA ... Robyn


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005>In the past when we modified an object that
invalidated
a package and would then recompile the package sessions that had previous
called
the package prior to the update and which then called the package again after
the update would get an error that stated "package state has
changed".</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005>I just discovered that on 9.2.0.5 running on AIX 5.2
that the 06508 message is now issued instead.&nbsp; In this case the user
session needs to reconnect and the problem will go away.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005>HTH -- Mark D Powell --</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=340150018-01072005></SPAN></FONT>&nbsp;</DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> oracle-l-bounce@(protected)
[mailto:oracle-l-bounce@(protected)] <B>On Behalf Of </B>Powell, Mark
D<BR><B>Sent:</B> Wednesday, June 29, 2005 12:50 PM<BR><B>To:</B>
robyn.sands@(protected); oracle-l@(protected)<BR><B>Subject:</B> RE: ORA-06508 (See ORA-06508.ora-code.com)
and the Shared Pool sizing<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005>The ORA-06508 (See ORA-06508.ora-code.com) error means Oracle could not find enough
contiguous memory in the shared pool to load the referenced package into.&nbsp;
The shared pool becomes fragmented over time and even though Oracle can load
packages into multiple non-contiguous chunks of memory the rdbms still must
find
large contiguous space for certain structures required by the code.&nbsp; You
can generally avoid this problem by doing the following:</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005>1 - in your production environment do not make object
changes where&nbsp;dependencies exist from large stored procedures and/or
packages except during a maintenance window</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005>2 - flush the pool and immediately recompile all
invalidated code after making a change</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005>3 - limit the size of any package or procedure using
two or three smaller routines if necessary</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005>4 - use dbms_keep to pin all large packages
immediately
after database startup</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff><SPAN class=563193916-29062005>HTH -- Mark
D
Powell --</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff><SPAN
class=563193916-29062005></SPAN></FONT><FONT face=Arial
color=#0000ff></FONT>&nbsp;</DIV>
<DIV><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> oracle-l-bounce@(protected)
[mailto:oracle-l-bounce@(protected)] <B>On Behalf Of </B>Robyn<BR><B>Sent:</B
>
Wednesday, June 29, 2005 12:08 PM<BR><B>To:</B>
oracle-l@(protected)<BR><B>Subject:</B> ORA-06508 (See ORA-06508.ora-code.com) and the Shared Pool
sizing<BR></FONT><BR></DIV>
<DIV></DIV>Hello everyone,<BR><BR>We've run into a new issue and I'm curious as
to how 'normal' this might be.&nbsp; We have a new/upgraded application in test
.
User testing was scheduled to start yesterday but one trigger was failing.&nbsp
;
This trigger calls a procedure owned by another user and had worked in the
past.&nbsp; It is an 'after update' trigger and the procedure populates a
status
table,&nbsp; but resulted in ORA-06508 (See ORA-06508.ora-code.com): PL/SQL: could not find program unit
being called.<BR><BR>The developers worked through all the stuff they knew to
check (permissions, full identificiation of the objects, etc) to no avail.&nbsp
;
The procedure and trigger appeared to be valid, but compiling the trigger
caused
the procedure to go invalid.&nbsp; Procedure could be recompiled but the
trigger
still didn't work. <BR><BR>I searched at Metalink and found several documents
referrencing this error for various Oracle applications, while the docs
specific
to the database all mentioned the same stuff that had already been
tried.<BR><BR>The Oracle applications docs stated that the shared pool was too
small and needed to be increased.&nbsp; Seemed odd to me since the error
mentioned not finding a program unit, but these were the only docs that
referenced receiving just this error.&nbsp; In every other case, there was a
related error message was mentioned.<BR><BR>So, I shutdown the database,
increase the shared pool by 128M (or 33%) and the procedure worked.&nbsp;
However a later attempt to recompile again broke the procedure.&nbsp; This time
the database was restarted without an increase in the shared pool and again,
the
procedure worked.<BR><BR>We're going to test a few things later when the users
get off the system, but this seems really odd.&nbsp; The database is on HP-UX
not WinDoze, so I should not have to play the restart game to fix a
problem.&nbsp; Has anyone seem a similar problem?&nbsp; I am planning to open a
TAR if it repeats but I can't test again until tonight.<BR><BR>TIA ...
Robyn<BR></BODY></HTML>