Can OSB dequeue AQ automaticlly ?

Hi,
Database 10.2
OSB 10.1.3.1
I would like to automaticlly publish changes from databasae AQ to service in OSB.
Is it possible to do it by creating JCA AQ adapter (deploy it t OSB as business/proxy process)
that could listen/dequeue database AQ and invoke a business/proxy proces on OSB ?
Or any other ideas how to force OSB to dequeue AQ itself ?
Regards,
Cezary

Below link can give you an idea on the same
http://osb-aq-integration-sasi.blogspot.com/2012/03/osb-aq-integration.html

Similar Messages

  • Can OSB XE run on a server other than the database system?

    I have a 2 node 10GR2 Standard Edition RAC using an EMC SAN and ASM. However, I can't attach a tape drive directly to the database servers because they have no available slots for SCSI controllers. Is it possible to use OSB XE installed on a separate system (which would act as the administrative and media server) with a tape drive to back up the RAC database, or does XE only permit backing up a system which contains both the database and the tape drive? (I'm not too concerned with backing up the OS). If so, would the backup contain archive log threads for both RAC nodes?

    OSB-XE may be used for a single-server environment only. You describe 3 hosts in the environment. The only way you could use OSB-XE would be to have one host configured as your admin. server, client and media server and only back data on that server. If you are backing up the database, then OSB-XE must be installed on the database server which also must then be configured as your admin server and media server....it must be direct attached via SCSI to tape drive.

  • Can OSB proxy and business service act as a stub ?

    Hi all,
    would like to enquire whether I can achieve the following. I have a web service consumer. Can the consumer call a OSB proxy service and within the proxy service, I use XQuery and extract the body and perform some transformation. And the proxy service return variables to the consumer? Without calling any business proxy in the process
    Can the proxy service act as a stub? Would I need a dummy business service for it?
    Or my objective cannot be achieved in OSB?
    Appreciate any thoughts.

    Hi,
    Assuming the incoming body contains "name: Peter, age: 13". Can the return information contain "name:Peter, age:13, Status: N"Yes, it's possible too, in your Response XQuery Transformation u can add n number of additional fields, and send back to requester.
    You can do both Translations and Transformations.
    Can I also configure the proxy service not to call any business service?Have you made/generated your proxy service from existing Business Service?
    If yes,: then your message flow would have only Route Node ( routing to Business Service).
    1. To do transformations on request add a Pipeline Pair in message flow and inside it add stage for doing XQuery transformations.
    2. Use Reply Action in stage as last Actions and do reply with Success.( The message flow won't go to Route actions after this ).
    IF No : Then either remove the OSB Action which is being used to call Business Service.
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts).
    Regards,
    Abhinav Gupta
    Edited by: Abhinav on Mar 8, 2013 3:27 PM

  • Can not dequeue JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE using DBMS_AQ

    I'm having a problem using DBMS_AQ package to dequeue a JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE that was put on the queue using Java JMS API.
    Both JMS header and payload return empty but if I do "select user_data" from the queue table, I can see the message.
    Appreciate any helps or tips.
    Kim

    This has been asked a lot of times - I'm not sure how my initial searching missed all of the other questions/answers related to this topic.
    In our case, the solution was to:
    1) Leave the queue as a sys.aq$_jms_text_message type
    2) Construct a sys.xmltype object with our desired payload
    3) Do a getStringVal() on the xmltype object and use that string as the payload for our queue message
    - Nathan

  • OSB (11.1.1.7): Can OSB/Weblogic (11.1.1.7) support multiple PKIs (Public Key Infra-structure)

    Hi All,
    Would you be able to help me in understanding if OSB/Weblogic (11.1.1.7) can support multiple private key's in the domain to enable 2-SSL W/S calls ?
    Solution walk-through :
    A 3rd Party Web Service is only accessible via 2-way SSL http channel. To achieve this, OSB is required to use the private key which is issued by 3rd party. This private key and 3rd party root certificate (CA) need to be installed into OSB’s keystore which is based on Java Keystore format.
    The private key (issued by 3rd Party) will be used by OSB for identity signature. This private key is bound to IP address of the OSB machine calling the 3rd Party web service. Also, 3rd Party root certificate (CA) will be used by OSB to verify the identity of 3rd Party web service.
    Given the private key is used as the identity of the system and should be guarded closely by the target system, we believe this approach needs to be reviewed and assessed accordingly.
    Limitations and drawbacks with the current solution :  
    1. The private key of OSB system is issued and controlled by an external application vendor.
    2. OSB is enforced to use this private key and its signature algorithm for other external parties’ interactions. The current client certificate issued by 3rd Party is X509v3 certificate which uses RSA, with a 2048-bit key size, signed with a SHA-512 hash.
    3. The SSL is self-signed, not signed by a publicly trusted cert provider (i.e. VeriSign)
    4. Extra dependency on external vendor systems as the key provider. Currently, the keys are bound to server IP address; any changes to the production environment, (i.e. adding new nodes) will require a new key to be generated by 3rd Party system. In case 3rd Party is no more used in the future, the keys can no longer be generated.
    Conclusion : OSB does not support multiple PKIs (Public Key Infra-structure) which is a mapping mechanism that OSB uses to provide its certificate for SSL connecitons to the server. Multiple private keys, require multiple PKIs which OSB does not handle.
    So, do you agree that OSB/Welblofic (11.1.1.7) could not support multiple private key issued by more than one 3rd party vendor ?
    Thanks,
    Kunal Singh

    Hi Kunal,
    Although it is recommended to have 1 key pair for 1 identity store as it represents unique identity of your domain but you can:
    import multiple key-pairs in your identity store
    Configure PKI credential mapper to use reference of identity store consisting of multiple keys
    When in your OSB project, you create Service Key provider(SKP) then it loads all the private keys present in identity store referred by PKI mapper. It will browse both the keys.
    Depending on your requirement, you can choose different key pair for for different SKPs for "Client Authentication key" section(For SSL) and "Signature key" for DigiSign.
    Please let me know if i understood your query correctly and above helps.
    Regards,
    Ankit

  • How can I Dequeue a Single Message

    Is it possible to use BPEL to dequeue just a SINGLE message from an MQ - as an activity in a process flow?
    It seems that the "Receive" activity drains a queue, and is meant to be used at the beginning of a BPEL process (to kick off a new instance). I'm just trying to dequeue a single message from a specified queue, and access its payload.
    Please let me know if this is possible.
    Thanks very much.

    Consider a scenario where there exists an MQ that contains messages that represent a unit of work. This MQ is populated with messages from an external C++ process that generates these units of work.
    I would like to create a BPEL service that can be invoked by a user as a web service. As a part of that process, I would like to dequeue one message (one unit of work from this MQ), to assign to the user. Portions of this message would be mapped to XML elements in the service response.
    As a whole, the BPEL process is responsible for performing several other activities (logging work assignment in the database for future reporting, sending email confirmations to the requesting user, etc.). I really appreciate what BPEL offers in terms of the overall orchestration of this process - but I'm wondering if this inability to dequeue a single message is a limitation of the adapters that are offered, or a misunderstanding on my part.
    I'm sure I could achieve the same result by embedding some Java code in the process, that would connect to this MQ and dequeue a single message - but would prefer to use an adapter (if possible).
    Thanks for the help!

  • Can osb change the tape automatically ?

    My tape driver is HP MSL6030, only one driver, and six data tapes and one clean tape in the driver, Can the osb change the tapes automatically? I mean , I make a schedule, then at the schedule time, the driver automount the tape, when the writting finished, the driver can change the tape by itself?

    I'm not familiar with this unit, but the MS6030 is supported by OSB, so yes, the tapes will be changed automatically.
    Your schedules will be associated with particular media families (via the triggers) and OSB will automatically select media from the appropriate family to perform the backup.

  • Can OSB use ws-security with Basic 256 Sha256 algorithm

    I'm trying to config OSB with WS-Security for an organisation that wants to use the Basic256 and Sha256 algorithm suite. I can't find a document that describes all the available algorithms supported by WebLogic/OSB and haven't seen this one mentioned anywhere. The "closest" the documentation refers to is Basic256 Rsa15.
    Any help much appreciated.

    Hi Birgit -
    Sorry to follow up on this so late, but I'm now hitting the exact same error that you got 4 years ago!  Did you ever work past this message?  Would you be willing to provide any hints?
    Thanks so much for your help!
    Abby

  • Can OSB schema validate via a catalog?

    I have an OSB 11.1.4 question regarding XML schema validation.
    I've created an XML Schema model for dealing with Party Relationships that, in a nutshell involves a schema that is considered Core and is generic (covers the core to/from links between two Parties, and the role names in the relationship for the parties and has an optional abstract content component to allow for relationship type specific content).  This allows business domain specific specialisations of the "relationship specific content" which live in their own schema and import the generic schema.  In other words specific relationship types import the Core relationship schema.
    Now in an XML editor such as XMLSpy or Oxygen if I want to create an document with say relationships from two business domains I'd specify the schema location of these specialisations in the document declaration as follows:
    <relationshipList xmlns="urn:ird.govt.nz:ebo:party.relationship.Core"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:ird.govt.nz:ebo:party.relationship.ChildSupport file:/.../ebo/party.relationship.ChildSupport_1.0.xsd
                                        urn:ird.govt.nz:ebo:party.relationship.TaxAgent file:/.../ebo/party.relationship.TaxAgent_1.0.xsd">
        <relationship>
            ... etc
    The idea in the above is that relationshipList exists in the Core schema and specialisations can extend parts o fit in a flexible way.
    This all works nicely in XMLSpy or Oxygen but of course OSB ignores schema location in the document instance and within a proxy validate action I have to choose a specific resource to validate against.  The problem here is that if I reference only the Core schema then it complains about the specialised content.  If instead I choose a business domain then that domains extensions work fine but no other business extensions validate.
    I can overcome this problem with a couple of hacks.  One is to include business specific imports into the Core schema so that the validator can find the other schemas but this is undesirable since it creates a dependency from the generic to the specific.   I can also do something similar in the web service schema but this not really any better as it moves the dependency from the Core Schema to the web service schema and now the web service schema has to anticipate all possible business specific schemas that might be needed.
    What I really need is a "catalog" so that the validator can locate any/all of the business domain extensions that are needed.  Is this possible in OSB 11.1.4 or any other version?
    regards

    You would need to import all releated schemas in OSB as resource (you can easily import them as zipped resourced) and resolve any dependency conflicts that might arise. Once you have all the dependencies sorted out and session activated, you can validate against the generic schema and it will also validate against any referenced schemas as required.

  • Can a dequeued message be under the authority of the queuing user ?

    Hello,
    I am testing AQ on an 11.2.0.1.0 database and I am missing something...
    Here is my test case:_
    1) I have a queue created in COM_OWNER account. I created a callback procedure with dbms_aq.register. This procedure just create a row into log table.
    2) The user FBOUCHER issue a dbms_aq.enqueue.
    3) I query the log table. The row was created by SYS ??.
    Can my callback procedure run under the authority of FBOUCHER instead of SYS ?
    I specified "authid current_user" for my callback package and used USER to insert into log table.
    Thanks for your help.
    Here is my complete test case:*
    Following scripts are run from COM_OWNER Oracle user on a 11.2.0.1.0 database.
    create or replace package test_aq authid current_user is
    procedure getmessage(context in raw, reginfo in sys.aq$_reg_info, descr in sys.aq$_descriptor, payload in RAW, payloadl in number);
    end;
    create or replace package body test_aq is
    procedure getmessage(context in raw, reginfo in sys.aq$_reg_info, descr in sys.aq$_descriptor, payload in RAW, payloadl in number) is
    begin
    insert into log values ('notification received', sysdate, user );
    commit;
    end;
    end;
    declare
    l_reg_info_list sys.aq$_reg_info_list;
    begin
    dbms_aqadm.stop_queue(queue_name => 'TEST_QUEUE');
    dbms_aqadm.drop_queue(queue_name => 'TEST_QUEUE');
    dbms_aqadm.drop_queue_table(queue_table => 'TEST_QUEUE_TABLE');
    dbms_aqadm.create_queue_table(queue_table => 'TEST_QUEUE_TABLE', queue_payload_type => 'RAW', multiple_consumers => FALSE);
    dbms_aqadm.create_queue(queue_name => 'TEST_QUEUE', queue_table => 'TEST_QUEUE_TABLE') ;
    dbms_aqadm.start_queue(queue_name => 'TEST_QUEUE', enqueue => TRUE, dequeue => TRUE) ;
    dbms_aqadm.grant_queue_privilege(privilege => 'ENQUEUE', queue_name => 'TEST_QUEUE', grantee => 'MAJ_COM');
    execute immediate 'drop table log';
    execute immediate 'create table log(text varchar2(2000), date_creation date, usager_creation varchar2(30))';
    execute immediate 'drop public synonym log';
    execute immediate 'create public synonym log for com_owner.log';
    execute immediate 'grant select, insert, delete on log to maj_com';
    execute immediate 'drop public synonym test_aq';
    execute immediate 'create public synonym test_aq for com_owner.test_aq';
    execute immediate 'grant execute on test_aq to maj_com';
    l_reg_info_list := sys.aq$_reg_info_list(sys.aq$_reg_info('COM_OWNER.TEST_QUEUE', DBMS_AQ.NAMESPACE_AQ, 'plsql://COM_OWNER.TEST_AQ.GETMESSAGE?PR=0', hextoraw('FF')));
    dbms_aq.register(l_reg_info_list, 1);
    end ;
    Following scripts was run from a user schema (FBOUCHER). This user has MAJ_COM role.
    declare
    msg RAW(500) ;
    enq_opts dbms_aq.enqueue_options_t ;
    msg_props dbms_aq.message_properties_t ;
    begin
    dbms_aq.enqueue(queue_name => 'COM_OWNER.TEST_QUEUE', enqueue_options => enq_opts, message_properties => msg_props, payload => hextoraw('FF'), msgid => msg) ;
    commit ;
    end ;
    /* Next check to see if notification was received.
    It was received but within the authority of SYS...
    SQL> select * from log;
    TEXT DATE_CREATION USAGER_CREATION
    notification received 2009-11-15 12 SYS
    SQL>

    No. LabVIEW is available for Windows, Mac, Sun, and Linux. Every binary is unique to the OS. You can try to convince NI to create a LabVIEW version for VX Works but I don't think you'll get very far. Sorry.

  • Can OSB trigger events other than backup jobs?

    Hi,
    I want to create a snapshot of a file system, and then back up the snapshot. The creation and mounting of the snapshot is scriptable in our environment.
    Is OSB capable of running a pre-backup script, and depending on the outcome, run a backup job?
    If this is not possible, I can probably 'cron' the script, but it would be a nice feature to have in OSB.
    Thanks.

    Hi,
    Yes, I know what the 'optional' keyword does, but I can't see much use for it. I'm not sure your example is a good one - I assume that if your dataset has multiple 'include path' statements in it and your email server is contactable, you get one email per 'include path'. I'd rather not clutter up my inbox with such fine-grained information, but rather rely on OSB's ability to email me once a day first thing in the morning with the results for the last 24 hours.
    A much more common use for this type of feature in my experience is to be able to call a script which performs pre-processing on the files to be backed up (all files defined in the dataset) and a script which performs post processing on the files. Unfortunately, the way OSB appears to work means that to achieve this, the script turns into spaghetti code to some degree to accomodate the second and subsequent calls
    Is there any way of achieving what I want within OSB when the dataset has more than one 'include path' statement?
    Thanks

  • Oracle AQ - dequeue multiple threads

    Hi,
    I have a single consumer AQ queue containing 1000 records. I have a bpel process that dequeues from the queue and performs some action.
    I need to have 10 processed polling from the queue at a time and performing the post xyz task. When any one of them is done, the next record can be dequeued.
    Thanks,
    Rosh

    i have the same problem with my proxy service on the osb which is polling an aq.
    when 100 messages are in the queue and it starts polling it will dequeue them all in 1 thread and will hammer the backend service.
    i couldn't find any setting on the aq jca itself to control this. my current solution is osb based and we use throttling on the business service to control it a bit.
    in the old esb you could have a setting like minimumDelayBetweenMessages to control this, but i already decompiled the aq adapter from the osb but can't find any interesting setting anymore
    see : https://blogs.oracle.com/kavinmehta/entry/aqapps-adapter-endpoint-properties for the old settings which worked for us

  • Can't Seem to Get my Event Based Job To Execute

    What makes this slightly different than other posts on this topic is that we want to use our own queue/payload object rather than the built-in SCHEDULER$_EVENT_QUEUE. There are many reasons for this. What follows in under 11gR2 (11.2.0.3)
    So, the following code blocks are just for a proof of concept piece intended to create a simple job and to have it fired based on the arrival of a message in a queue. (Something we have a requirement to do) The issue that I just can't seem to resolve is that, for some reason, the scheduler object never triggers the job. I can't find any trace or alert log entries to help me diagnose. What I do know is that the queue itself is fine (dequeues and enqueues work normally). The object payload type is fine (All of these tested from the EVENT_JOB_MGR package provided below).
    Here's the PL/SQL Type that is the payload object of the queue and is also referenced in the package:
    CREATE OR REPLACE TYPE RUN_MSG AS OBJECT
      STATUS VARCHAR2(255)
    Here are the queue and queue table:
    BEGIN
      DBMS_AQADM.CREATE_QUEUE_TABLE
        QUEUE_TABLE           =>        'JUPSHAW.EVENT_JOB_QT'
       ,QUEUE_PAYLOAD_TYPE    =>        'JUPSHAW.RUN_MSG'
       ,COMPATIBLE            =>        '10.0.0'
       ,STORAGE_CLAUSE        =>        '
                                         TABLESPACE RISKDM_DATA'
       ,SORT_LIST             =>        'ENQ_TIME'
       ,MULTIPLE_CONSUMERS    =>         TRUE
       ,MESSAGE_GROUPING      =>         0
       ,SECURE                =>         FALSE
    End;
    BEGIN
      DBMS_AQADM.CREATE_QUEUE
        QUEUE_NAME          =>   'JUPSHAW.EVENT_JOB_Q'
       ,QUEUE_TABLE         =>   'JUPSHAW.EVENT_JOB_QT'
       ,QUEUE_TYPE          =>   SYS.DBMS_AQADM.NORMAL_QUEUE
       ,MAX_RETRIES         =>   0
       ,RETRY_DELAY         =>   0
       ,RETENTION_TIME      =>   -1
    END;
    DECLARE
      aSubscriber sys.aq$_agent;
    BEGIN
      aSubscriber := sys.aq$_agent('SCHEDULER$_EVENT_AGENT',
                                  0);
      dbms_aqadm.add_subscriber
         ( queue_name     => 'EVENT_JOB_Q'
          ,subscriber     => aSubscriber);
    END;
    BEGIN
      SYS.DBMS_AQADM.START_QUEUE
        QUEUE_NAME => 'JUPSHAW.EVENT_JOB_Q'
       ,ENQUEUE => TRUE
       ,DEQUEUE => TRUE
    END;
    (I think the scheduler automatically added itself as a subscriber (see above) after the queue itself was created)
    So, here's the simple package:
    CREATE OR REPLACE PACKAGE EVENT_JOB_MGR
    AS
        PROCEDURE DEQUEUE_JOB_STATUS_MSG;
        PROCEDURE ENQUEUE_JOB_STATUS_MSG;
        PROCEDURE RECORD_DEQUEUED_STATUS( a_RunMsg  RUN_MSG );
    END EVENT_JOB_MGR;
    CREATE OR REPLACE PACKAGE BODY EVENT_JOB_MGR
    AS
        PROCEDURE RECORD_DEQUEUED_STATUS( a_RunMsg  RUN_MSG )
        IS
            ls_Status       VARCHAR2(32);
        BEGIN
            ls_Status := a_RunMsg.STATUS;
            INSERT INTO DEQUEUE_RECORD
            ( STATUS )
            VALUES
            ( ls_Status );
            COMMIT;    
        END;       
        PROCEDURE DEQUEUE_JOB_STATUS_MSG
        IS
            l_DeQOptions    DBMS_AQ.DEQUEUE_OPTIONS_T;
            l_MsgProps      DBMS_AQ.MESSAGE_PROPERTIES_T;
            l_DeQMsgID      RAW(16);
            l_RunMsg        RUN_MSG;                
        BEGIN
            l_DeQOptions.CONSUMER_NAME := 'EVENT_JOB';
            DBMS_AQ.DEQUEUE(    queue_name          =>  'EVENT_JOB_Q',
                                  dequeue_options     =>  l_DeQOptions,
                                  message_properties  =>  l_MsgProps,
                                  payload             =>  l_RunMsg,
                                  msgid               =>  l_DeQMsgID );
            COMMIT;                             
            RECORD_DEQUEUED_STATUS( l_RunMsg );                              
        END;
        PROCEDURE ENQUEUE_JOB_STATUS_MSG
        IS
            l_EnQOptions    DBMS_AQ.ENQUEUE_OPTIONS_T;
            l_MsgProps      DBMS_AQ.MESSAGE_PROPERTIES_T;
            l_EnQMsgID      RAW(16);
            l_RunMsg        RUN_MSG;               
        BEGIN   
            l_RunMsg := RUN_MSG('Success');
            DBMS_AQ.ENQUEUE(  QUEUE_NAME          =>  'EVENT_JOB_Q',
                                ENQUEUE_OPTIONS     =>  l_EnQOptions,
                                MESSAGE_PROPERTIES  =>  l_MsgProps,
                                PAYLOAD             =>  l_RunMsg,
                                MSGID               =>  l_EnQMsgID);
        END;
    END EVENT_JOB_MGR;
    -- Finally the program, schedule and job
    BEGIN
        DBMS_SCHEDULER.CREATE_PROGRAM(
            PROGRAM_NAME          => 'EVENT_JOB_PROG',
            PROGRAM_ACTION        => 'EVENT_JOB_MGR.RECORD_DEQUEUED_STATUS',
            PROGRAM_TYPE          => 'STORED_PROCEDURE',
            NUMBER_OF_ARGUMENTS   => 1,
            ENABLED               => FALSE );
        DBMS_SCHEDULER.DEFINE_METADATA_ARGUMENT (
            program_name        => 'EVENT_JOB_PROG',
            argument_position   => 1,
            metadata_attribute  => 'EVENT_MESSAGE' );  
        DBMS_SCHEDULER.ENABLE( NAME => 'EVENT_JOB_PROG');        
    EXCEPTION
      WHEN OTHERS THEN RAISE ;       
    END;
    COMMIT
    BEGIN
      DBMS_SCHEDULER.CREATE_EVENT_SCHEDULE (
       schedule_name     =>  'EVENT_JOB_SCHED',
       start_date        =>  SYSTIMESTAMP,
       event_condition   =>  'TAB.USER_DATA.STATUS = ''SUCCESS''',
       queue_spec        =>  'EVENT_JOB_Q');
    END;
    BEGIN
      DBMS_SCHEDULER.CREATE_JOB (
       job_name            =>  'EVENT_JOB',
       program_name        =>  'EVENT_JOB_PROG',
       schedule_name       =>  'EVENT_JOB_SCHED',
       enabled             =>  TRUE,
       comments            =>  'Start if you get a success message');
    END;
    I call the ENQUEUE_JOB_STATUS_MSG method to stick a message on the queue. I can confirm that it can be dequeued and logged using the DEQUEUE_JOB_STATUS_MSG method in the package. However, nothing seems to happen (at all) as far as the scheduler job when a message is put on the queue. I am thinking it should dequeue the message with status set to SUCCESS and then, kick off the job.
    Can anyone see why the above wouldn't work? Been stuck here for a couple of days.
    Thanks,
    -Joe

    Try to create job that react on event directly not using schedule.
    BEGIN
        dbms_scheduler.create_job(job_name => 'EVENT_JOB',
                                  program_name =>  'EVENT_JOB_PROG',
                                  event_condition => 'TAB.USER_DATA.STATUS = ''SUCCESS''',
                                  queue_spec => 'EVENT_JOB_Q',
                                  enabled => true,
                                  auto_drop => FALSE);
    END;
    Check if your schedule EVENT_JOB_SCHED is enabled

  • Messages in Ready state are not dequeuing.

    Messages are being left in a "Ready" state. Everything was working fine in 10g. However there was an upgrade to 11g and now queues have stop working. It is a multiconsumer queue with one subscriber. I can manually dequeue messages but the subscriber call back does not seem to function.
    -- Create and start queues and queue_table
    BEGIN
         DBMS_AQADM.CREATE_QUEUE_TABLE (
              queue_table => 'muse.m_en_queue_table',
              queue_payload_type => 'muse.eu_logid_type',
              multiple_consumers => TRUE
         DBMS_AQADM.CREATE_QUEUE (
              queue_name => 'xxxxx.m_en_queue',
              queue_table => 'xxxxx.m_en_queue_table'
         DBMS_AQADM.START_QUEUE('xxxxx.m_en_queue');
         --Start Default Exception Queue
         DBMS_AQADM.START_QUEUE('xxxxx.AQ$_M_EN_QUEUE_TABLE_E', enqueue => FALSE, dequeue => TRUE);
         DBMS_AQADM.ALTER_QUEUE (
              queue_name => 'xxxxx.m_en_queue',
              max_retries => 2,
    retry_delay => 10);
    END;
    --Procedure to dequeue messages and try to resend to the notification service
    CREATE OR REPLACE PROCEDURE muse.m_en_queue_callback_procedure(
         context RAW,
    reginfo SYS.AQ$_REG_INFO,
    descr SYS.AQ$_DESCRIPTOR,
    payload RAW,
    payloadl NUMBER
    ) AS
         dequeue_options      dbms_aq.dequeue_options_t;
         message_properties      dbms_aq.message_properties_t;
         message_handle           RAW(16);
         o_payload      muse.eu_logid_type;
         change_rec           muse.eocd_update%rowtype;
    BEGIN
    dequeue_options.WAIT := DBMS_AQ.no_wait;
    dequeue_options.msgid := descr.msg_id;
    dequeue_options.consumer_name := descr.consumer_name;
    DBMS_AQ.DEQUEUE(
    queue_name => descr.queue_name,
    dequeue_options => dequeue_options,
    message_properties => message_properties,
    payload => o_payload,
    msgid => message_handle
    END;
    --Subscribed to queue
    BEGIN
    DBMS_AQADM.ADD_SUBSCRIBER (
    queue_name => 'xxxxx.m_en_queue',
    subscriber => SYS.AQ$_AGENT(
    'muse_en_queue_subscriber',
    NULL,
    NULL )
    DBMS_AQ.REGISTER (
    SYS.AQ$_REG_INFO_LIST(
    SYS.AQ$_REG_INFO(
    'xxxxx.M_EN_QUEUE:MUSE_EN_QUEUE_SUBSCRIBER',
    DBMS_AQ.NAMESPACE_AQ,
    'plsql://xxxxx.m_en_queue_callback_procedure',
    HEXTORAW('FF')
    1
    END;
    /

    Hi,
    What version specifically of 11g did you upgrade to?
    Did you review the following MOS notes?
    Event Monitor Process: Architecture and Known Issues (Doc ID 105067.1)
    AQ PL/SQL Notification No Longer Work Due To "register_driver()" Jobs Not Terminating (Doc ID 331372.1)
    Thanks
    Paul

  • Urgent!!!! How to dequeue XMLType ObjectPayLoad

    Hi I know how I can work with XMLType payload with AQjmsADTMessage.
    I want to know how can I dequeue XMLType Payload with AQMessage?
    Here is what I am trying to do
    aqSession = AQDriverManager.createAQSession(conn);
    AQQueue aqQueue = aqSession.getQueue("thdb", "TH_QUEUE");
    AQDequeueOption deOptions = new AQDequeueOption();
    AQMessage msg = aqQueue.dequeue(deOptions,XMLType.getORADataFactory());
    AQObjectPayload objPayLoad = msg.getObjectPayload();
    XMLType xmlType = (XMLType)objPayLoad.getPayloadData();
    System.out.println(xmlType.getStringVal());
    but I am getting Exception
    oracle.AQ.AQOracleSQLException: XMLTypeFactory can only work with OPAQUE
    Please help me
    Thanks in advance

    Hi
    copy
    %ORACLE_HOME%\rdbms\jlib\aqapi.jar
    to
    %OC4J%\j2ee\home\lib
    restart oc4j
    The majority of these type exceptions are caused mismatched jars files
    The exception you was seeing was been generated in xdb.jar
    I always consult the following documentation
    http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96609/toc.htm
    to, look up the class, to find the jar and directory.
    Warwick

Maybe you are looking for