Producing message to temporary JMS destination

Hi,
Has anyone managed to produce a message to a temporary JMS destination using the JMS Adapter? I'm trying to get this request/reply-pattern working:
-Java client connects to a Connection Factory and creates a temporary reply queue (works, CF returns a destination like "TestingJmsServer!TestingJmsServer.TemporaryQueue2")
-The client produces a message with JMSReplyTo pointing to the temporary reply queue (works)
-JMS Adapter consumes the message and assigns jca.jms.JMSDestinationName := jca.jms.JMSReplyTo (works)
-The JMS adapter should now produce the reply message to the provided temporary queue, but it always fails with error BEA-045101:
The destination name passed to createTopic or createQueue "destName" is invalid. If the destination name does not contain a "/" character then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character then the string before the "/" must be the name of a JMSServer or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WLS server will be returned.
The same problem occurs with fixed queues, like "TestingJmsModule!ReplyQueue", but I can make them work by adding a "./" in front of the destination name when performing the jca.jms.JMSDestinationName assign, so that it reads "./TestingJmsModule!ReplyQueue". After that the adapter is able to produce the message correctly to the given JMSDestinationName.
Is it significant that with fixed queues I get a destination like "JmsModule!FixedQueueName" (note the module) but with temporary destinations it is like "JmsServer!TempQueueName" (note the server)?
Should the destination name be of some other format? The current value is exactly what the Connection Factory returns, and if the JMS adapter is replaced with another java client, producing the reply message to that destination works just fine.
regards,
Ville

Hi,
I am trying to send messages to the WLS queue through Camel and facing the same issue, which can be eliminated by using queue name as ./<QUEUE_NAME>.
However it only eliminates the error and the next one comes is real pain. It is not able to find the JNDI name of the queue, where as I am able to see it in Admin console JNDI tree.
Exception in thread "Main Thread" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: Test Message: 0]
     at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1161)
     at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:512)
     at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:441)
     at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:437)
     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:125)
     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:130)
     at org.apache.camel.example.jmstofile.PublishMessage.main(PublishMessage.java:63)
Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
     at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
     at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
     at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
     at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:172)
     at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:347)
     at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:303)
     at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:101)
     at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
     at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
     at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
     at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:345)
     at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:317)
     at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:222)
     at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:317)
     at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:168)
     at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:110)
     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:123)
     ... 2 more
Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
     at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
     at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:61)
     at weblogic.jms.client.JMSSession.createDestination(JMSSession.java:3192)
     at weblogic.jms.client.JMSSession.createQueue(JMSSession.java:2577)
     at weblogic.jms.client.WLSessionImpl.createQueue(WLSessionImpl.java:938)
     at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveQueue(DynamicDestinationResolver.java:101)
     at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveDestinationName(DynamicDestinationResolver.java:66)
     at org.springframework.jms.support.destination.JmsDestinationAccessor.resolveDestinationName(JmsDestinationAccessor.java:100)
     at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$200(JmsConfiguration.java:141)
     at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:174)
     at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
     ... 17 more
Anyone has got any idea?

Similar Messages

  • Recall a message from the JMS destination

    We are sending messages to a queue, using IBM MQ Series for messaging and JMS as the messaging system.
    Could you please let me know, if there is a way we can recall messages sent to the queue?
    Thanks,
    Jayashree.

    Are you using session or transactions?
    If yes, you can do rollback.(I hope thats what you are looking for).
    If you are looking for a way to get the message from the queue without
    removing it, why not write a client code for that.

  • Error using MQ (produce message)

    Hi,
    I am getting this error when trying to produce message to MQ jms queue
    MQRC_RFH_ERROR
    this means that the message is created in RFH format (i have no idea what it means).
    How can I control this throuhg the JMS adapter.
    I have tried both "Messge Body types"
    Amit

    If after changing the technology it's still not correct, try to configure your connection in ODIPARAMS.bat or in snps_login_security.xml or snps_login_work.xml.
    It could come from bad connection to your repositories configuration.
    Regards
    Brice

  • [svn] 977: Bug: BLZ-93 - When a producer sends a message to a secure destination with no credentials it causes a security exception to get logged with a log level of error .

    Revision: 977
    Author: [email protected]
    Date: 2008-03-27 17:04:59 -0700 (Thu, 27 Mar 2008)
    Log Message:
    Bug: BLZ-93 - When a producer sends a message to a secure destination with no credentials it causes a security exception to get logged with a log level of error.
    QA: Yes
    Doc: No
    Details:
    Updates to catch-all exception logging hinge points on the server to use a new method on MessageException that protects against repeat logging of the same exception as we unwind the call stack on the server, as well as allowing exception subclasses to control the log level, intro text and inclusion of a full stack trace in the logged output. This allows things like SecurityExceptions, which represent common errors like incorrect user credentials, to avoid polluting the log with error-level logging and stack traces. It also consolidates our catch-all handling for MessageExceptions and their subclasses in a single point, avoiding problems with needing to make updates or tweaks to our logging output in multiple places.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-93
    Modified Paths:
    blazeds/branches/3.0.x/modules/common/src/java/flex/messaging/log/Log.java
    blazeds/branches/3.0.x/modules/common/src/java/flex/messaging/util/ExceptionUtil.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/MessageBroker.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/MessageException.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/endpoints/amf/MessageBrokerFi lter.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/endpoints/amf/SuspendableMess ageBrokerFilter.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/security/SecurityException.ja va
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/ServiceException.jav a

    One thing I forgot to add, which may be causing you
    problems: the "mount volume" command is not part of
    the Finder dictionary. It stands alone.
    bill
      Mac OS X
    (10.4.10)   1 GHz Powerbook G4
    I tried the mount command. After executing it in Script Editor, I was prompted with login and password, but it was my Keychain!
    I don't know if you have your keychain unlocked or what else..
    Maybe the original poster (Rick Anderson) has his keychain locked and the prompt is from it.
    Just a guess...
    Ciao,
    Ermanno
    Dual 2 GHz PowerPC G5   Mac OS X (10.4.9)   4.5 GBy SDRAM, 5 external FW disks, 2 Internal SATA disks

  • Cannot receive message on temporary queue

    I am executing the following code in a web application.
              It is sending a message to a JMS queue. The MDB
              listening to that queue processes the message
              and posts a reply to the temporary queue specified in
              the JMS Reply to field. The queue browser code below
              shows that the message is in the queue, but the receive
              times out and returns null. My question is why can't the
              receiver get the message?
              Am I missing something?
              Thanks in advance,
              -Doug.
              =====WEBAPP SIDE===========
              QueueConnection connection = null;
              QueueSession session = null;
              QueueSender sender = null;
              QueueReceiver receiver = null;
              Queue respQueue = null;
              try
              connection = QUEUE_CON_FACTORY.createQueueConnection();
              connection.start();
              session = connection.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
              TextMessage textMessage = session.createTextMessage();
              textMessage.setText(xmlInput);
              if (wait)
              respQueue = session.createTemporaryQueue();
              textMessage.setJMSReplyTo(respQueue);
              receiver = session.createReceiver(respQueue);
              sender = session.createSender(INPUT_QUEUE);
              sender.send(textMessage);
              if (wait)
              QueueBrowser qB = session.createBrowser(respQueue);
              Enumeration enum = qB.getEnumeration();
              while (enum.hasMoreElements())
              Message msg = (Message) enum.nextElement();
              LOG.debug("msg = " + msg);
              return ((TextMessage) receiver.receive(10000)).getText();
              return DEFAULT_RESPONSE;
              =======MDB side============
              QueueConnection queueConnection = QUEUE_CON_FACTORY.createQueueConnection();
              queueConnection.start();
              QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              TextMessage textMsg = queueSession.createTextMessage();
              textMsg.setText(buffer.toString());
              QueueSender queueSender = queueSession.createSender((Queue)getReplyDestination());
              queueSender.send(textMsg);
              queueSender.close();
              QueueBrowser qB = queueSession.createBrowser((Queue)bpelCtx.getReplyDestination());
              Enumeration enum = qB.getEnumeration();
              while (enum.hasMoreElements())
              Message msg = (Message) enum.nextElement();
              LOG.debug("msg = " + msg);
              queueSession.close();
              queueConnection.close();
              ==== LOG ====
              [DEBUG] 2006-01-16 14:51:17,780 MDB - msg = TextMessage[ID:N<192225.1137444677780.0>, <unique-id-response xmlns
              ="htt...]
              [DEBUG] 2006-01-16 14:51:27,374 WEBAPP -
              msg = TextMessage[ID:N<192225.1137444677780.0>, <unique-id-response xmlns="htt..
              .]

    At first glance, this looks like a standard design to me. Does the same problem occur when there are no browsers?
              Tom
              (Performance note: It is quite CPU-intensive to continually create and close connections/temporary destinations/sessions/consumers/producers. Cache and/or pool them for re-use when possible. Use a cached anonymous producer on the MDB for sending replies [pass null for the dest when creating it, and specify the dest as a send parameter].)

  • How to insert message in OC4J JMS from standalone java client.

    Hi,
    I have been following available examples for creating standalone java clients to insert messages in JMS queues.
    I am able to insert using java client when the SOA suite and the standalone java code are on same machine.
    package producerconsumerinjava;
    import javax.jms.*;
    import javax.naming.*;
    import java.util.Hashtable;
    public class QueueProducer
    public static void main(String[] args)
    String queueName = "jms/demoQueue";
    String queueConnectionFactoryName = "jms/QueueConnectionFactory";
    Context jndiContext = null;
    QueueConnectionFactory queueConnectionFactory = null;
    QueueConnection queueConnection = null;
    QueueSession queueSession = null;
    Queue queue = null;
    QueueSender queueSender = null;
    TextMessage message = null;
    int noMessages = 5;
    * Set the environment for a connection to the OC4J instance
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory");
    env.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");
    env.put(Context.SECURITY_CREDENTIALS, "mypass");
    env.put(Context.PROVIDER_URL,"ormi://myserver.company.com:12402"); //12402 is the rmi port
    * Set the Context Object.
    * Lookup the Queue Connection Factory.
    * Lookup the JMS Destination.
    try
    jndiContext = new InitialContext(env);
    queueConnectionFactory =
    (QueueConnectionFactory) jndiContext.lookup(queueConnectionFactoryName);
    queue = (Queue) jndiContext.lookup(queueName);
    catch (NamingException e)
    System.out.println("JNDI lookup failed: " + e.toString());
    System.exit(1);
    * Create connection.
    * Create session from connection.
    * Create sender.
    * Create text message.
    * Send messages.
    * Send non text message to end text messages.
    * Close connection.
    try
    queueConnection = queueConnectionFactory.createQueueConnection();
    queueSession =
    queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    queueSender = queueSession.createSender(queue);
    message = queueSession.createTextMessage();
    for (int i = 0; i < noMessages; i++)
    message.setText("Message " + (i + 1));
    System.out.println("Producing message: " + message.getText());
    queueSender.send(message);
    queueSender.send(queueSession.createBytesMessage());
    catch (JMSException e)
    System.out.println("Exception occurred: " + e.toString());
    finally
    if (queueConnection != null)
    try
    queueConnection.close();
    catch (JMSException e)
    System.out.println("Closing error: " + e.toString());
    But when the SOA Suite is remote, I am struggling to get the settings correct
    Till now, here is what I have figured out from looking at blogs/tars etc on the Net:
    1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactory (http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13975/jndi.htm)
    2. The project should have a META-INF/application-client.xml file, which may be dummy (http://www.wever.org/java/space/Oracle/JmsTar1). Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.
    Errors:
    When trying to run exact same code on local server that tries to enqueue JMS on remotee serverer
    Exception occurred: javax.jms.JMSException: Unable to create a connection to "xxxxxxx.yyyyyy01.dev.com/10.42.456.11:12,602" as user "null".
    Any help is greatly welcome.
    As an exercise, I copied this complete code on the server and then ran locally using a telnet client...it worked. So the problem is coming when accessing the server remotely.
    Rgds,
    Amit

    1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactoryNot necessarily.
    2. The project should have a META-INF/application-client.xml fileThat's only necessary if going the ApplicationClientInitialContextFactory route.
    There are two types of JMS client applications you can write -- a pure/plain Java app, and an "AppClient". That first is your everyday run-of-the-mill Java application, nothing special. That latter is a special, complicated beast that tries to act as a part of the whole client/server/J2EE architecture which provides you with a semi-managed environment. Either can be made to work, but if all you need is JMS access (using plain OC4J JMS factory/queue names and not JMS Connector names), then the first is easier to get working (and performs a tiny bit better as well due to being a lighter-weight solution).
    I think the problem you are having might be: When you use the plain Java client solution, you do not have any type of management, and that includes user management. With no user management (and if the JMS server is not configured to allow anonymous connections) you need to include the username and password in the call to createConnection. (I think it may be that this is actually true in the AppClient case as well -- I avoid using the AppClient model as much as possible so my memory there is weaker.)
    If you prefer to go the AppClient route, I would point you to a demo I wrote which had a functioning example, but Oracle seems to have removed it (and all of the 10.1.3 demos?) from OTN. :-(
    Hmm, it seems to still be available on the wayback machine:
    http://web.archive.org/web/20061021064014/www.oracle.com/technology/tech/java/oc4j/1013/how_to/index.html
    (Just look down the page for "With OEMS JMS (In-Memory and File-Based)" -- there is an .html document with info, and there is a .zip file with source code.)
    Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.The app client in my demo had the following directory structure:
    myjavaclient.class
    jndi.properties
    META-INF\MANIFEST.MF
    META-INF\application-client.xml
    META-INF\orion-application-client.xml
    When you use ApplicationClientInitialContextFactory I think it just looks under .\META-INF for the .xml files.
    -Jeff

  • JMS destination and queue in jndi.properties

    I am using activemq to create a very simple jms application.
    But there is a point I have not understand.The administered connection factory object that I use is org.activemq.jndi.ActiveMQInitialContextFactory which is the ActiveMq specific object. Do I have to do the same with the destination object?I read that Destination is also an administered object so I have to use an object of the ActiveMq? Specifically in the jndi properties where I define the queue property the value must be:
    1.an activeMq object
    2.a java class that implements the javax.jsm.Queue interface
    3.a physical name of another server?
    and in the code where I look up the destination object
    Destination destination = (Destination) jndiContext.lookup(queueProp);What exactly will be the queueProp? I would appreciate an example
    Thanking you in advance.

    I've read the documentation but I am afraid I miss some points.
    First of all I use the following code from an example in the net where the <b> activemq.jar is >/b> used and the jndi.properties is not used at all and the following code is working:package jms;
    import org.activemq.ActiveMQConnectionFactory;
    import javax.jms.Connection;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.ExceptionListener;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    * Hello world!
    public class App {
        public static void main(String[] args) throws Exception {
            thread(new HelloWorldBroker(args), true);
            Thread.sleep(1000);
            thread(new HelloWorldProducer(), false);
            thread(new HelloWorldProducer(), false);
            thread(new HelloWorldConsumer(), false);
            Thread.sleep(1000);
            thread(new HelloWorldConsumer(), false);
                   Thread.sleep(1000);
            thread(new HelloWorldConsumer(), false);
            thread(new HelloWorldProducer(), false);
                    Thread.sleep(1000);
                 thread(new HelloWorldProducer(), false);
            thread(new HelloWorldConsumer(), false);
        public static void thread(Runnable runnable, boolean daemon) {
            Thread brokerThread = new Thread(runnable);
            brokerThread.setDaemon(daemon);
            brokerThread.start();
        public static class HelloWorldBroker implements Runnable {
            private final String[] args;
            public HelloWorldBroker(String[] args) {
                this.args = args;
            public void run() {
                org.activemq.broker.impl.Main.main(args);
        public static class HelloWorldProducer implements Runnable {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
                    // Create a MessageProducer from the Session to the Topic or Queue
                    MessageProducer producer = session.createProducer(destination);
                    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                    // Create a messages
                    String text = "Hello world! From: " + Thread.currentThread().getName() + " : " + this.hashCode();
                    TextMessage message = session.createTextMessage(text);
                    // Tell the producer to send the message
                    System.out.println("Sent message: "+ message.hashCode() + " : " + Thread.currentThread().getName());
                    producer.send(message);
                    // Clean up
                    session.close();
                    connection.close();
                catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
        public static class HelloWorldConsumer implements Runnable, ExceptionListener {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
                    connection.setExceptionListener(this);
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
                    // Create a MessageConsumer from the Session to the Topic or Queue
                    MessageConsumer consumer = session.createConsumer(destination);
                    // Wait for a message
                    Message message = consumer.receive(1000);
                    if (message instanceof TextMessage) {
                        TextMessage textMessage = (TextMessage) message;
                        String text = textMessage.getText();
                        System.out.println("Received: " + text);
                    } else {
                        System.out.println("Received: " + message);
                    consumer.close();
                    session.close();
                    connection.close();
                } catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
            public synchronized void onException(JMSException ex) {
                System.out.println("JMS Exception occured.  Shutting down client.");
    }But I want to make it work with jndi.properties.
    So I am trying to use a code where connectionFactory and Destination are loaded from the jndi properties.After experimenting with code
    the following is working
         try {
                   connectionFactory = (ConnectionFactory) jndiContext.lookup("connectionFactory");               
                  Destination destination = (Destination) jndiContext.lookup("QUEUE/MYQUEUE");        
              Connection connection = connectionFactory.createConnection();
              Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);if only I go to the activeqm/bin folder and open the broker.If I did that in the previous code(with no jndi prop)
    there was an exception that was saying that the port was already used.So I do not understand why in the one case opening broker is necessary for the connection and on the other hand it causes a problem.
    Moreover in the case that I invoke broker from bin folder. In this case I would like to ask a question.The activemq.xml is necessary? If yes it is there where we define the queue?
    If not where else apart from the jndi.properties do we define queue?
    Please if is possible provide me with an example of the necessary places that we define a queue.
    Thank you

  • AQJMSMDBEJB is unable to connect to the JMS destination

    I am trying to integrate WebLogic 8.1 MDB and Oracle 9i AQ using a start-up class that creates XAConnection and Queue. However, I'm currently getting this error and I'm not sure what I need to do.
    <The Message-Driven EJB: AQJMSMDBEJB is unable to connect to
    the JMS destination: AQJMSQueue. The Error was:
    oracle.jms.AQjmsException: JMS-137: Payload factory must be specified for destinations with ADT payloads
    oracle.jms.AQjmsException: JMS-137: Payload factory must be specified for destinations with ADT payloads
    at oracle.jms.AQjmsError.throwEx(AQjmsError.java:266)
    at oracle.jms.AQjmsConsumer.<init>(AQjmsConsumer.java:326)
    at oracle.jms.AQjmsConsumer.<init>(AQjmsConsumer.java:196)
    at oracle.jms.AQjmsSession.createReceiver(AQjmsSession.java:1415)
    at oracle.jms.AQjmsSession.createReceiver(AQjmsSession.java:1386)
    at weblogic.deployment.jms.WrappedTransactionalSession_oracle_jms_AQjmsXAQueueSession.createReceiver(Unknown Sou
    rce)
    at weblogic.ejb20.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1609)
    at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:1844)
    at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:1087)
    at weblogic.ejb20.internal.JMSConnectionPoller.trigger(JMSConnectionPoller.java:970)
    at weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:243)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:229)
    at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:223)
    at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:50)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    >

    1. Security:
    Perhaps you need to check the security configuration for the queue (Q) to ensure it matches the MDB (M) security parameters.
    Q:
    Weblogic Security Realms: User/Group
    JMSModule Security: Role/Group , Policy: Role
    M:
    MDB: MDBRole/Principal (User) in weblogic-ejb-jar.xml
    2. Double check that the queue created in weblogic
    3. Test your queue (manually create a new message using weblogic console) or observe unconsumed messages (if producer has run and placed messages)
    Carlos

  • Reading Message from Foreign JMS Queue in SOA Suite 11g.

    Hi,
    I am trying to read a JMS message that has been put into a JMS Queue on a remote weblogic Server.
    The steps that I know is that I need to create a foreign JMS Server and then probably use JMS Adapter to subscribe to the message that is lying in the remote queue.
    Has anybody been able to achieve this kind of scenario working for a remote JMS queue? Also, is this supported by JMS Adapter in SOA11g?
    Any help will be appreciated.
    Regards,
    Varun Maheshwari

    Hi Atheek1,
    Thanks for your reply.
    The confusion that is pondering me is that do I need to create a Foreign JMS Server or should I create a JMS adapter and override the properties.
    I have tried the steps for creating a Foreign Server from the below link
    Unable to access remote JMS Queue through JMS Adapter
    But I am not able to find the Foreign Server created and any connection factories and Destinations related to foreign Server in my JMS Destination while configuring JMS Adapter.
    I am not sure how to do step2 as entailed by you.
    Could you please explain me in little detail on how to do this or redirect me to some blog or forum which will be really helpful.
    Cheers,
    Varun

  • JMS Destination object not found

    Hi everyone,
    I have a weird problem with SunONE Message Queue 3.
    I have a queue and a connection factory defined (using the SunONE Application Server 7 Admin Console) as well as a physical resource.
    I can verify their existance using asadmin....
    asadmin>list-jmsdest -u admin server1
    queue_1 queue {}
    asadmin>list-jms-resources -u admin server1
    jms/newqueue_1
    jms/newQCF_1
    When I attempt to deploy a message driven EJB I get the following error
    SEVERE ( 1484): javax.naming.InvalidNameException: JMS Destination object not found:`jms/newqueue_1`
    This question has already been asked on the App Server board here http://swforum.sun.com/jive/thread.jspa?threadID=15517&tstart=0 (that post is nine months old btw).
    I am posting this here in the hope that someone more familiar with MQ3 may have an idea of how to help us.
    Thanks in advance.

    I have now solved this problem. External JNDI resources are required in the AppServer.
    They can be created with the following commands:
    asadmin>create-jndi-resource jndilookupname jms/newQCF_1 resourcetype javax.jms.QueueConnectionFactory factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi:java.naming.security.authentication=none newQCF_1
    asadmin>create-jndi-resource jndilookupname jms/queue_1 resourcetype javax.jms.Queue factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi newqueue_1
    Both these commands assume that the file system context is being used however the LDAP commands are similar (just more properties).
    This step, which seems vital, is missing from the AppServer documentation (in fact it specifically states that this step is not necessary). The irony is that I found the answer in the IBM MQ documentation!

  • Additional JMS Destination Attributes

    How can I associate additional attributes to an Administered Object in
              JNDI? Specifically, I want to add a JMS Destination (Queue) to the
              JNDI context. I want the Queue to also have 2 additional attributes
              for my application to process. The additional attributes I need to
              associate with the Administered Queue Object are: Reply-To-Queue and a
              boolean value (log message or don't log message).
              I went into the JNDI namespace (iPlanet Directory Server in this
              case), and manually added additional attributes in the
              javaReferenceAddress. The JMS API did not choke on this, but I can't
              figure out a way to expose this either.
              

    I found that if I in the JMS receiver queue tick Specify Additional JMS Message Properties (Maximum of 10) and provide the name JMSReplyTo and the value Sting I can collect the ReplyTo queue name via a parameter in the operation mapping and the value of that parameter I can set to the Dynamic Configuration variable DCJMSMessageProperty0 in a UDF like this:
    String x = container.getInputParameters().getString("replyToQueueName");
    DynamicConfiguration conf1 = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION) ;
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSMessageProperty0") ;
    conf1.put(key1, x);
    return "";

  • JMS Destinations in a cluster

    I'm having a problem getting managed nodes in a cluster to find JMS Queues
              and Topics.
              The Connection Factory is found, but the destinations are not.
              I have targeted the JMS Server to one node in the cluster.
              I have targeted the Connection Factories to the cluster.
              Is there something else that needs to be done to get the destinations
              available to the cluster?
              When I view the JNDI tree of the slave nodes, the destinations just are not
              there. I wait and wait and they don't show up.
              A.M.
              

    I have a question that relates to this discussion.
              When I deploy a topic on a cluster I am only allowed to deploy it on one
              JMSServer. Trying to deploy it on more than one gives me a JNDI error
              (duplicate name). This works fine, however, and messages are delivered to
              all members of the cluster. But if I kill off the server where the
              destination topic exists, that topic disappears from the cluster and further
              messages cannot be delivered. Weblogic tells me that the topic does not
              exist. My question is - how do I get the topic to survive the failure of
              the server on which it is deployed? Why doesn't replication keep the topic
              alive?
              "Tom Barnes" <[email protected]> wrote in message
              news:[email protected]...
              > Note that the admin server does not participate in the cluster so
              > it doesn't participate in JNDI replication. If JMS destinations
              > exist on the admin server one must use a JNDI context
              > that is pinned to the admin server to find them... Same deal
              > with connection factories that can talk to the admin server.
              >
              > Zach wrote:
              >
              > > Could you please post your config.xml file (the one that doesn't
              > > work where the JMS server is deployed to the admin server).
              > > _sjz.
              > >
              > > "Asynch Messaging" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > I found that we were attempting to deploy the JMS Server to the
              'admin'
              > > > server, rather than a managed server.
              > > > This apparently is not allowed.
              > > >
              > > > A.M.
              > > >
              > > > "Asynch Messaging" <[email protected]> wrote in message
              > > > news:[email protected]...
              > > > > I'm having a problem getting managed nodes in a cluster to find JMS
              > > Queues
              > > > > and Topics.
              > > > > The Connection Factory is found, but the destinations are not.
              > > > >
              > > > > I have targeted the JMS Server to one node in the cluster.
              > > > > I have targeted the Connection Factories to the cluster.
              > > > >
              > > > > Is there something else that needs to be done to get the
              destinations
              > > > > available to the cluster?
              > > > > When I view the JNDI tree of the slave nodes, the destinations just
              are
              > > > not
              > > > > there. I wait and wait and they don't show up.
              > > > >
              > > > > A.M.
              > > > >
              > > > >
              > > > >
              > > >
              > > >
              >
              

  • [svn] 2692: Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out .

    Revision: 2692
    Author: [email protected]
    Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
    Log Message:
    Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
    QA: Yes
    Doc: No
    Checkintests: Pass
    Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-227
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
    blazeds/branches/3.0.x/qa/build.xml

    Revision: 2692
    Author: [email protected]
    Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
    Log Message:
    Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
    QA: Yes
    Doc: No
    Checkintests: Pass
    Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-227
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
    blazeds/branches/3.0.x/qa/build.xml

  • Attributes  monitored in a JMS destination

              Hello
              I am using WLS 7.0, SP1. I was trying to locate the documentation for the different
              attributes which get monitored when I open the WLS console to monitor a queue.
              What is the difference between the following : " Messages"& "Messages Received".
              I also noticed that if the number of "messages received" as observed while "monitoring"
              the queue exceeds the "Messages Maximum" configured value, I do not get back any
              exception in my JMS client which is posting messages to this queue. Can someone
              explain this behaviour?
              Thanks
              Ramdas
              

              Ramdas
              Messages - represents the current number (CurrentCount) of messages in the destination.
              MessagesHighCount - This value represents the highest (peak) number of messages
              received received on that destination since the last boot.
              Messages Received Count - represents the maximum number of messages received
              by that queue since the last boot.
              Messages Maximum - represents the message "quota" on that destination, indicating,
              the maximum number of messages allowed to exisit in the queue at any given time.
              Same semantics applies for "Bytes" as well.
              Please take look at the following docs for more explanation.
              http://edocs.bea.com/wls/docs70/javadocs/index.html
              http://edocs.bea.com/wls/docs70/adminguide/jms.html#1044702
              Thanks
              "Ramdas Hegde" <[email protected]> wrote:
              >
              >Hello
              >
              >I am using WLS 7.0, SP1. I was trying to locate the documentation for
              >the different
              >attributes which get monitored when I open the WLS console to monitor
              >a queue.
              >What is the difference between the following : " Messages"& "Messages
              >Received".
              >I also noticed that if the number of "messages received" as observed
              >while "monitoring"
              >the queue exceeds the "Messages Maximum" configured value, I do not get
              >back any
              >exception in my JMS client which is posting messages to this queue.
              >Can someone
              >explain this behaviour?
              >
              >Thanks
              >
              >Ramdas
              

  • Distinguishing between messages in the error destination

    Hi,
              First of all, I'm using Weblogic 8.1 SP4.
              I recognize that messages are delivered to the error destination if one of two situations occur:
              1) The message has reached the redelivery limit.
              2) The message has expired.
              In my message-driven bean that picks up messages from the error destination, I need to know the reason why a message ended up there. That is, I need to know whether it was expired or the redelivery limit was reached.
              Is this possible?
              Thanks in advance!
              Henrik Oddershede

    The JMS chapter of the book "Professional Oracle WebLogic Server" has a nice discussion of poison message handling.
    In your case, I'd recommend adding code to your inbound queue processing application to detect bad format messages and automatically redirect them to a separate queue for manual intervention. This would avoid mixing up the bad format messages with your automatically handled problem messages. You could then write a specialized application that your administrator can use to process the messages.
    Tom

Maybe you are looking for

  • HT204406 help! cannot perform Itunes Match function

    I've owned a iMac for 2 years. Itunes match function used to perform correctly, until about a month ago. My softwares are up to date, including Lion I just installed successfully. Itunes version is the latest. When I try to perform Itunes match: Step

  • HT203128 no sound in iTunes 12.0.1.26

    Does anyone know why I can't get sound out of the new iTunes? My preferences are set to use the same audio interface I use for Logic, and LOgic works just fine - I can hear sound in my headphones and/or monitors. Using a MacBook Pro and OSX 10.8.5. T

  • Partial Update error / sample code

    Customer is trying to do Partial Update by refering the sample shown in PartialUpdatesGuide.pdf, however, baseline update is showing following error. Is there any sample code to do partial update with the actual success in some instance, or any resol

  • E-Recruiting - Candidate registration

    while testing the candidate registration servce (txn sicf) - after entering the details to register as an external candidate, upon saving i get what seems to be an error message - a red dot with an exclamiation mark and the numbers - " I:00:279 " Has

  • IChart Trend does not refresh when NULL returned

    I have a problem with an iChart displaying a trend. The chart receives data based on a selection from a dropdown box. Everything works fine as long as there is data, the trend updates correctly for the line selected from the dropdown. If, however, yo