6 Replies Latest reply: Mar 8, 2013 7:32 AM by Martien van den Akker RSS

    Events not being dequeued from queue

    901806
      Hi,

      we have a EBS to CRMOD PIP based integration which utilizes EBS queue wf_bpel_q for recording events for initiating integration process initializations. The issue we are faced with our events not getting dequeued from the queue despite the process getting kicked post events enqueueing. The events are appearing with msg_state Ready despite they having been read and listener process executed.

      IS this not happening because the queue is configured with multiple subscribers. Thus the message would not be removed from the queue unless its read by all the subscribers on the queue. there are 8 subscribers on the queue, does this mean we would have to apply the following suggested approach to resolve the clearing of events from queue.


      AQ Error handling (RETRY_COUNT)
      RETRY_COUNT
      1. if DBMS_AQ.dequeue call rolled back RETRY_COUNT is increased by one
      2. if RETRY_COUNT reach MAX_RETRIES value (5) it moved to exception
      queue
      3. optionally RETRY_DELAY could be set on queue level

      EXPIRATION TIME
      1. If EXPIRATION TIME was set during enqueue call a message moved to exception
      queue if it isn’t dequeued within timeframe set

      Looking for a direction to get this resolved.

      regards
      Santosh
        • 1. Re: Events not being dequeued from queue
          758358
          Hi,

          I don't know anything about EBS and it's AQ usage but you are correct about multiple subscribers, a message only gets removed when all of the subscribers have processed it.

          I guess my first question (not knowing anything about EBS) is why aren't the other subscriber messages being consumed?

          You could set the expiration time but then you are going to end up with loads of EXPIRED messages in the exception queue which seems pointless.

          Just to confirm, you are seeing some movement to PROCESSED but others are READY (i.e. the same message but different consumer_name)?

          thanks
          Paul
          • 2. Re: Events not being dequeued from queue
            901806
            Nope. All i see are events still waiting in ready state. with the DEQ_TXN_ID indicating value RETRY_EXCEEDED
            • 3. Re: Events not being dequeued from queue
              758358
              So if no messages are being processed and they are all going to retry exceeded then something is going wrong in the DQ process and resulting in a failure to complete the DQ.

              What does these queries give?
              select queue,consumer_name,msg_state,expiration_reason,count(*)
              from aq$<queue_table_name>
              group by queue,consumer_name,msg_state,expiration_reason;
              
              select owner,name,queue_type,max_retries,retry_delay from dba_queues where queue_table = '<QUEUE_TABLE_NAME>';
              Thanks
              Paul
              • 4. Re: Events not being dequeued from queue
                901806
                QUEUE,CONSUMER_NAME,MSG_STATE,EXPIRATION_REASON,COUNT(*)
                WF_BPEL_Q,ORA_6GSJCHA38OP3AE9G7524CDHJ6H,READY,,78
                WF_BPEL_Q,ORA_6GR3CH9G60R34C226OO3GDPL8H,READY,,25
                WF_BPEL_Q,ORA_6H13EEA47124CD1P8L2J8DA26T,READY,,480
                WF_BPEL_Q,ORA_6OO4CH9K6L1J6GPJ750J0CQ56L,READY,,284
                WF_BPEL_Q,ORA_6GR3CH9G60R34C226OOJGDPL8H,READY,,1917



                OWNER,NAME,QUEUE_TYPE,MAX_RETRIES,RETRY_DELAY
                APPS,WF_BPEL_Q,NORMAL_QUEUE,0,0
                APPS,AQ$_WF_BPEL_QTAB_E,EXCEPTION_QUEUE,0,0
                • 5. Re: Events not being dequeued from queue
                  758358
                  Nothing is on the exception queue and EXPIRATION_REASON is null - what is leading you to think these messages are exceeding the retries (which incidentally is zero so no retries)?

                  What process is supposed to be consuming these messages? you may be better off in the EBS forum as there might be something applicaiton specific which is not obvious to me.

                  All I am seeing is a Q with many READY (i.e. unprocessed | waiting to be processed) messages.

                  Thanks
                  Paul
                  • 6. Re: Events not being dequeued from queue
                    Martien van den Akker
                    Hi,

                    I don't know if this issue is solved already (question is not marked answered).

                    But I see that the messages seem to have consumer-names that seem to be generated. Apparently there are no consuming processes that consume the messages with these consumer names. So it might have to do with how the message producing process creates those messages.
                    If the consumernames reflect some kind of correlation I would suggest to use the CorrelationID property instead.

                    Make sure that you have consuming processes that use these consumer name and make sure that all messages that are produced are consumed.
                    If the table get's filled more and more the queuetable may grow and might decrease your queueing performance.

                    Regards,
                    Martien