Oracle 9i, AQ, JMS

Hello
I am starting a new project. We want to use a message broker.
Our company primarily uses Java.
How good is Oracle 9i AQ?
How good is the JMS implementation?

HI Sean,
Oracle Advanced Queuing is extensively used by Oracle customers. A survey conducted during Oracle9i beta found that around 30%
of the beta customers were already using AQ in their production environment. JMS is the Java API for Oracle Advanced Queuing.
cheers,
Brajesh

Similar Messages

  • Cannot locate Java class oracle.tip.adapter.jms.outbound.JmsProduceInteract

    Hi team ,
    I am trying to developing the JMS queue in BPEL. For it, i configure JMS adapter in BPEL. compilation done sucessfully.
    But during deployement , i am getting the following error.
    [12:21:06 PM] HTTP error code returned [500]
    [12:21:06 PM] Error message from server:
    There was an error deploying the composite on soa_server1: [JCABinding] [textmessageusingqueues.enqueue/1.0]Unable to complete unload due to: Cannot locate Java class oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec: Cannot locate Java class oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec.
    So please resolve my problem.
    Regards
    Narsi p

    Mate ,
    Just check the health status and state of DB Adapter in the deployments of WLAdminConsole.
    If its inactive , redeploy and update it ,also make sure its targeted to the right server.

  • Oracle AQ to JMS Queue which is on Oracle Application server

    Hi,
    I am using Oracle Streams AQ Oracle database 10g
    and i have a JMS Queue on oracle Application server.
    how i can Propagate message from Oracle AQ (AQ$_JMS_TEXT_MESSAGE)Queue to JMS Queue. ?
    Thanks,
    Satnani

    Hi Justin,
    Thanks for Reply, but in my case my JMS queue is on Oracle Application Server.
    and i want to propagate message from AQ to JMS queue.
    and none of the document is available to describe how to send message from oracle database AQ to JMS queue which is on application server.
    please help
    Thanks,
    Satnani

  • How to set the Correlation ID in Oracle Q from JMS Adapter

    Hi,
    I'm using a JMS Adapter on my BPEL process to push messages to an Oracle instance in another machine.
    While testing, I could see that a message is posted on the Q table, but the Correlation ID is null.
    How is the correlation ID on the Q set from the adapter? IDeally I want this ID dynamic to be unique.
    Is this something st on the Invoke activity to the jms adapter, i.e., the Correlations tab, or is that
    unrelated altogether.
    Thanks,
    Ramon

    Found the solution.
    On the Invoke activity, I set the property jca.jms.JMSCorrelationID to a variable I created.
    I set my variable to string appended with sysdate to make it unique.

  • Oracle BPM and JMS Queue: How to associate data from Map Messages to Process Data Objects?

    Good Day!
    I'm currently working on a project wherein it tries to get data from a JMSqueue Map Message being populated by CEP.
    After CEP pushes some data in the JMSqueue. I have BPM configured with a JMS adapter to look up whether there are any messages to be processed upon.
    Inside BPM, I want to know how can I correlate the data from the Map Message to my Process Data Object.
    For example, If I have a Map Object wherein it has 3 attributes:
    FirstName:String
    LastName:String
    Age:int
    What is the expression I need to use inside Oracle BPM Data Association screen in order to map the data from the Map Messages into my process data objects?
    Thanks!
    Regards,
    Jeff

    Any ideas? Thanks!

  • Problem with WebLogic- Oracle AQ Foreign JMS server.

    I'm trying to create a JMS module in WebLogic pointing at an Oracle AQ queue in another database.  I've got a datasource, module, and queue according to the documentation (I believe). 
    I followed: http://docs.oracle.com/cd/E24329_01/web.1211/e24385/aq_jms.htm#CJAECHCC
    although, I did fix the syntax errors in the SQL, and I used smf instead of jmsuser.
    However, when I deploy a MDB that uses the queue, I get the following exception:
    weblogic.jms.common.InvalidDestinationException: [JMSClientExceptions:055142]Foreign destination, SMF.USERQUEUE
      at weblogic.jms.common.Destination.checkDestinationType(Destination.java:105)
      at weblogic.jms.client.JMSSession.setupConsumer(JMSSession.java:2720)
      at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:2691)
      at weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:2596)
      at weblogic.ejb.container.internal.JMSConnectionPoller.setUpQueueSessionAt(JMSConnectionPoller.java:1791)
      at weblogic.ejb.container.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1618)
      at weblogic.ejb.container.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:2298)
      at weblogic.ejb.container.internal.JMSConnectionPoller.connect(JMSConnectionPoller.java:808)
      at weblogic.ejb.container.internal.MDConnectionManager.timerExpired(MDConnectionManager.java:177)
      at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:293)
      at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    The JDBC data source is connected properly.
    JNDI IC: oracle.jms.AQjmsInitialContextFactory
    ConnectionFactory Local: aqjms/XAQueueConnectionFactory Remote: QueueConnectionFactory
    Destination Local: aqjms/sdcCompilerQueue Remote: Queues/USERQUEUE
    Data Source: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=SMF)(INSTANCE_NAME=SMF)))
    Supports Global Transactions - DISABLED.
    Data Source Test: SQL SELECT count(*) FROM myqueuetable  -- validates that the queue table exists.
    Oracle WebLogic 12c, Oracle EE 11gR2 on OEL 6.4.
    Any ideas?  We're stumped here.
    Thank you

    The problem was that the MDB wasn't specifying the connection factory.  It needed some more annotations:
    @MessageDriven(name = "MDBName",
            mappedName = "aqjms/mdbQueue",
            activationConfig = {
                    @ActivationConfigProperty(propertyName="connectionFactoryJndiName",
                            propertyValue="aqjms/QueueConnectionFactory"

  • Oracle Application Server JMS Library files

    Hi,
    What are the JMS library files that are used by Oracle with the Application version 10.1.2 and 10.1.3?
    In which folder of the Application Server install, these library files would be available? Do they differ by JDK version?
    Please let me know the details..........
    Regards,
    Siva

    my question has not been answered yet. pls help on this.

  • Tuxedo to Oracle 9iAS via JMS

    A client wants to connect a Tuxedo application to an Oracle 9iAS
    application (Oracle was not my choice, forced into it by upper
    management). Obviously this is already well handled with Weblogic, but
    how about something non-BEA? I'm not a J2EE person, but someone said
    JMS Connectors, and someone else said the Java Native Interface to JMS.
    I see this as a Tuxedo question, how do I interface to JMS?
    Suggestions? (getting Weblogic is not a valid answer. Oracle cut the
    clients annual license by a $1 Million if they would use 9iAS for their
    new projects instead of Weblogic. You do the math.)
    Brian Douglass
    Transaction Processing Solutions, Inc.
    8555 W. Sahara
    Suite 112
    Las Vegas, NV 89117
    Voice: 702-254-5485
    Fax: 702-254-9449
    e-mail: [email protected]
    [briand.vcf]

    Brian Douglass <[email protected]> wrote:
    >
    But JOLT only gets me a Client connection. In my case, I need to send
    messages
    to the 9iAS environment and get asych responses. Other times, the 9iAS
    sends me
    messages and I send back asych responses (could be up to 5 days later!).Well, I guess you can sort of "call" the Java environment from the Tux side by
    means of an unsolicited notification targeted to a Java JOLT "client". I am not
    a Java programmer but reading the JOLT docs it seems to me it should be doable.
    If it is practical in the real world might be another story, though...
    I want
    a queueing environment like /Q, AQ, or MessageQ, but must adhere to the
    J2EE
    interface standards. Does /Q support JMS?
    Brian
    "Per Lindström" wrote:
    As long as O9iAS is a Java environment, you should be able to use JOLTto do
    at least some basic integration, I guess... (and for $1M you wouldbe able
    to write a LOT of JOLT code B-))
    /Per
    Per Lindström R2Meton AB, SWEDEN
    [email protected]
    Brian Douglass skrev i meddelandet <[email protected]>...
    A client wants to connect a Tuxedo application to an Oracle 9iAS
    application (Oracle was not my choice, forced into it by upper
    management). Obviously this is already well handled with Weblogic,
    but
    how about something non-BEA? I'm not a J2EE person, but someone said
    JMS Connectors, and someone else said the Java Native Interface toJMS.
    I see this as a Tuxedo question, how do I interface to JMS?
    Suggestions? (getting Weblogic is not a valid answer. Oracle cutthe
    clients annual license by a $1 Million if they would use 9iAS fortheir
    new projects instead of Weblogic. You do the math.)
    Brian Douglass
    Transaction Processing Solutions, Inc.
    8555 W. Sahara
    Suite 112
    Las Vegas, NV 89117
    Voice: 702-254-5485
    Fax: 702-254-9449
    e-mail: [email protected]
    Transaction Processing Solutions, Inc.
    8555 W. Sahara
    Suite 112
    Las Vegas, NV 89117
    Voice: 702-254-5485
    Fax: 702-254-9449
    e-mail: [email protected]
    Content-Description: Card for Brian Douglass
    begin:vcard
    n:Douglass;Brian
    tel;fax:702-562-3206
    tel;work:702-254-5485
    x-mozilla-html:TRUE
    url:www.tps-eoltp.com
    org:TPS, Inc.
    version:2.1
    email;internet:[email protected]
    title:President
    adr;quoted-printable:;;8555 W. Sahara=0D=0ASuite 112;Las Vegas;NV;89117;US
    x-mozilla-cpt:;15296
    fn:Douglass, Brian
    end:vcard

  • Oracle 10g R2 jms server

    Hi All
    i want to know , how can create more than one jms server, because our application now run on the weblogic 8.1 and 9.1 as well,for weblogic configaration we configee more than one jms server,what i really want to know how i can do that using oracle ...
    and also i like to know what is good information source about the weblogic 8.1 to oracle migration ...
    Thankx
    Asnaka Priyanjith

    The only way to start more than one JMS server is to start up multiple OC4J JVMs, each with its own JMS server.

  • Oracle sending to JMS

    How do you set up AQ such that you can send a JMS message to an external JMS provider's Queue or Topic? Most of the documentation and examples seem to be surrounding sending it to the DB, but I need to send a JMS message based on a trigger to another JMS provider.
    Thanks in advance,
    Joe

    Can you be more specific? What Java libraries do I have to load into the database? What version of Oracle do I have to use? I want to publish JMS messages to a JMS Queue in WebLogic.

  • How to install Oracle AS JMS Adapter on Websphere (or any J2EE server)

    Hi,
    We have a requirement in which the client wants to connect to the OC4J JMS running in SOA Suite (Oracle Application Server 10.1.3.4).
    They are using Websphere. We are exploring ways by which they can connect from Websphere application to Oracle AS OC4J JMS.
    One option is - deploy the Oracle AS JMS adapter in Websphere and then use it to connect to the OC4J JMS.
    Please let us know if this is the right approach. Also, if so, kindly point to the documentation regarding how to install the JMS adapter on 3rd party J2EE servers such as websphere.
    Rgds,
    Amit

    While searching the knowledge base I found the following note, which seems to suggest that Oracle Adapters are not deployble on other J2EE application servers:
    Support For Jca Adapter In Other Application Servers Like Jboss [ID 1114738.1]
    ==============================================
    From the statements in documentation it may be implied that jca adapter should be deployable on any application server that is compliant with j2ee/jca. Please note that this cannot be implied at this time and jca adapter cannot be deployed on other application servers than OAS in BRM 731 due to some technical constraints. So currently we can support only OAS and not JBoss or another application server , in BRM 731. The documentation will be updated accordingly to reflect this.

  • How to dequeue Oracle queue(enqueue in Ora) in java using JMS text message

    I'm trying below java code but its giving me error:
    public class testq {
    public static void main(String[] args) throws Exception {
    testq q = new testq();
    AQSession aq_sess = createSession();
    q.runTest(aq_sess);
    public static AQSession createSession() {
    Connection db_conn;
    AQSession aq_sess = null;
    try {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    /* Load the Oracle8i AQ driver: */
    Class.forName("oracle.AQ.AQOracleDriver");
    db_conn = DriverManager.getConnection("jdbc:oracle:thin:@10.10.10.10:1521:demo", "demo_app", "demo");
    System.out.println("JDBC Connection opened ");
    db_conn.setAutoCommit(false);
    /* Creating an AQ Session: */
    aq_sess = AQDriverManager.createAQSession(db_conn);
    System.out.println("Successfully created AQSession ");
    catch (Exception ex) {
    System.out.println("Exception: " + ex);
    ex.printStackTrace();
    return aq_sess;
    public void runTest(AQSession aq_sess) {
    //AQQueueTable q_table;
    AQQueue queue;
    AQMessage message;
    AQRawPayload raw_payload;
    AQDequeueOption deq_option;
    byte[] b_array;
    Connection db_conn;
    try {
    db_conn = ((AQOracleSession)aq_sess).getDBConnection();
    /* Get a handle to a queue - aq_queue4 in aquser schema: */
    queue = aq_sess.getQueue ("myadmin", "STREAM_QUEUE_DEMO");
    System.out.println("Successful getQueue");
    /* Creating a AQDequeueOption object with default options: */
    deq_option = new AQDequeueOption();
    deq_option.setDequeueMode(AQDequeueOption.DEQUEUE_REMOVE);
    /* Set wait time to 10 seconds: */
    deq_option.setWaitTime(10);
    /* Dequeue a message: */
    message = queue.dequeue(deq_option);
    System.out.println("Successful dequeue");
    /* Retrieve raw data from the message: */
    raw_payload = message.getRawPayload();
    b_array = raw_payload.getBytes();
    db_conn.commit();
    String value = new String(b_array);
    System.out.println("queue="+value);
    } catch(Exception e) {
    e.printStackTrace();
    The error says "oracle.AQ.AQException: JMS-174: Class must be specified for queues with object payloads
    Use dequeue(deq_option, payload_fact) or dequeue(deq_option, sql_data_cl)"
    Can any one tell me how to fix this error & how to get bulk dequeue messages?
    And i am using sys.AQ$_JMS_TEXT_MESSAGE payload type during enqueue.
    Can any one tell me how to fix this Java program to dequeue it?
    Thanks in advance...Please its urgent
    Thanks!

    the code is as bellow
    File fBlob = new File ("test.pdf");
    FileInputStream fIS = new FileInputStream(fBlob);
    pstUpdate= con.prepareStatement("UPDATE table set file = ? where id = ?");
    pstUpdate.setBinaryStream(1, fIS, (int) fBlob.length());
    pstUpdate.setString(2, rs.getString("id"));
    pstUpdate.execute();
    con.commit();

  • JMS Correlation ID problem in Oracle 11g

    Hi All,
    I have created a BPEL for producing message into JMS with correlation ID="SABARI". In my receiving bpel (my second bpel )i also checked 'CreateInstance' in Receive activity, which will finally write the received message into a file.
    I have deployed both the bpels. However I dint find any instance created rather no file is written. Kindly find my JCA files as below.
    ProduceJMS.jca
    <adapter-config name="Produce" adapter="JMS Adapter" wsdlLocation="Produce.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/wls/Topic" UIJmsProvider="WLSJMS" UIConnectionName="localConn"/>
    <endpoint-interaction portType="Produce_Message_ptt" operation="Produce_Message">
    <interaction-spec className="oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec">
    <property name="TimeToLive" value="0"/>
    <property name="PayloadType" value="TextMessage"/>
    <property name="DeliveryMode" value="Persistent"/>
    <property name="DestinationName" value="sabari_topic"/>
    </interaction-spec>
    </endpoint-interaction>
    </adapter-config>
    ReceiveJMS.jca
    <adapter-config name="ReceiveJMS" adapter="JMS Adapter" wsdlLocation="ReceiveJMS.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/wls/Topic" UIJmsProvider="WLSJMS" UIConnectionName="localConn"/>
    <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
    <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
    <property name="PayloadType" value="TextMessage"/>
    <property name="MessageSelector" value="JMSCorrelationID=&quot;SABARI&quot;"/>
    <property name="UseMessageListener" value="false"/>
    <property name="DestinationName" value="sabari_topic"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    Kindly help in resolving this issue.
    Thanks,
    Sabarisri. N

    Can you check the logs ? any pointers there ?

  • JMS Enqueue/Dequeue without using oracle.jms package

    Hi,
    Is it possible to successfully enqueue/dequeue messages from Oracle AQ using JMS which only uses the classes under javax.jms package, not the classes under oracle.jms package. If possible, can anybody please provide some step by step example.
    Thanks

    You can get the connection factory and the queue from an application server's jndi. Create a resource provider reference in oc4j and get them from there. Read the oc4j services guide, oems (jms) chapter for how to do that.
    I think if you are not using an application server you can also get the connection factory and queue from an ldap directory. check out Aq user guide for that.

  • Oracle Queue Error creating JMS-120: Dequeue failed

    Hi Guys,
    We are facing serious problems with Oracle queue when dequeuing messages from the queue.
    Our configuration is the following:
    - SOA Suit 10.g (10.1.3.5.0)
    - Dehydration storage - Oracle Database 11gR2 in Exadata Cloud
    We use standard JMS Adabpter from AS10g to dequeue messages from the Oracle queue.
    Suddenly dequeue stop working pooling the flowing errors into the log.xml log file in $ORACLE_HOME/j2ee/oc4j_soa/log/oc4j_soa_SOA_GROUP_1/oc4j directory.
    <MSG_TEXT>Failed to process deferred message</MSG_TEXT>
    <SUPPL_DETAIL><![CDATA[oracle.tip.esb.server.dispatch.QueueHandlerException: Error creating "JMS-120: Dequeue failed"
         at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:197)
         at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:178)
         at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:135)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
         at java.lang.Thread.run(Thread.java:662)
    Caused by: oracle.jms.AQjmsException: JMS-120: Dequeue failed
         at oracle.jms.AQjmsError.throwEx(AQjmsError.java:308)
         at oracle.jms.AQjmsConsumer.dequeue(AQjmsConsumer.java:2094)
         at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:922)
         at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:835)
         at oracle.jms.AQjmsConsumer.receive(AQjmsConsumer.java:776)
         at oracle.j2ee.ra.jms.generic.CommonConsumerWrapper.receive(CommonConsumerWrapper.java:203)
         at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:175)
         ... 7 more
    then:
    <COMPONENT_ID>j2ee</COMPONENT_ID>
        <MSG_ID>J2EE JTA-00107</MSG_ID>
    <MSG_TEXT>Error in resource driver during rollback: oracle.jdbc.xa.OracleXAException, errorCode : -7</MSG_TEXT>
    and this message comes out every second:
        <MSG_TEXT>Attempt to use an invalid handle : 'oracle_jdbc_driver_LogicalConnection_Proxy@10af88e3'.</MSG_TEXT>
    Any help, suggestions, hints would be much appreciated.
    cheers!!
    eMarcel                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Hi there
    I have got the same problem i.e
    oracle.jms.AQjmsException: JMS-120: Dequeue failed
         at oracle.jms.AQjmsError.throwEx(AQjmsError.java:283)
         at oracle.jms.AQjmsConsumer.dequeue(AQjmsConsumer.java:2178)
         at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:1013)
         at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:950)
         at oracle.jms.AQjmsConsumer.receive(AQjmsConsumer.java:897)
         at com.cramer.cdd.mytest.QueueReceive2.init(QueueReceive2.java:122)
         at com.cramer.cdd.mytest.QueueReceive2.main(QueueReceive2.java:152)
    Exception in thread "main
    Please help me in debugging this.
    I have a standalone java application to listen to the aqJMS queue.
    Regards
    Paul

Maybe you are looking for