Why we use MQ not JMS Queues or AQ ?

Hi,
Is there any specific reason most of the companies using MQ for messaging and not using AQ or JMS Queues ?

Hi,
AFAIK, the companies that have IBM infrastructure in place prefer using the MQs. Also as MQ is capable of being accessed using JMS as well as MQ, it adds to the usability.
Following could be helpful.
How to configure MQ with WLS (JMS MQ vs Native MQ)
Regards,
Neeraj Sehgal

Similar Messages

  • WHY WE USE VECTOR NOT ARRAY STRING

    Hi
    I want to know why we use Vector not bufferstring.
    What is the difference Vector(1,1) and STRING[1][1]?
    Which one we will prefer?
    Why we will prefer one of them?
    Please help me to find out.

    There are huge differences between array and Vector.
    Array is a special class that allows to keep references to a number of Objects of some type. It has a maximum length set during construction, and does not offer any methods to change it's size (without defining a new array).
    Vector is a class (thread-safe unlike it's new version ArrayList) that allows to keep references to any Object (may be of different types). It doesn't have a maximum length set, and can be potentionally of any size. It allows to easily remove, add, insert new elements and keeps all the elements in the order they were added (unless some object was inserted). This is a really well written class, and I'm always using it for storing some objects.
    Hope it was helpful.

  • Use ODI with JMS Queue

    I'm new user in ODI and also JMS. I successfuly use odi to integrate data from two oracle database applications. I'm trying to integrate applications using JMS Queues (or Topics) and I failed to create odi "data server" for this technology. Can someone help me to do this or give me a sample to follow it?
    thanks.

    Hi there,
    You can actually create 2 different types of connections to a JMS Queue or Topic. Flat or XML. The simplest to start with is flat. This will basically cause ODI to view the contents of the queue as simple flat file data. Note, this is a bit advanced use of ODI, so I would perhaps go through connecting to an RDBMS first before walking through this. It will make more sense.
    To set this up, you will need to:
    1. Copy the necessary client files from OC4J, place them in the <ODI_HOME>/oracledi/drivers directory and restart ODI. The files you need are:
    - <OC4J_HOME>/j2ee/home/oc4jclient.jar
    - <OC4J_HOME>/j2ee/home/lib/javax77.jar
    - <OC4J_HOME>/j2ee/home/lib/jta.jar
    Sop copy those files and restart ODI.
    2. Create a physical connection (Topology Application/Physical Architecture/Technologies -> right click JMS Queues and select "Insert Data Server")
    3. In the Description tab, simpl fill in the Name field.
    4. In the JNDI tab , fille in the following:
    - JNDI Authentication - Simple
    - JNDI User: application user - this is the equivalent of javax.naming.Context.SECURITY_PRINCIPAL
    - Password: application password - this is the equivalent of javax.naming.Context.SECURITY_CREDENTIALS
    - JNDI Driver: This is the equivalent of javax.naming.Context.INITIAL_CONTEXT_FACTORY, so enter com.evermind.server.rmi.RMIInitialContextFactory
    - JNDI Url: This is the equivalent of javax.naming.Context.PROVIDER_URL, so put in ormi://<hostname>[:<port>]/<application>. For instance, with the basic OC4J install, I put in ormi://localhost/default.
    - JNDI Resource: This is the JNDI lookup key for your Queue Connection factory. For example, for the default OC4J installation, I put in jms/QueueConnectionFactory
    5. Click the Test button and click OK in the window that pops up. You should get a message box saying that your connection was successful.
    6. Click Apply or OK and a new window will pop up. In this window, go to the Context tab and click the Add button and in the row that appears, click on the right most field (it says <Undefined> and replace <undefined> with a logical name for your connection. Hit Enter and click OK)
    7. You've now connected to the Queue, to create the Queue object in ODI, go to the Designer window, go to models and create a new model.
    8. Set the name to whatever makes sense to you. Set the technology to JMS Queue and the Logical Schema to the logical connection name you created in step 6. In the Reverse tab, select Global from the Context dropdown menu.
    9. Click OK. You now have a container for any Queues that are in this connection.
    10. To point to the queue, right click your new model and select Insert Datastore.
    11. In the new window, name your datastore whatever you'd like. Set the resource name to the JNDI resource name for the queue (for example, with the default OC4J configuration, you could set this to jms/demoQueue.
    12. In the Files tab, set the File Format to fixed, and set the record separator to Windows or Unix (it doesn't really matter which one you pick)
    13. In the Columns tab, click the add button to add a column. Name the column something like DATA and set is to a String of size 1000.
    14. Click OK. You'll now be able to right click this new datastore and view data, granted in a very simple format. You can create a more complex flat file structure if you' like but this gives you a quick and easy to view the contents of the queue.
    I'd suggest trying to connect this way, post if you were successful and I will then post how to connect to an XML structured queue (it's a little teenie bit different)

  • Read message synchronously from JMS queue using OSB

    Hi,
    Is it possible to read message from the JMS queue using OSB based on the request invocation. I know messages can be read from the queue but it will be polling based.
    The requirement is to have an OSB proxy service (HTTP service ) an an interface to the client application. Client application invokes the proxy service and the proxy service need to read message from the JMS queue and provide the message as response to the client.
    Let me know if there are any pointers.
    Thanks
    Sandeep

    Hi,
    I spent some time trying to do this and apart from creating custom database tables etc. I was not able to achieve this.
    We wanted to use in memory JMS queues in our situation.
    In the end we developed a Java Web Service which preformed the on-demand read from the queue (using a particular message selector)
    This is working for us without a problem
    Robert

  • JMS Queue - lookup error

    Hi All,
    I have created a queue 'JMSTestQueue' through the Visual Administrator/ JMS Provider.
    I have also created an MDB in which the ejb-j2ee-engine.xml contains a parameter as
    <destination-name>JMSTestQueue</destination-name>
    Now, when I try to deploy my MDB I get an exception saying
    that
    javax.resource.spi.UnavailableException: The destination JMSTestQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/JMSTestQueue.
    Now here I can't understand that why the container is making a lookup in the path jms_vendor_queues_global.
    Because the JMS queue I have created has the JNDI path as
    jmsqueues/default/JMSTestQueue
    Another twist to the tale is that when I use the default JMS queue by the name 'JobQueue', then the MDB is deployed succesfully. This means the 'lookup' is successful.
    How do I solve this issue? I want to use a new JMS Queue with my MDB.
    I'll be really grateful, if someone can help me out.
    Thanks and Regards,
    Gagan Parhar.

    Hi All,
    I have created a queue 'JMSTestQueue' through the Visual Administrator/ JMS Provider.
    I have also created an MDB in which the ejb-j2ee-engine.xml contains a parameter as
    <destination-name>JMSTestQueue</destination-name>
    Now, when I try to deploy my MDB I get an exception saying
    that
    javax.resource.spi.UnavailableException: The destination JMSTestQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/JMSTestQueue.
    Now here I can't understand that why the container is making a lookup in the path jms_vendor_queues_global.
    Because the JMS queue I have created has the JNDI path as
    jmsqueues/default/JMSTestQueue
    Another twist to the tale is that when I use the default JMS queue by the name 'JobQueue', then the MDB is deployed succesfully. This means the 'lookup' is successful.
    How do I solve this issue? I want to use a new JMS Queue with my MDB.
    I'll be really grateful, if someone can help me out.
    Thanks and Regards,
    Gagan Parhar.

  • MDB in a Cluster using Local JMS Queue (not distributed)

              Can I create a MDB that receives messages from a Local JMS Queue (created on each
              node) rather than a distributed queue?
              When I try to deploy such an MDB I get the following exception:
              weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
              activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster Error: Exception
              activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable to deploy
              EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable to create
              EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
              at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
              at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
              at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
              at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
              at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
              at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
              at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
              at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
              at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
              at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
              at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
              at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
              at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
              at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
              at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327) at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
              at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
              at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
              at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
              at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
              at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
              at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
              at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
              at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              Is there any way to do this?
              

    I assume you are using queues.
              I truly wonder what you are doing different. Since the
              error is occuring outside of JMS and in the EJB - before JMS is called -
              I suggest posting to the ejb newsgroup.
              Note that yours is a standard use case which distributed destinations
              are actually specifically designed for (if you
              are using customer connection factories, just
              make sure ServerAffinity is enabled on the connection factory to
              ensure that clients always connect to the local physical destination,
              configure the MDB to refer to the JNDI name of the distributed
              destination, and then target the MDB to the cluster - an MDB pool
              will then automatically be dedicated to each physical destination).
              Tom
              Mark Colwell wrote:
              > Nope. It happens every time we try the scenario no matter what the application
              > is or which cluster. It always happens if we try to deploy even just a single
              > MDB (no other beans in the jar) to a cluster where the queue specified in the
              > deployment descripter is a local queue created on each node in the cluster. When
              > the jar is deployed we get the error.
              >
              > We have a strange situation were we really need the queue to be local and not
              > distributed but existing on every node. We can create all the local queues no
              > problem but trying to then deploy the application goes boom.
              >
              > Thanks for the response!
              >
              > Cheers,
              > Mark
              >
              > Tom Barnes <[email protected].bea.com>
              > wrote:
              >
              >>Mark Colwell wrote:
              >>
              >>
              >>>Can I create a MDB that receives messages from a Local JMS Queue (created
              >>
              >>on each
              >>
              >>>node) rather than a distributed queue?
              >>
              >>Yes. In fact this is the most common use case.
              >>
              >>
              >>>When I try to deploy such an MDB I get the following exception:
              >>
              >>I don't recall seeing this exception before. It looks like a naming
              >>conflict - it appears that somehow something is already running with
              >>the same name. Are you somehow deploying the same app twice?
              >>
              >>javax.management.InstanceAlreadyExistsException:
              >>mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,
              >>EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,
              >>Location=Node2,
              >>Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,
              >>ServerRuntime=Node2,
              >>Type=MessageDrivenEJBRuntime
              >>
              >>FYI: As of one or two weeks ago, the MDB section of the
              >>EJB docs has been heavily updated. I highly recommend
              >>reading it.
              >>
              >>
              >>>weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
              >>>activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster
              >>
              >>Error: Exception
              >>
              >>>activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable
              >>
              >>to deploy
              >>
              >>>EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable
              >>
              >>to create
              >>
              >>>EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
              >>>at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
              >>>at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
              >>>at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
              >>>at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
              >>>at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
              >>>at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
              >>>at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
              >>>at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327)
              >>
              >>at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
              >>
              >>>at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
              >>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
              >>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
              >>>at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
              >>>at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
              >>>at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at
              >>
              >>weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              >>
              >>>Is there any way to do this?
              >>
              >
              

  • Why does BEA recommend not using JMS-backed webservices?

    Hi,
    I guess the title says it all. In WebLogic 8.1, I noticed a couple of times
    in the docs they say things like:
    " BEA recommends that you implement your Web Service operation with only a
    stateless session EJB or a Java class, and not with a JMS consumer or
    producer. ".
    Yet no explanation is given. Can anybody tell me why BEA doesn't recommend
    them?
    Thanks
    Jon

    Couple of reasons:
    1. JAX-RPC or JSR-109 (J2EE 1.4) do not cover
    JMS queues as backend component.
    2. It is pretty easy to write a java class or SLSB that
    looks up the queue and post data to it.
    3. Queue based web services typically expose one
    method in wsdl: post(Object data). Once the queue
    is wrapped, the service can have explicit contract:
    like sendMeDoc( Foo foo)
    Regards,
    -manoj
    http://manojc.com
    "Jon Mountjoy" <[email protected]> wrote in message
    news:[email protected]..
    Hi,
    I guess the title says it all. In WebLogic 8.1, I noticed a couple oftimes
    in the docs they say things like:
    " BEA recommends that you implement your Web Service operation with only a
    stateless session EJB or a Java class, and not with a JMS consumer or
    producer. ".
    Yet no explanation is given. Can anybody tell me why BEA doesn'trecommend
    them?
    Thanks
    Jon

  • Need to publish message from database to a JMS Queue using Java

    I need to publish messages to a Websphere JMS Queue whenever any changes happen on a particular column of a table in oracle 11g. For that I have written a trigger on that particular table which in turn will invoke one java procedure. I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class. Can anyone help me on this.

    Welcome to the forum!
    >
    I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class.
    >
    Clarify your statement. First you say 'standalone java class' but then you talk about instantiating java 'classes' and referencing 'different jar files'. If you are executing your Java class inside Oracle then any Java classes that your java class is referencing also have to be loaded into Oracle or it won't be able to reference or execute them.
    How do you plan to ' publish messages to a Websphere JMS Queue '? Where is this queue you are talking about?
    Why are you using a Java procedure and class instead of PL/SQL?
    What is your 4 digit Oracle version (result of SELECT * FROM V$VERSION)?

  • Why to use JMS????

    Hi All,
    i am new to JMS, can any body tell me Why to use JMS??
    i know it used to send message but for why???
    if u answer me with an example it will be useful for me.
    thanks in advance.

    Hi,
    Well one very good reason to use JMS is to keep applications that produce information decoupled from applications that consume information. With this decoupled approach, you can any number of producers and consumers sending and processing information...thus making your solution very scalable.
    If you think of an online ordering system. A user plugs in a bunch of information about a product they wish to order. Once the form is completed, they hit the submit button. Now you can take one of two approaches:
    1. You can have an Enterprise Java Bean ( EJB ) service the order request. That EJB could then communicate with other EJBs within an inventory system to perform a bunch of checks and eventually hand it off to the appropriate system to fulfill the order. From the user's perspective, they are going to have to wait until all of that processing has completed before they can move on. Not a very nice situation. There is a potential that the user could be sitting on their order screen for mintues!!
    2. The other approach is to wrap all of the information supplied on the order form into a JMS message and forward the message to an appropriate Topic or Queue. On the other side of that Topic or Queue an inventory system subscribes for order messages. The nice thing about this approach: as soon as the message is sent off to the Topic or Queue, the user regains control of the screen and can continue browsing. Another benefit, you can have multiple consumers processing orders.
    I apologize for the length of the response. These are only two benefits of using a Messaging-based approach....there are many, many more.
    Regards,
    J.

  • Connecting to third party JMS Queue using Patchbay

    Hi All,
    We are trying to connect to a third party JMS queue configured in a remote weblogic server using ATG patcbay. We have configured the provider in dynamoMessagingSystem.xml and created a InitialContextFactory and provided all the queue configurations.
    When it tries to initializes it is trying to create a dynamic queue and saying that JMSHelper class is not configured so that it cannot create the queue (The queue exists in the remote server). When we given configurations based on the details available under C:\ATG\ATG10.0.3\WebLogic\JMSProvider, it is saying that we have to provide a TopicConnectionFactory (We dont need to use any Topics). If we provide TopicConnectionFactory then it will say that your connection factory don't have any Topics configured.
    I have read that for configuring with your application server's queue, this will try creating dynamic queues, but nowhere it is mentioned that how it will differentiate it is a third party queue or an application server queue.
    In our case the application server and the remote server which acts as queue server are Weblogic.
    Not sure why this is behaving like this and there is no proper documentation available in ATG that how to configure the third party queues using Patchbay.
    Any pointers regarding this would be of great help.
    Thanks,
    R.

    Hello kilgores. Welcome to the Apple Discussions!
    Something to ask your IT staff is if they use a proxy server for Internet access. If so, do they require proxy configuration scripts (.pac) to provide access to the Internet through your company's firewall. This information would normally be added to your browser's settings.
    For Safari: Preferences... > Advanced > Proxies > Change Settings... > Automatic Proxy Configuration

  • How to read the messages in the JMS Queue using JMX

    Hi,
              I want to read messages in the JMS queue using JMX. I was able to read using QueueBrowser but want to modify priority of the messages using JMX.
              I tried to use JMSDestinationRuntimeMBean but it does not allow us to read messages unless we pass the message Id. Is there any way that I can get all the messages in the queue.
              I am using Weblogic 8.1 SP4
              Can someone please help me in this regard.
              Thanks,
              Kiran.
              Edited by KGudipati at 10/22/2007 1:22 AM

    Hi,
    As far as i know, JMS Object Messages is not supported by XI JMS adapter.
    you need to have the JMS provider to transform the message to bytes messages.
    (Refer to SAP note 856346)

  • JMS Queue Works in JDeveloper 10g, but not in Oracle 10g AS

    Hello --
    I have set up a JMS Queue on my local OC4J included with JDeveloper. I added my ConnectionQueueFactory and ConnectionQueue to the JMS.XML file in my environment. Everything works the way it should using JDeveloper with the embedded OC4J.
    As soon as I deploy the application to Oracle Application Server, for some reason my MailSender Message Driven Bean cannot take delivery of the message. I don't know what I could be doing wrong but my JMS.XML file on the Application Server has been updated with the same ConnectionQueue information that is on my local JMS.XML file. In my log file I can see that the message is being posted to the queue, just no delivery.
    If anyone out there has a suggestion I would appreciate it. This is my first attempt at ever using JMS.
    Thanks,
    Frank

    Willy_B wrote:
    I removed the one that was listed, thinking that it was implicit to that line. BUT of course, I just went back and removed EVERY empty line, even between the comments and all...and it worked.
    So the lesson here is that PL/SQL could care less about white space, but SQLPlus is picky....
    Thanks. :)Exactly. And I have to make note of that in my written procedure for restoring some of our test databases from a cold backup of production. Turns out the control file trace script (backup controlfile to trace) inserts a blank line ... then sqlplus chokes on it when executing ..

  • Using JNDI Provider for Oracle JMS Queue

    Hello,
    I created a JMS Queue in Oracle 9.2.0.1 and would like
    a Java client to receive events from the Queue. I am
    not running Oracle9iAS. I have access to WebLogic server
    7.0 which is also a JNDI provider. Is there a sample code
    that shows the steps on how to go about this.
    thanks very much for any pointers.

    To define an Enterprise Message Source for AS JMS and OJMS in BAM, see Chapter 3 in the BAM Architect's User Guide.
    Specifying Settings for Oracle (AS JMS and OJMS)
    Settings for Oracle (AS JMS and OJMS) include:
    ■ Initial Context Factory.
    For 10.1.3: oracle.j2ee.rmi.RMIInitialContextFactory
    For 10.1.2: com.evermind.server.rmi.RMIInitialContextFactory
    ■ JNDI Service Provider URL. For standalone use oc4j: ormi://machine_name/
    where machine_name is the OC4J installed host, and for production use Application Server: opmn:ormi://<machine_name>:<opmn request port>:home where machine_name is the application server installed host, opmn request port could be found from looking at opmn.xml in <App server install location>/opmn/conf
    ■ TopicConnectionFactory Name.
    java:comp/resource/BAMTTT/TopicConnectionFactories/bam_ttq_tab
    ■ Topic Name. java:comp/resource/BAMTTT/Topics/bam_ttq
    ■ JMS Message Type. TextMessage.
    ■ Durable Subscriber Name. BAMFilteredSubscription
    ■ Message Selector. Message selector, for example, BAMFilter='true'
    ■ Client ID. ClientID
    You can also refer to:
    http://www.oracle.com/technology/products/integration/bam/10.1.3/TechNotes/TechNote_BAM_AQ_Configuration.pdf
    Regards, Stephen

  • Message posted from BPEL not found in oc4j JMS queue

    Hi,
    I am facing a weird problem when I try to post a message in oc4j JMS from a BPEL process.
    There is no exception(Not even in the logs) and the BPEL process gets completed. But the message is missing(Could not find it while monitoring the queue).
    I am using SOA suite 10.1.3.5 and the oc4j JMS queue which comes with the installation.
    Can someone help me please.
    Saptarishi
    Edited by: saptarishi on May 25, 2010 3:51 PM

    Got a solution.

  • Weblogic 10.3 Not Removing Expired Messages from JMS Queues

    Dear All,
    We have an application that is running on Weblogic 10.3.
    This application (let us call this application Y) receives messages on a JMS queue. These messages are placed on the queue by another application (let us call this application X). We would like to have these messages expire within a certain amount of time (i.e. 90000 ms) if they are not consumed.
    Now when application X places the messages onto the queue for application Y to consume, the JMS producer sets the time to live to 90000 ms. We can see that expiration time has been set appropriately in the weblogic console. If a message sits on the queue for longer than 90000 ms the state string of the message is changed to "receive expired". What we don't understand is why the expired messages still end up being consumed from the queue.
    We understand that Weblogic is supposed to have an 'Active Message Expiration' thread that will remove expired messages from the queue. The Expiration Scan Interval for the JMS Server is set to 30 (seconds).
    Can anyone tell us why our expired messages don't seem to be deleted from the queues?
    Tim

    Thank you for the response Rene.
    We have set up both the active expiration scan and the message expiration policy. The active expiration scan is set for every 30 seconds. The message expiration policy is set to "discard". However, the expired messages are still being consumed. Is it possible we are doing something wrong? See a portion of our configuration files below.
    We have set up the expiration scan time interval. See a portion of our config.xml below:
    <jms-server>
    <name>brokerJMSServer</name>
    <target>AdminServer</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <store-enabled>true</store-enabled>
    <allows-persistent-downgrade>false</allows-persistent-downgrade>
    <hosting-temporary-destinations>true</hosting-temporary-destinations>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
    <message-buffer-size>-1</message-buffer-size>
    *<expiration-scan-interval>30</expiration-scan-interval>*
    <production-paused-at-startup>false</production-paused-at-startup>
    <insertion-paused-at-startup>false</insertion-paused-at-startup>
    <consumption-paused-at-startup>false</consumption-paused-at-startup>
    </jms-server>
    <jms-system-resource>
    <name>broker-jms</name>
    <target>AdminServer</target>
    <sub-deployment>
    <name>EhrBrokerRequestQueue</name>
    <target>brokerJMSServer</target>
    </sub-deployment>
    <descriptor-file-name>jms/broker-jms.xml</descriptor-file-name>
    </jms-system-resource>
    <admin-server-name>AdminServer</admin-server-name>
    We have set up the message expiration policy in our jms descriptor. See a portion below:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-jms http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd">
    <queue name="EhrBrokerRequestQueue">
    <delivery-params-overrides>
    <redelivery-delay>-1</redelivery-delay>
    </delivery-params-overrides>
    <delivery-failure-params>
    <redelivery-limit>-1</redelivery-limit>
    *<expiration-policy>Discard</expiration-policy>*
    </delivery-failure-params>
    <jndi-name>EhrBrokerRequestQueue</jndi-name>
    </queue>
    </weblogic-jms>
    What could we be doing wrong?
    Kind Regards,
    Tim

Maybe you are looking for