I'd like to set up propagation in Oracle AQ (11).
I'd like to propagate from queue "Q" in queue table "QT" to queue "QD" in queue table "QTD".
This is my setup:
DECLARE
subscriber sys.aq$_agent;
BEGIN
DBMS_AQADM.CREATE_QUEUE_TABLE(queue_table=>'QT',multiple_consumers=>TRUE,queue_payload_type=>'RAW');
DBMS_AQADM.CREATE_QUEUE_TABLE(queue_table=>'QTD',queue_payload_type=>'RAW');
DBMS_AQADM.CREATE_QUEUE(queue_name => 'Q', queue_table => 'QT');
DBMS_AQADM.CREATE_QUEUE(queue_name => 'QD', queue_table => 'QTD');
DBMS_AQADM.START_QUEUE(queue_name => 'Q');
DBMS_AQADM.START_QUEUE(queue_name => 'QD');
subscriber := sys.aq$_agent('SUB', 'QD', NULL);
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => 'Q',subscriber => subscriber, queue_to_queue => TRUE);
DBMS_AQADM.SCHEDULE_PROPAGATION(queue_name => 'Q');
END;
/
I send message from a Java aqapi client. The message is sent without error, I can see it in the "Q" queue:
select * from QT;
"Q_NAME" "MSGID" "CORRID" "PRIORITY" "STATE" "DELAY" "EXPIRATION" "TIME_MANAGER_INFO" "LOCAL_ORDER_NO" "CHAIN_NO" "CSCN" "DSCN" "ENQ_TIME" "ENQ_UID" "ENQ_TID" "DEQ_TIME" "DEQ_UID" "DEQ_TID" "RETRY_COUNT" "EXCEPTION_QSCHEMA" "EXCEPTION_QUEUE" "STEP_NO" "RECIPIENT_KEY" "DEQUEUE_MSGID" "SENDER_NAME" "SENDER_ADDRESS" "SENDER_PROTOCOL" "USER_DATA" "USER_PROP"
"Q" FC914BFDC7489ECEE040010A393F3DD1 "" 1 0 0 0 0 0 24-JUN-14 07.56.27.258348000 AM "RISKOPALL" "9.5.283837" "" "" 0 "" "" 0 0 "" "" 0 (BLOB)
But I can't see it in the "QD" destination queue:
select * from QTD;
Shows empty result.
Do you have any idea what's wrong with it?
I already tried ENABLE_PROPAGATION_SCHEDULE, but it's already enabled after SCHEDULE_PROPAGATION. It results in an error.
I checked this page: http://docs.oracle.com/cd/B28359_01/server.111/b28420/aq_trbl.htm but I can't find DBA_QUEUE_SCHEDULES view. I have admin rights. Where shall I look for it? How shall I troubleshoot propagation?
Any help is really apreciated!