Consuming queue from multiple processes

We have a program designed to consume a queue with consumer name set to "consumer". Here's how it dequeues messages:
dequeue_options.consumer_name := 'Consumer';
dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE;
dequeue_options.WAIT := 10;
DBMS_AQ.DEQUEUE(queue_name => 'ourschema.our_que',
dequeue_options => dequeue_options,
message_properties => message_properties,
payload => message,
msgid => message_handle);
If we run one instance of this program this dequeue operation above uses 10 CPU seconds over the duration of our load test. If we run two instances of the program (which consumes the same queue as the same consumer) then the dequeue operation above uses 160 CPU seconds. We need the second instance to remove a single point of failure but the 16 fold increase in load on our database is not acceptable for a dequeue operation.
Why is it so expensive to have two processes dequeuing from our_queue using the same consumer name?
thanks
Dale

We managed to solve the problem.
We had initiated a transaction to bracket the dequeue and a subsequent insert. Removing the transaction seems to have removed the performance hit from the second process.

Similar Messages

  • How can a JMS adapter be configured in BPEL to consume messages from multiple queues ?

    How can a JMS adapter be configured in BPEL to consume messages from multiple queues ?

    If you want to use JMS with AQ as datastore then there is some configuration you need to do to enable this. This is outside SOA Suite per sa, e.g. no adapter required.
    If you want to connect to the AQ direct then use the AQ adapter.
    this blog may be of some help understand the configuration
    http://biemond.blogspot.com/2008/01/oracle-jms-with-esb-and-bpel.html
    cheers
    James

  • Wait on Queue from multiple

    There is a Wait on Notifier from multiple vi, can I do the same with Queue?  Any way to work around that?

    Dohhh!  You're right.
    I was just looking through the synchronization palletes the other day because I was thinking of a notification to be a part of a communication scheme I was fleshing out.  I skimmed through the wait on Multiple, must not have read it correctly, or just didn't remember it correctly.  The title of it makes me think of the way I had just written it up.  If I say "I'm waiting on 5 people" in normal English, that means I'm waiting for 5 people to each give me their information before I can move on.  So when I read of the Wait on Notification Multiple, that is the way I think of it.  In reality, the definintion is more like "I'm waiting on ANY of 5 people" so if any of those 5 give me their information, I can move on.
    Thanks for straightening me out.
    I can't think of what would be the ideal scenario for using that particular VI.  I think my most common use cases would be to use either a Queue (for a many to one, multiple data) or a Notifier (in one to one, many to one, one to many, or many to many scenario, single piece of data with those possible combinations in order from most likely to use, to very unlikely to use)

  • Log messages from multiple instances in single file.

    Hi!
    I have a requirement that i need to log messages from muliple instances of the same object in a file. The new file will be created every day. Likewise, multiple objects might have various instances each.
    One class
    ->multiple instances
    -> log message stored in single file.
    Note :
    I am using the Message driven bean. I need to log from the bean class. JDK 1.3
    If u could help me out that would be great.

    As long as they are all from the same OS program (a single Java VM), that's OK - you can use Log4j, and use a rotating file logger.
    If you point two different virtual machine processes at the same file, one may have it open when the other is trying to rotate it, and your rotation may fail (at best) and/or you may lose the old log (the worst case).
    If you need to collect log messages from multiple processes (or even multiple machines), use a syslog-based logger (Log4j has a SyslogAppender) or use Log4j's SocketAppender to write to a log4j-builtin log listener (SocketNode).

  • Completing Task from other process

    Hi,
       I need to complete a Task assigned to User queue from other process. For example,
        I have a Workflow A which creates task and assigns it to user "xyz", this task can be completed in two ways,
           1) User xyz logs on to workspace and completes the task, normal straight forward way.
           2) A scanned document (.pdf) is copied to Watched Folder which kicks of another Workflow B, now this workflow B needs to complete the
            task which is currently assigned to user "xyz".  Any idea how?
       I need your help/advice on option 2.
    Thanks,
    Vik

    There are many Administrator roles available ; e.g Process Administrator/Forms Administrator etc.
    But did you try with Super Administrator account?
    If still not working, as a quick solution you can claim the task to your account and complete the Task.
    Please note that this will be recorded and your account name will appear on tracking.
    Nith

  • Any Tutorial / Sample to create Single PDF from multiple source files using PDF assembler in a watched folder process.

    Any Tutorial / Sample to create Single PDF from multiple source files using PDF assembler in a watched folder process. I have a client application which will prepare number of source files and some meta data information (in .XML) which will be used in header/footer. Is it possible to put a run time generated DDX file in the watch folder and use it in Process. If possible how can I pass the file names in the DDX. Any sample Process will be very helpful.

    If possible, make use of Assembler API in your client application instead of doing this using watched folder. Here are the Assembler samples :  LiveCycle ES2.5 * Programming with LiveCycle ES2.5
    Watched folder can accept zip files (sample : Configuring a watched folder to handle multiple input files and write results to a single folder | Adobe LiveCycle Blog ). You can also use execute script to create the DDX at runtime : LiveCycle ES2 * Application Development Using LiveCycle Workbench ES2
    Thanks
    Wasil

  • How to pick(or consume) messages from Woblogic JMS Queue only when DB is UP

    Hi,
    I have a requirement to pick(or consume) messages from Woblogic JMS Queue only when DB is UP.
    When DB is down, messages should remain in queue. When DB is up, messaged should be picked on scheduler basis.
    We are using SOA suite 11g(BPEL or mediator,JMS Adapter).
    What is the best way to achive it in SOA 11g.
    I tried, but when I setup a Consumer, there is no control over there. Messages are picked automatically.
    Please advise.
    Thanks
    Ram

    something wrong with the design.
    why dont you set the retry options in the fault policies?
    So if the external DB is down you could reprocess them after specified interval or make it go to human retry queue.
    Then you could use SOA api to retry all of them.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Process to get info from Multiple textboxes and check boxes on a page

    Hi,
    Could you help me with setting up a process which selects the data from multiple textboxes and checkboxes on a page and should be pointing to a single table in the database.
    Thanks in advance,
    Verity.

    Thanks Peter for the reply,
    Actually the problem is, there are lot of check boxes. And process should be like when a user clicks on, say 7 out of 10 checkboxes, only those values needs to be inserted in a table in database. Actually my "insert all" statement is inserting 7 values and also the other three values as null. I tried insert with 'when' and 'if' but didnt get through. my sample insert statement is as follows. Could you help me here.
    DECLARE
    BEGIN
    insert all
    when (:P1_POT='PT') then
    into TABLENAME
    (oid,year, code)
    values
    (:F1_ID, :F1_YEAR, :P1_HR)
    when (:P1_HOL='SC')
    then into TABLENAME
    (OID, year,code)
    values
    (:F1_ID, :F1_YEAR, :P1_SD)
    select oid,year,code from TABLENAME;
    END;

  • Internal Error ORA-0600 when creating multiple consumer queue table

    Hi,
    I tried to create a multiple consumer queue table with the following statements:
    exec DBMS_AQADM.GRANT_TYPE_ACCESS ('system');
    create type Change_History_Trigger_Data as object(Col1 VARCHAR2(255), Col2 VARCHAR2(128), Col3 VARCHAR2(255), Col4 TIMESTAMP, Col5 VARCHAR2(64), Col6 VARCHAR2(64), Col7 NUMBER(8));
    Works fine till this stage. But the following statement produces an ORA-0600 internal error message.
    EXEC DBMS_AQADM.CREATE_QUEUE_TABLE ('change_history_queue_tbl','Change_History_Trigger_Data', 'tablespace my_tblspace','ENQ_TIME',TRUE,DBMS_AQADM.TRANSACTIONAL);
    ERROR at line 1:
    ORA-00600: internal error code, arguments: [kcbgtcr_4], [14392], [0], [1], [], [], [], []
    ORA-06512: at "SYS.DBMS_AQADM_SYS", line 2224
    ORA-06512: at "SYS.DBMS_AQADM", line 58
    ORA-06512: at line 1
    I tried creating the same queue table with Multiple consumer = FALSE, and it works fine. But not with multiple consumer = TRUE
    I'm running on Oracle9i Enterprise Edition Release 9.2.0.6.0
    Any possible solutions?

    Problem solved.
    The queue name was too long. Found a post with the same problem.
    Re: Create Queue Table ORA-00600 while dbms_aqadm.create_queue_table
    thanks anyway

  • Issue listeneing queue from Weblogic Cluster server with multiple managed server

    Haveing issue listeneing queue from Weblogic Cluster server with multiple managed server.
    Weblogic Cluster structure is like
    Weblogic Cluster01
      --ManagedServer01(http://server01.myhost.com:7001)
      --ManagedServer02(http://server02.myhost.com:7001)
    JMS Servers
      JMSserver01 targeting: ManagedServer01
      JMSserver02 targeting: ManagedServer02
      JMSmodule
      ConnectionFactory01 targeting:JMSserver01,JMSserver02
      UDQueue01 targeting:JMSserver01,JMSserver02
    Uniform Distributed Queue in Monitoring tab showing like this
      mysystemmodule!JMSserver01@UDQueue01
      mysystemmodule!JMSserver02@UDQueue01
    So when I am sending message to any Host(by specifying the provider URL) its distributing equally on both server like
      mysystemmodule!JMSserver01@UDQueue01 10
      mysystemmodule!JMSserver02@UDQueue01 10
    But when try to listen message from these queue, it is listening from one server, for which URL given to connect.
      mysystemmodule!JMSserver01@UDQueue01 0
      mysystemmodule!JMSserver02@UDQueue01 10
    untill I connect to other server by giveing its URL, will not able to access other message left on the queue.
    Solutions that tried
      1) we have tried give both server URL coma sparated in provider URL
    we need to configur same scenario for 5 managed server with 3 listener on other servers.
    Do any one have solution for this.

    You need to have:
    1. Consumers connected to each UDQ member
    OR
    2. If no consumers in some of the members is expected, you can configure Forward Delay (specify the amount of time, in seconds, that a queue member with messages, but with no consumers, will wait before forwarding its messages to other queue members that do have consumers):
    http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13952/taskhelp/jms_modules/distributed_queues/ConfigureUDQGeneral.html
    For example you can set it to 10 (10s)
    Additional Information here:
    http://docs.oracle.com/cd/E23943_01/web.1111/e13727/dds.htm#i1314228
    http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13951/mbeans/DistributedQueueBean.html?skipReload=true#ForwardDelay
    How Does JMS Load Balancing Work with Distributed Queues and Uniform Distributed Queues? (Doc ID 827294.1)
    I hope this helps
    Best Regards
    Luz

  • Deleting Multiple Rows From Multiple Tables As an APEX Process

    Hi There,
    I'm interesting in hearing best practice approaches for deleting multiple rows from multiple tables from a single button click in an APEX application. I'm using 3.0.1.008
    On my APEX page I have a Select list displaying all the Payments made and a user can view individual payments by selecting a Payment from the Select List (individual items are displayed below using Text Field (Disabled, saves state) items with a source of Database Column).
    A Payment is to be deleted by selecting a custom image (Delete Payments Button) displayed in a Vertical Images List on the same page. The Target is set as the same page and I gave the Request a name of DELETEPAY.
    What I tried to implement was creating a Conditional Process On Submit - After Computations and Validations that has a source of a PL/SQL anonymous block as follows:
    BEGIN
    UPDATE tblDebitNotes d
    SET d.Paid = 0
    WHERE 1=1
    AND d.DebitNoteID = :P7_DEBITNOTEID;
    INSERT INTO tblDeletedPayments
    ( PaymentID,
    DebitNoteID,
    Amount,
    Date_A,
    SupplierRef,
    Description
    VALUES
    ( :P7_PAYMENTID,
    :P7_DEBITNOTEID,
    :P7_PAID,
    SYSDATE,
    :P7_SUPPLIERREF,
    :P7_DESCRIPTION
    DELETE FROM tblPayments
    WHERE 1=1
    AND PaymentID = :P7_PAYMENTID;
    END;
    The Condition Type used was Request = Expression 1 where Expression 1 had a value of DELETEPAY
    However this process is not doing anything!! Any insights greatly appreciated.
    Many thanks,
    Gary.

    ...the "button" is using a page level Target,...
    I'm not sure what that means. If the target is specified in the definition of a list item, then clicking on the image will simply redirect to that URL. You must cause the page to be submitted instead, perhaps by making the URL a reference to the javaScript doSubmit function that is part of the standard library shipped with Application Express. Take a look at a Standard Tab on a sample application and see how it submits the page using doSubmit() and emulate that.
    Scott

  • I want to use ODI to read XML messages from JMS queue and then process it..

    I want to use oracle ODI (Oracle Data Integrator) to read XML messages from JMS queue and then process it.. i also want to process and validate the data in it....
    Could anyone please tell me the steps to achieve the same. I tried some ways which i got on OTN, but not able to implement it exactly...
    As i m very new to ODI, it will be great if you provide detailed steps..
    Thanks in advance for your help....

    Hi,
    Were you able to do it? We are facing this same issue now and, despite the fact the docs say otherwise, it does not seem to be a trivial task.
    TIA,
    Tedi

  • Creating job to listen to single consumer queue

    i have code that will allow a job to listen on a queue for a mulitple consumer queue but was wondering how to change it for a single consumer queue. The code i currently have for the multiple conusmer looks like this
         DBMS_SCHEDULER.DEFINE_METADATA_ARGUMENT(
              program_name => 'P_ToDBlocking_Implement'
              ,argument_position => 1
              ,metadata_attribute => 'EVENT_MESSAGE'
         dbms_scheduler.enable('P_ToDBlocking_Implement');
         DBMS_SCHEDULER.CREATE_EVENT_SCHEDULE (
              schedule_name =>      'S_ToDBlocking_Implement'
              ,start_date =>      systimestamp
              ,event_condition => 'corrid=''NOTIFY'''
              ,queue_spec => 'event_msg_q');
    Maybe i am thinking about this wrong how could i get a consumer in a single consumer queue to listen to the queue and process all queue that come in?
    Edited by: user457357 on Sep 12, 2008 12:19 AM

    Why don't you step back, post your full version number, and explain what the business process is. In other words what it is you are trying to achieve.
    When discussing business processes you don't write code. You don't name methodologies. You say things like.
    An end user adds a new row into a table and when that happens I want a job to run .... or something like that.
    Without a context any answer is pure guesswork.

  • Is there a way to control the number of consumed messages from JMS?

    Hi everyone,
    I have a BPEL process that is consumes messages from a foreign queue, performs a transformation, and passes it to Oracle Apps. I'm curious if there is a way to control the number of messages consumed at a time for processing.
    For example, if we place 50 transactions on this queue, I would like to only consume 10. And then as each one is processed and passed to Oracle Apps, I would like to pull another transaction off the queue. So basically I would only be processing 10 at the most.
    The issue I am having is we put 50 on the queue and the 50 are take off right away. But then half are making it into Oracle Apps and the remainder is failing with a JCA Connection Factory max connection error.
    Instead of changing the settings to get more through, I am wondering if it's possible to limit the number being processes at any one time.
    Thanks

    Hi,
    Have a look at the adapter.jms.receive.threads Property for JMS Adapter...
    http://docs.oracle.com/cd/E21764_01/core.1111/e10108/adapters.htm#BABCGCEC
    Cheers,
    Vlad

  • Using ME57 to create an RFQ from multiple lines on multiple PRs

    When using ME57 to create RFQs how can I select multiple line items from multiple purchase requisitions to turn into a single RFQ. If I select multiple lines and then use 'RFQ with Vendor', it only selects one line item.  After further research it appears that you can only create only line at a time (very time consuming). 
    If you use ME41 and create with reference to PR then you can not sort or filter columns to allow for easy consolidation.
    Another forum recommended the following when using ME57 which works but it again adds extra steps to the process.
         The whole process is as follows -
         1) When you are in the 'Assign and Process Purchase Requisition' screen, select related PR and then click on 'Without Vendor' icon to flag all PRs for RFQ processing.
         2) Select these PRs again and click further on 'Assignment Overview' icon (Shift and F5). The next screen will appear - Assign and Process requisitions - Overview of Assignments screen.
         3) Select the 'PReq' column and then click further on 'Process Assignment' icon (F2). The next screen will appear where you have to maintain the 'quotation deadline' information.
         4) Then click on 'Continue' icon (enter).
    [http://www.sapfans.com/forums/viewtopic.php?f=6&t=198768]
    So is there any way to either 1) enable sorting of data in ME41 or 2) use ME57 to create one RFQ from multiple line items of multiple purchase requisitions when selecting 'RFQ with Vendor'.

    What is the JPEG specs? What are the specs of the project you're working in?

Maybe you are looking for

  • Sender agreement & communication channel not needed in case of IDOC adapter

    Hello everyone ,    I am new to xi , as far as i know a communication channel cannot be created in ID when using IDOC adapter , the answer for this question is like , the idoc adapter resides on the integration server & not part of j2ee AF . Can some

  • My external 2TB Western Digital external drive just vanished.

    My external 2TB Western Digital just vanished as well. [I have read many posts very similar to mine in the MacRumors forums and also Western Digital forums. I never installed any WD software when I purchased it , or since, but formatted the drive wit

  • Cannot get a ringtone tab when I sync iphone 3gs with itunes

    In itunes I have a ringtone folder however when I download ringtones from the itunes store they go directly to my music folder. When I try to drag them to my ringtone folder, itunes will not allow me to do this (think its blocked for some reason), th

  • Custom Column header in MDX

    Hi guys, I am trying to fill MDX query result to a datatable. When i fill datatable column header like [Dim Date].[Day].[Day]. I need it Log Date. Is there any way to change column header ? I mean, in TSQL we using select firstName [User] from users

  • CAN'T create or RECOVER Apple ID:

    I tried making a new one with my new e-mail, but I couldn't because it said tehre's already one Apple ID associated with that e-mail, so I tried to recover the password by e-mail, but I don't receive the e-mail. I need help.