Retry counts on multi consumer queues in Java

Is there a way to get the retry count of a message that has been dequeued from a multiconsumer queue? I believe we were able to access the retry count of a message on a single consumer queue, but when dequeuing from a multiconsumer queue, the retry count field is not filled with a value.
Can this be done?

Is there a way to get the retry count of a message that has been dequeued from a multiconsumer queue? I believe we were able to access the retry count of a message on a single consumer queue, but when dequeuing from a multiconsumer queue, the retry count field is not filled with a value.
Can this be done?

Similar Messages

  • How to send message to a multi-consumer queue using pl/sql

    How to send message to a multi-consumer queue using pl/sql ? Thanks.
    I tried following, but got an message: no receipient specified.
    DBMS_AQ.ENQUEUE(
    queue_name => 'aqadm.multi_queue',
    enqueue_options => queue_options,
    message_properties => message_properties,
    payload => my_message,
    msgid => message_id);
    COMMIT;
    END;
    /

    Here's two way to enqueue/publish new message into multi-consumer queue.
    (1) Use explicitly declared recipient list
    - Specify "Recipients" by setting recipient_list to messge_properties, before ENQUEUE().
    DECLARE
    recipients DBMS_AQ.aq$_recipient_list_t;
    BEGIN
    recipients(1) := sys.aq$_agent('RECIPIENTNAME',NULL,NULL);
    message_properties.recipient_list := recipients ;
    (2)Or, declare subscriber list permanently. Then you need not to specify recipient list each time you call ENQUEUE().
    begin
    dbms_aqadm.add_subscriber(
    queue_name=>'YOURQUEUE',
    subscriber=> sys.aq$_agent('RECIPIENTNAME', null, null)
    end;
    You can add 1024 local subscriber include maximum 32 remote-queue-consumer to one queue.

  • PL/SQL Callback registered on multi consumer queue takes 6 seconds to call

    Registered a PL/SQL callback procedure on multi consumer Queue. if I enqueue message into queue, it takes 6 seconds to call PL/SQL callback procedure.
    Why does it takes 6 seconds ?
    I believe Queue submits DBMS Job to execute the Callback. I am not sure why it is taking 6 seconds to execute the callback.
    are there any configarable parameters to set which allows callbacks to be executed more frequently?

    You can try to change jobqueue_interval=1      
    This is a scan rate interval (seconds) of job queue parameter.
    it is 5 sec by default.
    Regards,
    Sergey

  • Dequeue from multi consumer queue table

    Hi,
    Even after all consumers I created have dequeued the messages (in REMOVE mode), they just didn't go from the queue table. Although my application works fine (the messages could no longer be dequeued again), I am afraid this will affect performance when messages piled up in Q table.
    I tried maunally delete the records in Q table. But the question is "is there an automatic way to handle this?"
    Thx for any feedback!

    Make sure that the init.ora parameter AQ_TM_PROCESSES is set to 1 or more. This is the parameter that controls the number of processes available to clean up the queue after the messages have been dequeued or the message has expired.

  • Dequeue from multi consumer queue without consumer_name

    Are there any way to efficient emptying a multiconsumer queue where mesages by sender are taged with consumer_name, and there are multiple consumers?

    Christian,
    I have the same question. Have you got any answer or found out any good solution?
    Thx!

  • Multi-consumer queue table does not empty

    Hello,
    I must be missing something pretty trivial here but I have setup queue with a queue table where multiple_consumers = true. When I dequeue a message from the queue it is received, but the message is still left in the queue table. When I do a second dequeue I get a end-of-fetch error.
    Currently, there is only one subscriber and the subscriber is specified as the recipient of the message.
    How do I get the messages removed from the queue table?
    DECLARE
        queue_options       DBMS_AQ.ENQUEUE_OPTIONS_T;
        message_properties  DBMS_AQ.MESSAGE_PROPERTIES_T;
        recipients          DBMS_AQ.AQ$_RECIPIENT_LIST_T;
        message_id          RAW(16);
        my_message          MYRESP_T;
    BEGIN
        recipients(1) := sys.aq$_agent('MY_SUBSCRIBER',null,null);
        message_properties.recipient_list := recipients;
        my_message := MYRESP_T('99293','ORCL','TEST');
        DBMS_AQ.ENQUEUE(
            queue_name => 'RESP_Q',
            enqueue_options => queue_options,
            message_properties => message_properties,
            payload => my_message,
            msgid => message_id);
        COMMIT;
    END;
    DECLARE
            r_dequeue_options    DBMS_AQ.DEQUEUE_OPTIONS_T;
            r_message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
            v_message_handle     RAW(16);
            o_payload                 MYRESP_T;
            v_dynamic_sql           VARCHAR2(4000);
            BEGIN
                r_dequeue_options.wait := DBMS_AQ.NO_WAIT;
                r_dequeue_options.dequeue_mode := DBMS_AQ.REMOVE;
                r_dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE;
                r_dequeue_options.consumer_name := 'MY_SUBSCRIBER';
                DBMS_AQ.DEQUEUE(
                    queue_name         => 'RESP_Q',
                    dequeue_options    => r_dequeue_options,
                    message_properties => r_message_properties,
                    payload            => o_payload,
                    msgid              => v_message_handle
              commit;
            END;Thanks in advance

    Presumably the message gets left on the Q with a state of PROCESSED? If so then that suggests you have aq_tm_processes explicitly set to 0 (zero) in your spfile/pfile - these background processes clear messages which have been PROCESSED.
    If this is not the case can you post the state of the messages and some more information like version and AQ related parameters?
    Thanks
    Paul

  • Muti Consumer Queue creation

    Hi everyone,
    While creating multi consumer queue, I have encountered with below error:
    SQL> Begin
    2 DBMS_AQADM.Create_Queue_Table(Queue_Table => 'qtbl_NearTime',
    3 Queue_Payload_Type => 'NearTime',
    4 Sort_List => Null,
    5 Multiple_Consumers => True,
    6 Storage_Clause => 'TABLESPACE USERS');
    7 end;
    8 /
    Begin
    DBMS_AQADM.Create_Queue_Table(Queue_Table => 'qtbl_NearTime',
    Queue_Payload_Type => 'NearTime',
    Sort_List => Null,
    Multiple_Consumers => True,
    Storage_Clause => 'TABLESPACE USERS');
    end;
    ORA-08103: object no longer exists
    ORA-06512: at "SYS.DBMS_AQADM_SYS", line 2224
    ORA-06512: at "SYS.DBMS_AQADM", line 58
    ORA-06512: at line 2
    I am working with Oracle 9i. Please advice.
    Many thanks in advance.
    Prabha

    You'll have better-er luck in the AQ forum.
    Advanced Queueing

  • JMS-130 JMS queue cannot be multi-consumer enabled

    error:
    queue = ((AQjmsSession)t_sess).getQueue("tmp", "tmp_queue");
    pl/sql code:
    BEGIN
    DBMS_STREAMS_ADM.SET_UP_QUEUE(
    queue_table => 'tmp_queue_table',
    queue_name => 'tmp_queue');
    END;
    BEGIN
    SYS.DBMS_AQADM.CREATE_AQ_AGENT(
    agent_name => 'explicit_dq');
    END;
    BEGIN
    DBMS_AQADM.ENABLE_DB_ACCESS(
    agent_name => 'explicit_dq',
    db_username => 'tmp');
    END;
    DECLARE
    subscriber SYS.AQ$_AGENT;
    BEGIN
    subscriber := SYS.AQ$_AGENT('explicit_dq', NULL, NULL);
    SYS.DBMS_AQADM.ADD_SUBSCRIBER(
    queue_name => tmp.tmp_queue',
    subscriber => subscriber);
    END;
    I search in forums, google but i can not find solution. Any idea?
    regards

    Bill,
    I could be mistaken, but as far as I know, you can only access JMS queues from java. In other words, "queue_payload_type" needs to be: SYS.AQ$_JMS_OBJECT_MESSAGE
    Good Luck,
    Avi.

  • Message Retry Count Zero error

    Hi,
    I am sending a Message from one Trading partner to another over ebMS protocol .
    The trading partners are using Weblogic JMS queues as the internal delivery channels.
    when one trading partner is sending message to another, the mesage comes to the receving trading partner with error as "Max retry count for Message is zero".
    I have reffered to one of the thread (Re: FTP retry issue) which says "Can you please update the Retry count and time to acknowledge in the<br />Delivery channel page and update the polling interval in the transport<br />server page as empty? I think the Polling interval value overrides the<br />retry count."
    I have followed this and I am getting a Transport Error.
    Please Help!
    With Thanks & Regards,
    Suhas.

    Hi,
    This is the idc log:
    2008.11.04 at 10:14:52:614: B2BStarter thread: (DEBUG) TransportProperties.TransportProperties():transport_callout_waittime=30;http.receiver.registry_port=5110;port=60700;smtp.receiver.protocol=imap;PROTOCOL_ENDPOINT=null;http.receiver.instance_name=IP;
    2008.11.04 at 10:14:52:615: B2BStarter thread: (DEBUG) initialize TransportReceiver: [BTGS_ebMS_Transport_Server < http > < BTGS >]
    2008.11.04 at 10:14:52:617: B2BStarter thread: (STATUS) [IPT_HttpRecRegisterBegin] HTTPReceiver.init(): Registering HTTP Receiver ...
    2008.11.04 at 10:14:52:618: B2BStarter thread: (STATUS) RMIResponsePort = null
    2008.11.04 at 10:14:53:020: B2BStarter thread: (STATUS) low port = 5110
    2008.11.04 at 10:14:53:022: B2BStarter thread: (STATUS) high port = 5110
    2008.11.04 at 10:14:53:023: B2BStarter thread: (STATUS) [IPT_HttpRecRegisterCompleted] HTTPReceiver.init(): Completed registering HTTP Receiver.
    2008.11.04 at 10:14:55:987: RMI TCP Connection(13)-147.149.200.108: (STATUS) [IPT_HttpRecSendMessageViaCallback] A request is routed by HTTP Receiver to registered listener.
    2008.11.04 at 10:14:58:018: Thread-14: (DEBUG) TransportProperties.TransportProperties():ACTION_NAME=ACTION:rqRequestTroubleReportAmendment;FROMROLE:Consumer;TOROLE:Provider;SERVICE:bcRequestTroubleReportConsumerAmendment_BT_V1;SERVICETYPE:string;;jms.sender.jndi_destination_provider_properties=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://147.149.200.111:53482,147.149.200.111:53484;MSG_TYPE=1;MSG_ID=9395C86B11D66FF77B500000E555D000-1;TO_PARTY_IDENTIFIER=urn:oasis:names:tc:ebXML-cppa:partyid-type:duns#123456789;FROM_PARTY_IDENTIFIER=urn:oasis:names:tc:ebXML-cppa:partyid-type:duns#987654321;jms.sender.jndi_connection_factory_location=weblogic.jws.jms.QueueConnectionFactory;jms.sender.destination_password=******;jms.sender.factory_provider_properties=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://147.149.200.111:53482,147.149.200.111:53484;jms.sender.jndi_destination_location=btgsb2b.distjms.WLI_to_CI_BPS_Cluster_1;jms.sender.is_topic=false;jms.sender.type=bytes;DOCTYPE_NAME=rqRequestTroubleReportAmendment_DocType;FROM_PARTY=BTW;DOCTYPE_REVISION=1.0;TO_PARTY=BTGS;jms.sender.destination_username=weblogic;
    2008.11.04 at 10:14:58:020: Thread-14: (DEBUG) Establishing JMS Connection.
    2008.11.04 at 10:14:58:431: Thread-14: (DEBUG) TransportProperties.TransportProperties():
    2008.11.04 at 10:14:58:433: Thread-14: (DEBUG) TransportProperties.TransportProperties():http.sender.port=80;http.sender.proto=http;http.sender.host=punin1879164268.sid.bt.com;http.sender.path=/b2b/transportServlet;
    2008.11.04 at 10:14:58:434: Thread-14: (DEBUG) Discard Existing Cookies for CurrentThreadContext = Thread[Thread-14,5,main]
    2008.11.04 at 10:14:58:435: Thread-14: (DEBUG) Timeout = 60000
    2008.11.04 at 10:14:58:436: Thread-14: (DEBUG) Basic authentication is not used due to one of security parameters not set. Make sure username, password, and realm are set in delivery channel.
    2008.11.04 at 10:14:58:437: Thread-14: (DEBUG) http.sync = null
    2008.11.04 at 10:14:58:438: Thread-14: (DEBUG) Number of headers to be added is 7
    2008.11.04 at 10:14:58:932: Thread-14: (DEBUG) [IPT_HttpSendResponseStatusCode] HTTP Response status code: 204
    2008.11.04 at 10:14:58:934: Thread-14: (DEBUG) [IPT_HttpSendResponseMessage] HTTP Response message: .
    Regards,
    Suhas.

  • Retry count & interval problem

    I am Using OSB R4 where My Scenario is i need to place the payloads in to the JMS Queue, and route them to the Endpoint URI webservice if the service is unavailable i need to sent the notification mail and rollback the payload back in to the Queue. My problem is i receiving hundreds of notification mail when the service is down instead of one. I configured the retry count to 1 and retry interval as 15 mins for the business service URI and implemented single thread consumer in work manager. Please help me in this.....

    I am Using OSB R4 where My Scenario is i need to place the payloads in to the JMS Queue, and route them to the Endpoint URI webservice if the service is unavailable i need to sent the notification mail and rollback the payload back in to >the Queue. My problem is i receiving hundreds of notification mail when the service is down instead of one.This is a classic case for using OSB SLA alerting instead of doing it in the message pipeline. Configure a sla alert set to trigger when there are 1 or more route errors in an aggrevation interal of 30 mins and set an email alert destination. This will make sure you will get only 1 mail for all errors in that period of 30 minutes.

  • Validation error on retry count for session bean

    Hi,
    In our weblogic-ejb-jar.xml we have configured a retry count for a specific method on a local session bean. When I click on 'Browse' to select a specific method, it only shows '*' as a possible value. When we type the method name by hand, it shows a red cross next to the input field with the error 'Cannot find method "exampleMethod()" in the ExampleBean's Local interfaces'.
    We use EJB 3.0 and OEPE 12.1.1.0.1 with Eclipse 3.7.2
    The weblogic-ejb-jar.xml looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-ejb-jar xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.2/weblogic-ejb-jar.xsd">
        <retry-methods-on-rollback>
         <retry-count>3</retry-count>          
            <method>
                <ejb-name>ExampleBean</ejb-name>
                <method-intf>Local</method-intf>
                <method-name>exampleMethod</method-name>
           </method>
        </retry-methods-on-rollback>
    </weblogic-ejb-jar>The bean looks like this:
    @Stateless(mappedName = MappedName.DONNA)
    @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
    public class ExampleBean implements Example {
    }And the interface:
    @Local
    public interface Example {
    }Does anyone else have this problem?
    Thanks.
    Pieter

    Hi Pieter,
    This is a known issue and I will keep you posted on the development.
    Thanks for your feedback!
    -Ram

  • PLSQL Notification on a multi-subscriber queue with sys.aq$_jms_text_messag

    Hi all,
    I am trying to get PLSQL notification working on a multi subscriber queue with sys.aq$jms_text_message as the payload type. The commands to create my queue are as follows:
    dbms_aqadm.create_queue_table(
    queue_table => 'SOA_JMS.RJMTESTxx_QTAB',
    multiple_consumers => true,
    queue_payload_type => 'sys.aq$_jms_text_message'
    dbms_aqadm.create_queue(
    queue_name=>'RJMTESTQ',
    queue_table => 'SOA_JMS.RJMTESTxx_QTAB',
    retention_time => 86400, --Keep processed messages for 24 hours
    max_retries => 3,
    retry_delay => 1
    dbms_aqadm.start_queue('RJMTESTQ');
    dbms_aqadm.add_subscriber(
    queue_name => 'SOA_JMS.RJMTESTQ',
    subscriber => sys.aq$_agent('SUBSCRIP1',null,0),
    rule => NULL,
    transformation => NULL,
    queue_to_queue => FALSE,
    delivery_mode => dbms_aqadm.persistent
    I then create a procedure with the following signature:
    create or replace procedure SOA_JMS.EXCEPTION_QUEUE_NOFIFYCB_1(
    p_context in raw,
    p_reginfo in sys.aq$_reg_info,
    p_descr in sys.aq$_descriptor,
    p_payload in raw,
    p_payloadl in number
    And register it as follows:
    reginfo := sys.aq$_reg_info(
    'SOA_JMS.RJMTESTQ:SUBSCRIP1',
    DBMS_AQ.NAMESPACE_AQ,
    'plsql://SOA_JMS.EXCEPTION_QUEUE_NOFIFYCB_1?PR=0',
    --utl_raw.cast_to_raw('STANDARDJMS')
    HEXTORAW('FF')
    reg_list := sys.aq$_reg_info_list(reginfo);
    dbms_aq.register(reg_list,1);
    The problem is the notifications are not firing as they should be.
    I have done some tracing and found an error:
    Error in PLSQL notification of msgid:BA964334E5A057A4E040C69BAF397075
    Queue :"SOA_JMS"."RJMTESTQ"
    Consumer Name :SUBSCRIP1
    PLSQL function :SOA_JMS.EXCEPTION_QUEUE_NOFIFYCB_1
    : Exception Occured, Error msg:
    ORA-00604: error occurred at recursive SQL level 2
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'EXCEPTION_QUEUE_NOFIFYCB_1'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    This says that the parameters I have for my procedure is wrong. Looking through the documents I think it is something to do with the ?PR=0 used in the register call, but I can’t find any documentation telling me what the required parameters are.
    Does anyone here know?
    Thanks
    Robert

    Hi,
    I have found the solution and I am posting here in case it helps anyone else.
    The paramater names must match the callback not just the types and in/out.
    So the following works:
    create or replace procedure SOA_JMS.EXCEPTION_QUEUE_NOFIFYCB_2(
    context in raw,
    reginfo in sys.aq$_reg_info,
    descr in sys.aq$_descriptor,
    payload in raw,
    payloadl in number
    Robert

  • HELP ! Making a retry counter

    I'm making a retry counter for the logins and I'm using the j_security_check from Tomcat.
    I made a little class that must check if there is a session object.
    if not create one and put the value 1 in it, for the first try.
    If there is a session object, increase the value and put it in the session object.
    Now is my problem that I get a nullpointer exception and I don't know how to fix it.
    This is the code:
    package beans;
    import java.io.Serializable;
    import javax.servlet.http.*;
    import  javax.servlet.jsp.PageContext;
    * @author Sander Stad
    public class LoginCountBean implements Serializable{
         private int count;
         private String loginTries = null;
         private Integer logins;
         HttpSession session;
         HttpServletRequest request;
         PageContext pageContext;
         public LoginCountBean(){
              count = 1;
         public boolean checkSessieObject(){
              boolean retry = true;
              loginTries = (String) pageContext.findAttribute("logins");
              if(loginTries == null){
                   count = 1;
                   logins = new Integer(count);
                   setSessieObject(logins);
              } else{
                   count = Integer.parseInt((String) pageContext.findAttribute("logins"));
                   if(count >= 3){
                        retry = false;
                   } else{
                        count++;
                        logins = new Integer(count);
                        pageContext.setAttribute("logins", logins, PageContext.SESSION_SCOPE);
              return retry;
         public void setSessieObject(Integer logins){
              request.getSession();
              pageContext.setAttribute("logins", logins, PageContext.SESSION_SCOPE);
    }

    How does the bean get the request and pageContext objects?

  • Retry count JMS message on Proxy Service

    I have a proxy service listening to a JMS Queue.
    It is a task service. I need to try some functionality. If an error occurs (probably because of an offline external service/ business service) I need to rollback and retry). I want to do this for example 5 times. If this fails I want to send it to an error queue
    I see the JMSXDeliveryCount going up. I though I could set this with the retry count field. But I see now it is for the response queue.
    The only way I can solve it is to put an error handler and look at the JMSXDeliveryCount . If it is above the number of retries I stop reraising.
    Is there another way?

    If you choose the service type as WSDL based or Any SOAP service, then OSB engine will deconstruct the incoming SOAP Envelope and populate the parts of envelope (Header, Body etc) to correct context variables automatically. This happens before the message flow of proxy service is initiated, so you can not do anything about it. In the proxy service you will receive the deconstructed SOAP message only.
    If you do however want to log the exact message which was received by OSB, then change the service type to (or create another proxy service in front of the existing proxy) Messaging type with binary or text content. Or you can also choose AnyXML service type, in which case the incoming SOAP Envelope will be available inside $body variable in message flow.

  • Process transaction retry count retry delay ERROR

    Hi
    I've an asynchronous process (listening to a channel). The subscription is synchronous (but i also try it whit an asynchronous subscription).
    The matter is:
    I've a transaction in the process so i can set the retry count to 23 and the retry delay to 3600 sec.
    But when i test it i've got a "dramatic" problem. It only retries 6 times and the time between each retry is zero, it automatically retries.
    i don`t know what can i do ... some help ?
    zanks in advance
    Taja

    Hi again
    the problem is solved.
    Recently we have migrated de DB to a new machine. We exported ALL, data, tables, everithing.
    All we do to solve the problem is delete the distributed async queues and create them again.
    Redeploy and woala ...
    it works again, 23 retries with an interval of 3600 sec
    i hope this will be useful for someone.
    regards
    Taja

Maybe you are looking for

  • Balance Sheet Report in OBIA 7.9.6

    Hi, We are using OBIA 7.9.6 and exceuted the finance execution plan.It Ran sucessfully. When we open balancesheet report there's no data.After we checked in session log and found the below query select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3, D1.c4 as

  • Need help centering DIV in CSS

    Hi- I had a "coming to jesus" last night regarding my website.  I've been out of the professional web design world for about 7 years.  I'm getting back in it.  I used to design in tables and after some reading, I know I need to design in DIV.  My pro

  • InDesign is working extremely slow in one certain document – any suggestions how to solve this?

    I just updated and tested the performance in both C6, CC and CC2014, and also tried deleting the SavedData file before starting InDesign, but the performance is still very slow (10-30 seconds between every move I make). It seems that the problem is o

  • Problems linking to registered domain

    I have used the Associate Domain Form to link our registered domain name: "www.totneseuropeanschool.com" (registered with Go Daddy) to the Business Catalyst Site. However, typing in the URL www.totneseutopeanschool.com does not bring up our the websi

  • Equal Join and Outer Join in OBIEE

    Hello expert, I think the default join in OBIEE is Outer Join. So no matter what join conditions that I specify on the physical layer, the result that I get in the presentation layer is still outer join. How to specify the equal join or inner join in