Re: Oracle AQ Question

  • From: Thomas Day <tomdaytwo@xxxxxxxxx>
  • To: "Wang, Tao" <twang@xxxxxxxxxx>
  • Date: Thu, 11 Mar 2010 13:38:29 -0500

I went to MySupport (what a horrible site -- it totally hosed my computer
for half an hour printing the two pages of this note).

There are basically six points to this note:

1. One of the recipients (destination address for propagation) does not
exist.  --DESTINATION ADDRESS FOR PROPAGATION DOES EXIST.
2. The destination queue is not enabled for enqueue. -- QUEUES ARE STARTED
3. There is no recipient for the message at destination queue. --
4. Message was enqueued into a multiconsumer queue without a recipient list
and none of the
subscription rules are satisfied.  -- RECIPIENT LIST AND SUBSCRIPTION RULES
EXIST.
5. The destination queue for propagation is an exception queue. -- NO
6. There is a mismatch between the payload of the source and destination
queues. -- IDENTICAL
My responses are in the all caps.  I'm not sure that I understand the
distinction between #1 and #3 so I'm not sure what to say there.  #2 is
especially amusing since dbms_aqadm does not have an enable_enqueue proc.
In fact, what they mean is, have you run start_queue?  Typical of the
clarity of Oracle's documentation.

Trying to find out what #3 meant, I ended up running
ALTER SESSION SET EVENTS '24040 trace name context forever, level 10';

All is finally revealed.  The start queue is failing because of lack of OS
resources. The
Thu Mar 11 08:09:19 2010
MMNL absent for 61854 secs; Foregrounds taking over
MMNL absent for 61854 secs; Foregrounds taking over
MMNL absent for 61854 secs; Foregrounds taking over

in the alert log could have been a clue but it and the UNDELIVERABLE message
are about the only hints that Oracle gives.

With the trace on I see:
Thu Mar 11 08:09:19 2010

Thu Mar 11 11:11:54 2010

Errors in file c:\oracle\product\10.2.0.4\admin\tsi\bdump\tsi_j004_4448.trc:

ORA-00604: error occurred at recursive SQL level 1

ORA-04030: out of process memory when trying to allocate 68 bytes
(Typecheck,optdef: qcopCreateOptInternal)

ORA-12012: error on auto execute of job 591

ORA-04030: out of process memory when trying to allocate 16396 bytes (QERHJ
hash-joi,QERHJ Bit vector)

ORA-00604: error occurred at recursive SQL level 2

ORA-04030: out of process memory when trying to allocate 123404 bytes (QERHJ
hash-joi,kllcqas:kllsltba)

ORA-06512: at "SYS.DBMS_IJOB", line 49

ORA-06512: at "SYS.DBMS_JOB", line 124

ORA-06512: at "SYS.DBMS_PRVTAQIP", line 2166

ORA-06512: at line 1

ORA-06512: at "SYS.DBMS_IJOB", line 49

ORA-06512: at "SYS.DBMS_JOB", line 124

ORA-06512: at "SYS.DBMS_PRVTAQIP", line 2166

ORA-06512: at line 1

ORA-06512: at "SYS.DBMS_AQADM_SYS", line 7224

ORA-06512: at "SYS.DBMS_AQADM_SYS", line 7502

ORA-06512: at "SYS.DBMS_AQADM", line 978

ORA-06512: at line 1

Thu Mar 11 11:12:48 2010

Process startup failed, error stack:

Thu Mar 11 11:12:48 2010

Errors in file c:\oracle\product\10.2.0.4\admin\tsi\bdump\tsi_psp0_716.trc:

ORA-27300: OS system dependent operation:CreateThread failed with status: 8

ORA-27301: OS failure message: Not enough storage is available to process
this command.

ORA-27302: failure occurred at: ssthrddcr

AQ queuing is a bit of a memory hog.  I have 2G of physical RAM and can go
to 4G virtual.  Anyway, now I know why it appears to be not running.  It
isn't.  Now I have to figure how configure it to run within the OS (WIndows
XP) limits.  Thank you to everyone for your help.

Other related posts: