Problem Configuring JMS Error Queue

Domain configuration : one adminServer, One cluster, 2 managedservers in cluster
Two distibuted Queues: InboundQueue, Error Queue
I want to redirect any bad message from InboundQueue to ErrorQueue and discard it.
It worked fine for 4 yrs in Wls 8.1 ( did configured in 8.1)..
now i upgrde to wls 10.1 and i did same configuration but InboundQueue is not redirecting to Errorqueue..
Dont know where i am missing..
here is the config.xml entry and jms/JmModule.xml files..
config.xml entry_
<jms-system-resource>
<name>JmsModule</name>
<target>cluster1</target>
<sub-deployment>
<name>subdeployment1</name>
<target>JmsServer1,JmsServer2</target>
</sub-deployment>
<descriptor-file-name>jms/JmsModule-jms.xml</descriptor-file-name>
</jms-system-resource>
JmsModule.xml_
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-jms xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd">
<uniform-distributed-queue name="ErrorQueue">
<sub-deployment-name>subdeployment1</sub-deployment-name>
<delivery-params-overrides>
<delivery-mode>Non-Persistent</delivery-mode>
<time-to-deliver>-1</time-to-deliver>
<time-to-live>-1</time-to-live>
<priority>-1</priority>
<redelivery-delay>-1</redelivery-delay>
</delivery-params-overrides>
<delivery-failure-params>
<redelivery-limit>0</redelivery-limit>
</delivery-failure-params>
<jndi-name>ErrorQueue</jndi-name>
<load-balancing-policy>Round-Robin</load-balancing-policy>
<forward-delay>-1</forward-delay>
</uniform-distributed-queue>
<uniform-distributed-queue name="InboundQueue">
<sub-deployment-name>subdeployment1</sub-deployment-name>
<delivery-params-overrides>
<delivery-mode>Persistent</delivery-mode>
<time-to-deliver>10</time-to-deliver>
<time-to-live>10</time-to-live>
<priority>2</priority>
<redelivery-delay>10</redelivery-delay>
</delivery-params-overrides>
<delivery-failure-params>
<error-destination>ErrorQueue</error-destination>
<redelivery-limit>1</redelivery-limit>
<expiration-policy>Redirect</expiration-policy>
</delivery-failure-params>
<jndi-name>InboundQueue</jndi-name>
<load-balancing-policy>Round-Robin</load-balancing-policy>
<forward-delay>10</forward-delay>
</uniform-distributed-queue>
</weblogic-jms>
Any help
Thanks
ksr

Are you still having a problem? If so, I recommend trying to simplify the reproducer by removing the "time-to-deliver", "redelivery-delay", and "time-to-live" settings.
<time-to-deliver>10</time-to-deliver>
<time-to-live>10</time-to-live>
<redelivery-delay>10</redelivery-delay>
Note that these are all set to a very small value (10 milliseconds), and that the message will expire before it can be delivered or redelivered. The delivery delay is 10 millis, so by the time the delivery delay completes, the time-to-live will have passed -- furthermore, if there was no delivery delay, the redelivery delay is at 10 millis -- so by the time the redel occurs the time-to-live expires).
Tom

Similar Messages

  • How to configure a error queue for weblogic jms topic

    Hi guys.
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration Policy: Redirect
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.
    Any suggestions for this topic? Can anyone provide some helps or any useful links.
    Thanks in advance.
    Mingzhuang

    Mingzhuang
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration olicy: RedirectUnlike File/SFTP, JMS proxy service definition does not have the concept of Error Destination. To accomplish similar functionality go to JMSQ on (for which proxy is configured) server console (http://localhost:7001/console) and configure the Error Destination. Following URL will help in how to configure JMS Q.
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueues.html
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueueDeliveryFailure.html
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.If every thing is configured as per above step, then the after retries, the weblogic server will put the message into JMS topic configured. Your proxy will receive from this topic.
    Let me know if we are not on same page.
    Cheers
    Manoj

  • Examples for JMS Error Queue implementation in BPEL

    Hi ,
    Please anyone provide me examples for JMS error queue implementaion in BPEL.
    Regards
    Narsi p

    Hi Narsi p,
    Please remember to mark answers accordingly... Helpful or correct, following the forum rules
    https://forums.oracle.com/forums/ann.jspa?annID=330
    Can you tell us more about what are you trying to achieve here?
    If you are just trying to configure an error queue to put the messages that couldn't be delivered, you can do this in weblogic directly.
    Configuring an Error Destination for Undelivered Messages
    http://docs.oracle.com/cd/E17904_01/web.1111/e13727/manage_apps.htm#JMSPG254
    Cheers,
    Vlad

  • Problem creating JMS Error Destination via Ant in WLS 8.1

    We've got several JMS queues in our application. We create the server via Ant (using the wlconfig task).
    All is well, the queues have been working fine, until we try to add an error destination queue (after several attempts to handle the message, it'll be sent to the error queue for later troubleshooting).
    Here's an example of what we've got now:
    <create type="JMSQueue" name="batchQueue" property="jmsqueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
    </create>We create another queue to handle the errors, and then add an attribute to the first to point to the second:
    <create type="JMSQueue" name="batchErrorQueue" property="batchErrorQueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchErrorQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
    </create>
    <create type="JMSQueue" name="batchQueue" property="jmsqueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
        <set attribute="ErrorDestination" value="${batchErrorQueue}"/>
    </create>This seems logical, because if we do this same exact operation via the console, the config.xml goes from this:
    <JMSQueue JNDIName="net.nike.cdm.batchQueue"
                Name="batchQueue" RedeliveryLimit="5"/>to this:
    <JMSQueue ErrorDestination="batchErrorQueue"
                JNDIName="net.nike.cdm.batchQueue"
                Name="batchQueue" RedeliveryLimit="5"/>
    <JMSQueue JNDIName="net.nike.cdm.batchErrorQueue" Name="batchErrorQueue"/>The error we get when trying to do this via Ant is:
    [wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue" on JMS server "cdmdomain"). Also, an ErrorDestination can not be null if the ExpirationPolicy for a destination is "redirect" and a destination can not specify itself as its ErrorDestination.Flipping on -verbose in Ant, the actual exception is:
    [wlconfig] SET -mbean cdmdomain:Name=batchQueue,Type=JMSQueue -property ErrorDestination cdmdomain:Name=batchErrorQueue,Type=JMSQue
    [wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue"
    s its ErrorDestination.
          [if] Error in class net.sf.antcontrib.logic.IfTask
    BUILD FAILED
    file:C:/viewstore/CDM_R6.5_Development/B2B_CDM/dev/build.xml:1399: Error invoking MBean command: java.lang.NullPointerException
           at weblogic.ant.taskdefs.management.WLConfig.handleException(WLConfig.java:567)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCommand(WLConfig.java:381)
           at weblogic.ant.taskdefs.management.WLConfig.invokeSetCommand(WLConfig.java:235)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:163)
           at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:167)
           at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
           at weblogic.ant.taskdefs.management.WLConfig.execute(WLConfig.java:89)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:117)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:324)
           at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:147)
           at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at org.apache.tools.ant.Target.execute(Target.java:309)
           at org.apache.tools.ant.Target.performTasks(Target.java:336)
           at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
           at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
           at org.apache.tools.ant.Main.runBuild(Main.java:609)
           at org.apache.tools.ant.Main.start(Main.java:196)
           at org.apache.tools.ant.Main.main(Main.java:235)So, my question is, what are we doing wrong? What IS the syntax to set an error destination for a JMS queue via Ant for WLS 8.1?
    Any help would be greatly appreciated
    Thanks,
    Douglas Bullard

    I get exactly the same problem - was a resolution to this issue found?
    Thanks,
    Richard Marriott
    [email protected]

  • WebLogic JMS error queue

    Hello. I have problem after sending message to JMS queue. Message by log file sending is success. But Message don't put to queue and put to error queue.
    Message don't put to queue in 25 % cases.
    Speak please, what can be reasons what message put to error queue ?

    give me please need section link.
    I closing the sender, session and connection in method destroy();
    That class, That is EJB:
    @Stateless(name = "BeanName", mappedName = "ejb.un.BeanName")
    @Local(BeanLocal.class)
    public class BeanName implements ReleaserLocal { 
    @PreDestroy
    public void destroy() {
    try {
    jmsSender.close();
    } catch (Exception ex) {
    try {
    jmsSession.close();
    } catch (Exception ex) {
    try {
    jmsConnection.close();
    } catch (Exception ex) {
    private void sendMessage(String payload, String channel, long qId){
    try {
    jmsSender.send(message);
    if (log.isDebugEnabled()) {
    log.debug("message SEND");
    I running this app from depployed in weblogic.

  • Problems with JMS: Error JMS BEA-040368

    Hi,
    I have run into a problem using JMS on BEA. It appears to happen when we run huge amounts of messages through the queue (100 000+).
    Once this error occurs, we cant get rid of it. Restarting server, re-dployment, nothing works. Every subsequent message sent to the JMS produces this error.
    According to the error message, we have exceeded the maximum allowed transactions for the server, but how do we reset the transactions? And what is causing the error to appear in the first place? Somthing I forget to close or flush?
    I have QueueConnection, QueueSession and QueueRecevier objects open for all transactions, and close them when the bean is destroyed. Should I rather create and close them for each transaction?
    Here is the exception:
    <15.jun.2005 kl 14.55 CEST> <Error> <JMS> <BEA-040368> <The following exception has occurred:
    java.lang.RuntimeException: [EJB:010166]Error occurred while starting transaction: javax.transaction.SystemException: Exceeded maximum allowed transactions on server 'myserver'.
    at weblogic.ejb20.internal.MDListener.perhapsBeginTransaction()V(MDListener.java:325)
    at weblogic.ejb20.internal.MDListener.execute(Lweblogic.kernel.ExecuteThread; )V(MDListener.java:339)
    at weblogic.ejb20.internal.MDListener.onMessage(Ljavax.jms.Message; )V(MDListener.java:262)
    at weblogic.jms.client.JMSSession.onMessage(Ljavax.jms.MessageListener;Lweblogic.jms.common.MessageImpl; )V(JMSSession.java:2678)
    at weblogic.jms.client.JMSSession.execute(Lweblogic.kernel.ExecuteThread; )V(JMSSession.java:2598)
    at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest; )V(ExecuteThread.java:219)
    at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
    at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread; )V(Unknown Source)
    >

    Developments
    It turned out that my "client" used: this.queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    While the "server" used: this.queueSession = queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
    Now changing both sessions to use transactions (createQueueSession(true, Session.AUTO_ACKNOWLEDGE)) and fortifying the use of QueueSession.commit() when sending and receiving messages seemed to solve the problem... for a while.
    After a few new tests the problem appeared again, this time on the "client" side. It is obvious that transaction are somehow not commited correctly even though Session.commit() is called after each and every message is sent and received.
    Btw. To make the app "clean up" hanging transactions faster you can change the value in the console at:
    Mydomain --> Services --> JTA --> Abandon Timeout Seconds
    weblogic.jms.common.TransactionRolledBackException: Exceeded maximum allowed transactions on server 'myserver':error beginning transacted session's internal transaction
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:137)
    at weblogic.jms.dispatcher.DispatcherImpl_814_WLStub.dispatchSyncNoTranFuture(Unknown Source)
    at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:472)
    at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:391)
    at weblogic.jms.client.JMSProducer.send(JMSProducer.java:186)
    at no.nrk.returia.test.TestSMSInAdapter.send(TestSMSInAdapter.java:133)
    at no.nrk.returia.test.TestSMSInAdapter.main(TestSMSInAdapter.java:206)

  • Example using of getMessage(s) with JMS error queues?

    Hi,
    I'm cobbling together various tools for easier management of replaying messages left in error queues and the likes, and whilst I've got messages being moved around the place on demand, I can't make any progress using getMessage() and getMessages() to print out vital statistics of a message / all the messages in a queue, including hopefully ripping out excerts of the XML payload in them. Can someone provide / point me to an example of these being in use? I can get a successful execution of getMessages() but am usure what to really do next with the object returned, how to iterate through and such.
    Thanks
    Chris.

    Hi Chris,
    There are open source solutions for message management.  In particular, you might want to investigate Hermes:
    http://blogs.oracle.com/jamesbayer/2008/01/hermes_jms_open_source_jms_con.html
    As for browsing messages via getMessages(), here's a code snippet.  Note that one should never attempt to get too many messages at a time via "getNext()" -- instead call getNext() multiple times.  Otherwise, if there are too many messages, the client or server might run out of memory.
    # create a cursor to get all the messages in the queue
    # by passing ‘true’ for selector expression, 
    # and long value for cursor timeout
    cursor1=cmo.getMessages(‘true’,9999999)
    # get the next 5 messages starting from the cursor’s
    # current end position
    # this will adjust the cursor’s current start position and
    # end position “forwards” by 5
    msgs = cmo.getNext(cursor1, 5)
    # print all the messages’ contents
    print msgs
    # get 3 messages upto the cursor’s current start position
    # this will adjust the cursor’s current start and end position backwards by 3
    # this will the current position of the message by 1
    msgs = cmo.getPrevious(cursor1, 3)
    # print all the messages’ contents
    print msgs
    Finally, here's code based on public APIs that can help with exporting messages to a file.   It uses Java, not WLST. I haven't tested it personally.  I'm not sure if there's away to do this in WLST.
      * pseudo code for JMS Message Export operation based on
      * current implementation in the Administration Console
      import java.io.File;
      import java.io.FileOutputStream;
      import java.io.OutputStreamWriter;
      import java.io.BufferedWriter;
      import java.io.Writer;
      import java.io.IOException;
      import java.util.ArrayList;
      import java.util.Collection;
      import org.w3c.dom.Document;
      import org.w3c.dom.Element;
      import org.w3c.dom.Node;
      import weblogic.apache.xerces.dom.DocumentImpl;
      import weblogic.apache.xml.serialize.OutputFormat;
      import weblogic.apache.xml.serialize.XMLSerializer; 
      import weblogic.management.runtime.JMSDestinationRuntimeMBean;
      import weblogic.management.runtime.JMSDurableSubscriberRuntimeMBean;
      import weblogic.management.runtime.JMSMessageManagementRuntimeMBean;
      import javax.management.openmbean.CompositeData;
      import weblogic.jms.extensions.JMSMessageInfo;
      import weblogic.jms.extensions.WLMessage;
      import weblogic.messaging.kernel.Cursor;
      public void exportMessages(
        String fileName,
        JMSDestinationRuntimeMBean destination,
        /* or JMSDurableSubscriberRuntimeMBean durableSubscriber */,
        String messageSelector) throws Exception {
        BufferedWriter bw = null;
        try {
          File selectedFile = new File(file);
          if (destination == null /* or durableSubscriber == null */) {
            throw new IllegalArgumentException("A valid destination runtime or durableSubscriber runtime mbean must be specified");
          JMSMessageManagementRuntimeMBean runtime = (JMSMessageManagementRuntimeMBean) destination /* durableSubscriber */;
          bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));
          String xmlDeclaration = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
          String exportStart = "<JMSMessageExport>";
          final String exportEnd = "</JMSMessageExport>";
          final String indent = "    ";
          bw.write(xmlDeclaration);
          bw.newLine();
          bw.write(exportStart);
          bw.newLine();
          bw.newLine();
          bw.write(indent);
          CompositeData[] messageInfos = null;
          OutputFormat of = new OutputFormat();
          of.setIndenting(true);
          of.setLineSeparator("\n"+indent);
          of.setOmitXMLDeclaration(true);
          XMLSerializer ser = getXMLSerializer(bw, of);
          String cursor = JMSUtils.getJMSMessageCursor(runtime, selector,0);
          while ((messageInfos = runtime.getNext(cursor,new Integer(20))) != null) {
            for (int i = 0; i < messageInfos.length; i++) {
              JMSMessageInfo mhi = new JMSMessageInfo(messageInfos);
    Long mhiHandle = mhi.getHandle();
    CompositeData m = runtime.getMessage(cursor, mhiHandle);
    // need to get the message with body
    JMSMessageInfo mbi = new JMSMessageInfo(m);
    WLMessage message = mbi.getMessage();
    ser.serialize(message.getJMSMessageDocument());
    messageInfos[i] = null;
    bw.newLine();
    bw.write(exportEnd);
    bw.flush();
    bw.close();
    runtime.closeCursor(cursor);
    LOG.success("jms exportmessage success");
    } catch (Exception e) {
    try {
    if(bw != null)
    bw.close();
    } catch (IOException ioe) { }
    LOG.error(e);
    LOG.error("jms exportmessage error");
    throw(e);
    LOG.success("jms exportmessage success");
    private XMLSerializer getXMLSerializer(
    Writer writer,
    OutputFormat of) {
    return new XMLSerializer(writer, of) {
    protected void printText(
    char[] chars,
    int start,
    int length,
    boolean preserveSpace,
    boolean unescaped) throws IOException {
    super.printText(chars,start,length,true,unescaped);
    protected void printText(
    String text,
    boolean preserveSpace,
    boolean unescaped ) throws IOException {
    super.printText(text,true,unescaped);
    public static String getJMSMessageCursor(
    JMSMessageManagementRuntimeMBean runtime,
    String selector,
    int cursorTimeout) throws weblogic.management.ManagementException
    return runtime.getMessages(
    selector,
    new Integer(cursorTimeout),
    new Integer(Cursor.ALL));
    Hope this helps,
    Tom                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • JMS Error destination..

    Hi,
    I am developing a JMS application where i am processing message in a Queue and configured redelivery delay and redelivery limit. When the maximum redelivery limit has reached, i will move the message to an error destination which is again a Queue. I can send an email to the administartor with the message information indicating that the processing for the message has failed. But the requirment is, the administrator wants to view the message from the persistent store and resubmit the message. Is it possible? If that is the case what can be value for time-to-live for the message? I am using ServiceBus 10.3 and using the underlying weblogic server as JMS provider. Besides, i have a question on the relationship between redelivery delay, redelivery limit and time-to-live override. When i tested, if time-to-live is less than the redeliverylimit*redelivery delay, then will the message be deleted and the redelivery limit(number of retries) is not taking into effect. But if time-to-live is greater than also the message is deleted after maximum retry means time-to-live doesn't have effect. This means i am i right to say, if i specify time-to-live and there is no need to specify redeliverylimit and redelivery delay. If that is the case on what basis, the retry is made?
    Thanks in advance for your replies,
    Sam

    Hi,
    I am using ServiceBus 10.3 and using the underlying weblogic server as JMS provider. I think OSB tends to decorate JMS messages with its own private information, so I don't know if it can support arbitrarily moving them between destinations. You may be better off posting to an OSB specific forum.
    But the requirment is, the administrator wants to view the message from the persistent store and resubmit the message. Is it possible? That said, you can view, delete, move, and file import/export WebLogic JMS messages using the message management screens on the console. If you need a more sophisticated capability than the console provides, it is possible to write Java or WLST program's for the purpose.
    If you're interested in scripting, the following might be enough to get you started:
    For scripting and tracing examples, see the July 29th and August 10th 2009 newsgroup post with subject "Example using of getMessage(s) with JMS error queues?" [ here | http://forums.oracle.com/forums/thread.jspa?messageID=3657916] and the June 10th 2009 newsgroup post with subject "JMSDestinationRuntimeMBean - possible STATE values " [ here | http://forums.oracle.com/forums/thread.jspa?messageID=3531603 ]. Also take a look at the +Sept 23 2009 newsgroup posts with subject "Enable JMS - Queue/Topic Trace on console"+ [ here | http://forums.oracle.com/forums/thread.jspa?messageID=3782486].
    +WARNING: Exporting too many messages at a time can cause out-of-memory errors.+
    Besides, i have a question on the relationship between redelivery delay, redelivery limit and time-to-live override. When i tested, if time-to-live is less than the redeliverylimit*redelivery delay, then will the message be deleted and the redelivery limit(number of retries) is not taking into effect. But if time-to-live is greater than also the message is deleted after maximum retry means time-to-live doesn't have effect. This means i am i right to say, if i specify time-to-live and there is no need to specify redeliverylimit and redelivery delay. If that is the case on what basis, the retry is made?By definition, an expired message is automatically deleted -- no matter what the delivery count is. If you want expired messages to be automatically redirected to a destinatin's error destination you can configure an "expiration policy" of "redirect" on the destination.
    Whether you want to use message expiration, redelivery limit, or redelivery delay very much depends on your specific use case.
    -- Redelivery limits detect messages that are rolled back many times by receiving applications (rollbacks can occur due to any number of reasons, such as database failure, application bug, etc.)
    -- Redelivery delays prevent rolled back messages from being immediately redelivered. This helps prevent zooming up CPU usage to 100% with tight loop retries of processing a problem message, assumes that whatever condition caused the original rollback is temporary, and assumes that if the message is immediately redelivered that this is too soon for the problem condition to have cleared up.
    -- Expiration detects if a message has been sitting around for a long time. It doesn't detect whether the application has attempted to process the message...
    In general, if you are coding a new application, it is sometimes helpful to avoid error destinations. Instead, let your application decide what to do with problem messages (such as queue them to another destination). This helps your application provide more customizable behavior.
    Hope this helps,
    Tom
    PS Especially for developers new to WebLogic JMS, I highly recommend purchasing a copy of the book "Professional Oracle WebLogic". In addition, I recommend reading the new "Best Practices" chapter of the JMS configuration guide, and the new "Tuning Checklist" in the JMS chapter of the Performance and Tuning guide. These new sections are in the 10.3.2 documentation.

  • Move to error queue after certain redelivery limit

    Hi,
              I am newbie to Weblogic. I am currently using Weblogic8.1.4.
              I have written an MDB say mdbx which listens on a specific queue say QA, once it receives a message it will send this message to another queue QB. I have configured the queue QA such that it will try to redeliver the message 3 times to QB, if it fails in its first attempt. I have also configured an error queue to which the message should finally be placed when all the 3 attempts fails.
              My problem is, i find the redelivery limit and error queue i have configured for queue QA doesn't take effect. Please help me to resolve this.
              More Info:
              I am trying to send message from mdbx on the onMessage() method.
              Thanks and Regards
              A.SathishKumar

    Please refer : http://www.javaoracleblog.com/java/How_to_set_minimumDelayBetweenMessages_for_delay_between_messages_for_JCA_adapters.jsf

  • Problem: sending JMS message in other oc4j

    I have two app server instances " OC4J (1) " and " OC4J (2) ". (snandalone 10.1.3.0.0 - Developer Preview 3 (build 041119.0001.2385)). The containers work on Windows2000 in different machines connected by the LAN.
    OC4J (1):
    I have J2ee of the application [app(1)] (ex. Servlet (1) or MDB (1)) in OC4J (1).
    OC4J (2):
    I have J2ee of the application [app(2)] deploy in OC4J (2) [included Servlet (2) or MDB (2)] . The Servlet (2), or MDB (2) - empty stub, for example code Servlet2:
    package mypackage;
    import javax.servlet. *;
    import javax.servlet.http. *;
    import java.io. PrintWriter;
    import java.io. IOException;
    public class Servlet1 extends HttpServlet
    private static final String CONTENT_TYPE = " text/html; charset=windows-1251 ";
    public void init (ServletConfig config) throws ServletException
    super.init (config);
    public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    response.setContentType (CONTENT_TYPE);
    PrintWriter out = response.getWriter ();
    out.println (" < html > ");
    out.println (" < head > < title > Servlet1 < /title > < /head > ");
    out.println (" < body > ");
    out.println (" < p > The servlet has received a GET. This is the reply. </p > ");
    out.println (" < /body > < /html > ");
    out.close ();
    I have configuration JMS (2) Queue in jms.xml on OC4J (2):
    < jms-server...... port = "9127"
    < queue name = " Demo Queue " location = "jms/demoQueue" > <description> A dummy queue </description> </queue>
    < queue-connection-factory name = "jms/QueueConnectionFactory" location = "jms/QueueConnectionFactory" / >
    </jms-server>
    It JMS (2) Queue already is present in an OC4J 10.1.3 version.
    My task:
    The J2ee application (1) (ex. Servlet (1)) on OC4J (1) it is necessary to receive connection with JMS (2) (on remote OC4J (2)).
    Variant 1: a code in Servlet (1):
    Hashtable env=new Hashtable (8);
    env.put (Context. PROVIDER_URL, " ormi: // host_OC4J (2)/app(2):23792 ");
    env.put (Context. INITIAL_CONTEXT_FACTORY, " oracle.j2ee.rmi. RMIInitialContextFactory ");
    env.put (Context. SECURITY_PRINCIPAL, "admin");
    env.put (Context. SECURITY_CREDENTIALS, "admin");
    env.put ("dedicated.connection", "true");
    InitialContext ic = new InitialContext (env);
    QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
    ic.lookup ("jms/QueueConnectionFactory");
    QueueConnection connection = connectionFactory.createQueueConnection ();
    connection.start ();
    queueSession =
    connection.createQueueSession (false, Session. AUTO_ACKNOWLEDGE);
    Queue queue = (Queue) ic.lookup ("jms/demoQueue");
    ic.close ();
    while (true)
    // - send in JMS (2)
    Problem:
    The Servlet (1) [in oc4j (1)] established JMS connection with oc4j (2) and begins to pass the messages [in JMS Queue (2)].
    The Oc4j (2) creates some system thread for this JMS connection.
    If the oc4j (1) lose network connection (example- break the cable) then created in oc4j (2) system thread is not destroyed.
    Saw if this situation repeats some times that amount of the system thread in oc4j (2) is grow.
    To me has answered:
    In 10.1.3, the supported connection path is through the Resource Adapter (using OracleASjms.rar). The Resource Adapter offers many benefits, including the removal of stale connection threads. You have configured your application to bypass the Resource Adapter and use a direct path to OC4J JMS. You will need to create a resource mapping from your OC4J JMS admin objects (queues, topics, and connection factories) to new Resource Adapter admin objects. You can find the details of how to do this in the documentation for OC4J 10g (10.1.3) Developer Preview 3 on OTN.
    You can find the link to the documentation for OC4J DP3 here:
    http: // www.oracle.com/technology/tech/java/oc4 j/1013/index.html
    Then I have tried Variant 2:
    I need to receive connection with remote JMS (2) via generic JMS resource adapter (OracleAS Jms).
    In OC4J (2), it is necessary сonfigure the generic JMS resource adapter (OracleAS Jms) to work with Queue "jms/demoQueue".
    According to the documentation Oracle ® Containers for J2EE Services Guide10g Release 2 (10.1.3) and example
    http: // www.oracle.com/technology/tech/java/oc4 j/1013/howtos/how-to-jca-intro/doc/how- to-jca-intro.html anything it is not necessary to do.
    Note that if you use the generic JMS resource adapter in an OC4J 10.1.3 version that is newer than the OC4J 10.0.3 Developer Preview 2, you can skip. In OC4J 10.1.3 it is a step is already made.
    Code in Servlet (1):
    Hashtable env=new Hashtable (8);
    env.put (Context. PROVIDER_URL, " ormi: // host_OC4J (2) /app (2):23792 ");
    env.put (Context. INITIAL_CONTEXT_FACTORY, " oracle.j2ee.rmi. RMIInitialContextFactory ");
    env.put (Context. SECURITY_PRINCIPAL, "admin");
    env.put (Context. SECURITY_CREDENTIALS, "admin");
    env.put ("dedicated.connection", "true");
    InitialContext ic = new InitialContext (env);
    QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
    ic.lookup (" java:comp/resource/oc4jjms/jms/QueueCon nectionFactory ");
    QueueConnection connection = connectionFactory.createQueueConnection ();
    connection.start ();
    queueSession =
    connection.createQueueSession (false, Session. AUTO_ACKNOWLEDGE);
    Queue queue = (Queue) ic.lookup (" java:comp/resource/oc4jjms/jms/demoQueu e ");
    ic.close ();
    while (true)
    // - send in JMS (2)
    This code works.
    But!!!!!!
    The problem - removal of stale connection threads in OC4J (2) instances has not solve. If the oc4j (1) lose network connection (example- break the cable) then created in oc4j (2) system thread is not destroyed.
    How to me to write a code of connection with JMS (2) in Servlet (1), that Resource Adapter (in OC4J (2)) the removal of stale connection threads ???

    I have two app server instances " OC4J (1) " and " OC4J (2) ". (snandalone 10.1.3.0.0 - Developer Preview 3 (build 041119.0001.2385)). The containers work on Windows2000 in different machines connected by the LAN.
    OC4J (1):
    I have J2ee of the application [app(1)] (ex. Servlet (1) or MDB (1)) in OC4J (1).
    OC4J (2):
    I have J2ee of the application [app(2)] deploy in OC4J (2) [included Servlet (2) or MDB (2)] . The Servlet (2), or MDB (2) - empty stub, for example code Servlet2:
    package mypackage;
    import javax.servlet. *;
    import javax.servlet.http. *;
    import java.io. PrintWriter;
    import java.io. IOException;
    public class Servlet1 extends HttpServlet
    private static final String CONTENT_TYPE = " text/html; charset=windows-1251 ";
    public void init (ServletConfig config) throws ServletException
    super.init (config);
    public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    response.setContentType (CONTENT_TYPE);
    PrintWriter out = response.getWriter ();
    out.println (" < html > ");
    out.println (" < head > < title > Servlet1 < /title > < /head > ");
    out.println (" < body > ");
    out.println (" < p > The servlet has received a GET. This is the reply. </p > ");
    out.println (" < /body > < /html > ");
    out.close ();
    I have configuration JMS (2) Queue in jms.xml on OC4J (2):
    < jms-server...... port = "9127"
    < queue name = " Demo Queue " location = "jms/demoQueue" > <description> A dummy queue </description> </queue>
    < queue-connection-factory name = "jms/QueueConnectionFactory" location = "jms/QueueConnectionFactory" / >
    </jms-server>
    It JMS (2) Queue already is present in an OC4J 10.1.3 version.
    My task:
    The J2ee application (1) (ex. Servlet (1)) on OC4J (1) it is necessary to receive connection with JMS (2) (on remote OC4J (2)).
    Variant 1: a code in Servlet (1):
    Hashtable env=new Hashtable (8);
    env.put (Context. PROVIDER_URL, " ormi: // host_OC4J (2)/app(2):23792 ");
    env.put (Context. INITIAL_CONTEXT_FACTORY, " oracle.j2ee.rmi. RMIInitialContextFactory ");
    env.put (Context. SECURITY_PRINCIPAL, "admin");
    env.put (Context. SECURITY_CREDENTIALS, "admin");
    env.put ("dedicated.connection", "true");
    InitialContext ic = new InitialContext (env);
    QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
    ic.lookup ("jms/QueueConnectionFactory");
    QueueConnection connection = connectionFactory.createQueueConnection ();
    connection.start ();
    queueSession =
    connection.createQueueSession (false, Session. AUTO_ACKNOWLEDGE);
    Queue queue = (Queue) ic.lookup ("jms/demoQueue");
    ic.close ();
    while (true)
    // - send in JMS (2)
    Problem:
    The Servlet (1) [in oc4j (1)] established JMS connection with oc4j (2) and begins to pass the messages [in JMS Queue (2)].
    The Oc4j (2) creates some system thread for this JMS connection.
    If the oc4j (1) lose network connection (example- break the cable) then created in oc4j (2) system thread is not destroyed.
    Saw if this situation repeats some times that amount of the system thread in oc4j (2) is grow.
    To me has answered:
    In 10.1.3, the supported connection path is through the Resource Adapter (using OracleASjms.rar). The Resource Adapter offers many benefits, including the removal of stale connection threads. You have configured your application to bypass the Resource Adapter and use a direct path to OC4J JMS. You will need to create a resource mapping from your OC4J JMS admin objects (queues, topics, and connection factories) to new Resource Adapter admin objects. You can find the details of how to do this in the documentation for OC4J 10g (10.1.3) Developer Preview 3 on OTN.
    You can find the link to the documentation for OC4J DP3 here:
    http: // www.oracle.com/technology/tech/java/oc4 j/1013/index.html
    Then I have tried Variant 2:
    I need to receive connection with remote JMS (2) via generic JMS resource adapter (OracleAS Jms).
    In OC4J (2), it is necessary сonfigure the generic JMS resource adapter (OracleAS Jms) to work with Queue "jms/demoQueue".
    According to the documentation Oracle ® Containers for J2EE Services Guide10g Release 2 (10.1.3) and example
    http: // www.oracle.com/technology/tech/java/oc4 j/1013/howtos/how-to-jca-intro/doc/how- to-jca-intro.html anything it is not necessary to do.
    Note that if you use the generic JMS resource adapter in an OC4J 10.1.3 version that is newer than the OC4J 10.0.3 Developer Preview 2, you can skip. In OC4J 10.1.3 it is a step is already made.
    Code in Servlet (1):
    Hashtable env=new Hashtable (8);
    env.put (Context. PROVIDER_URL, " ormi: // host_OC4J (2) /app (2):23792 ");
    env.put (Context. INITIAL_CONTEXT_FACTORY, " oracle.j2ee.rmi. RMIInitialContextFactory ");
    env.put (Context. SECURITY_PRINCIPAL, "admin");
    env.put (Context. SECURITY_CREDENTIALS, "admin");
    env.put ("dedicated.connection", "true");
    InitialContext ic = new InitialContext (env);
    QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
    ic.lookup (" java:comp/resource/oc4jjms/jms/QueueCon nectionFactory ");
    QueueConnection connection = connectionFactory.createQueueConnection ();
    connection.start ();
    queueSession =
    connection.createQueueSession (false, Session. AUTO_ACKNOWLEDGE);
    Queue queue = (Queue) ic.lookup (" java:comp/resource/oc4jjms/jms/demoQueu e ");
    ic.close ();
    while (true)
    // - send in JMS (2)
    This code works.
    But!!!!!!
    The problem - removal of stale connection threads in OC4J (2) instances has not solve. If the oc4j (1) lose network connection (example- break the cable) then created in oc4j (2) system thread is not destroyed.
    How to me to write a code of connection with JMS (2) in Servlet (1), that Resource Adapter (in OC4J (2)) the removal of stale connection threads ???

  • How to configure JMS queue on OC4J server. Development in JDeveloper 10G

    Hi there,
    I have to configure a JMS for an Asynchronous process in my Application which will be running in Oracle 10G Application Server. Development Environment is Oracle JDeveloper 10G.
    I am facing a problem on how to configure JMS queue.
    Steps Followed are:
    in the <JDevloperHome>/j2ee/home/config
    1. Made the new queue and connection factory's JMS entry in jms.xml.
    2. Specifed the queue in oc4j-connectors.xml.
    3. played around with application.xml
    and tried all combinations, but the message producer always failed to lookup the queue.
    Need help on the steps to follow so that the producer can post the message in the queue.
    Also please help how to configure the MDB to listen to the queue.
    Thanx and Regards
    Subham

    If you were dealing with Oracle 10g app server as opposed to standalone, I might be better able to help you.
    One thing though, when you are configuring your MDB in the orion-ejb-jar.xml file, do not forget to specify attribute listener-threads, otherwise no matter how many beans you have in your MDB pool, only one bean will be listening to the queue. Many listener-threads equal to max number of beans in pool.

  • Problem in configuring JMS adapter

    Hello,
    My purpose is to send xml data from MQSeries to BW using XI. MQSereies is installed in XI server. For thah I am trying to configure JMS adpter for MQSeries in XI. I have successfully  deployed the necessary external drivers using SDM. I have configured the sender channel with the following parameters.
    Adapter type: JMS
    Transport Protocol :WEBsphereMQ(non-JMS)
    Message protocol :JMS1.x
    Queue connection factory java class:com.ibm.mq.jms.MQQueueConnectionFactory
    Queue Java Class: com.ibm.mq.jms.MQQueue
    IP address: IP address of XI system.
    Port: 1414
    Queue manager name : MQ-manager-name_XI-system-name
    Channel Name : reciever-channel-name_XI-system-name
    JMS queue: postcard
    Charecter set ID:
    Transport/networkprotocol: TCP/IP
    JMS-Compliant : WebsphereMQ(non-JMS)
    But when I check it in adapter monitor JMS is shown as red.
    When I go to Visual Administrator
          "cluster->server->services->monitoring->runtime->monitor tree->services->Connector Service" is white instead of green.
    Can any one tell what could be the problem.
    Regards,
    Amith

    Hi Vijaya,
    In VA there is only option to stop or start JMS XI adapter.
    I dont know where to activate JMS adapter in VA. It is already started in VA.
    Regards,
    Amith

  • Problem Creating JMS Queue Tables

    Oracle 9.2.0.1
    Help Please.
    I'm running into problems trying to create a JMS message queue table. following an example in the Oracle9ias containers for j2ee guide chapter 7. i've created a user and granted execute on sys.dbms_aqadm, sys.dbms_aq,
    sys.dbms_aqin and sys.dbms_aqjms.
    I log into SQL Plus as system with sysbda privilege.
    and attempt to create a table using
    DBMS_AQADM.CREATE_QUEUE_TABLE(
    Queue_table          => 'QTque',
    Queue_payload_type     => 'SYS.AQ$_JMS_STREAM_MESSAGE',
    multiple_consumers     => false);
    but SQL Plus responds with an error saying: unknown command beginning 'DBMS_AQADM...' rest of line ignored.
    is this a problem with my system administrator privileges
    I've given it DBA and AQ_ADMINISTRATOR_ROLE.
    In searching for a way around my problem I discovered you can easily create queue tables in the Advanced Queues section of enterprise manager. Problem doing it this way is a can't figure out how to specify payload type. If I select object I can't see how I can then specify the
    SYS.AQ$_JMS_STREAM_MESSAGE type I require.
    Any Tips appreciated.
    Gary.

    try to execute:
    BEGIN
    DBMS_AQADM.CREATE_QUEUE_TABLE(
    Queue_table => 'QTque',
    Queue_payload_type => 'SYS.AQ$_JMS_STREAM_MESSAGE',
    multiple_consumers => false);
    END;
    Regards,
    Alexei

  • Error Queue Problem

    Hi,
              I have defined an error queue for a given queue. The problem is that
              the error queue doesn't get any messages when there is an error, etc.
              For example (WebLogic configuration for the queue1) -
              Error Destination: errorqueue8.
              Time To Live Override: 20000.
              I want the messages in the queue1 to be transferred to errorqueue8
              when the time-to-live expires. But this doesn't happen!
              Does anyone know whats wrong? Am I doing something wrong with the
              configurations?
              I am using WebLogic 7.
              Thanks in Advance.
              

    Good timing!
              WebLogic 8.1, which is out in restricted beta at the moment, and
              will be out in public beta "soon", has this extension. You can
              configure a WebLogic 8.1 destination to redirect expired messages
              to an error destination. Prior versions of WebLogic do not
              have this extensions.
              Tom, BEA
              mal wrote:
              > Thanks for the answer!
              >
              > So what if I want to send the undilivered messages, for a given time,
              > to go to another queue (without them getting lost)? Is there a way
              > that I can do it within WebLogic 7? Or should I program for it in the
              > application?
              >
              > Thanks,
              >
              >
              > "Bart Simpson" <[email protected]> wrote in message news:<3e445c0c$[email protected]>...
              >
              >>Hi,
              >>
              >>How are you doing? If the TTL expires the messages are lost. So, WLS is behaving
              >>as expected.
              >>
              >>Error destination makes sense for redelivery of messages that have already been
              >>redelivered so many times...
              >>
              >>Best regards,
              >>-Bart Simpson
              >
              

  • Connection Problem To "JMS Queue XML"

    Hi.
    I can't connect to the JMS Queue XML.While Creating Data Server using the JMS XML Queue Technology pointing to WLS and the XML document type definition (dtd ) file books.dtd is provided from the local(C:\Documents and Settings\348773\Desktop\XML FILES) directory. The connection details are as below:-
    Definition Tab:
    Connection:
    User: userXXX
    Password: passYYY
    These are user name and password for the application server
    JNDI tab:
    JNDI Authorization: None
    JNDI User/password (same as above)
    JNDI Protocol: Undefined
    JNDI Driver: weblogic.jndi.WLInitialContextFactory
    JNDI URL: http://172.18.41.47:7001?d=C:\Documents and Settings\348773\Desktop\XML FILES\books.dtd&JMS_DESTINATION=jms/demoQueue
    JNDI Resource:eis/ConnFact/Queue
    FYI:-I h'v just copy and pasted the value of JNDI Driver(weblogic.jndi.WLInitialContextFactory) from a document because I don't know how to find the JNDI drivers name for WLS.I think it is a default name.If I'm wrong then Please tell me how to find it.when I test the connection it shows an error like this:-
    java.sql.SQLException: Cannot load connection class because of underlying exception: 'java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: ODI-40201: Cannot create the initial JNDI context)'.'.
         at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:133)
         at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:62)
         at com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java:1118)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.getLocalConnect(SnpsDialogTestConnet.java:420)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.localConnect(SnpsDialogTestConnet.java:860)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.jButtonTest_ActionPerformed(SnpsDialogTestConnet.java:806)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.connEtoC1(SnpsDialogTestConnet.java:165)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.access$1(SnpsDialogTestConnet.java:161)
         at com.sunopsis.graphical.dialog.SnpsDialogTestConnet$IvjEventHandler.actionPerformed(SnpsDialogTestConnet.java:111)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2319)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
         at java.awt.Component.processMouseEvent(Component.java:6289)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
         at java.awt.Component.processEvent(Component.java:6054)
         at java.awt.Container.processEvent(Container.java:2042)
         at java.awt.Component.dispatchEventImpl(Component.java:4652)
         at java.awt.Container.dispatchEventImpl(Container.java:2101)
         at java.awt.Component.dispatchEvent(Component.java:4483)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2479)
         at java.awt.Component.dispatchEvent(Component.java:4483)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
         at java.awt.EventQueue.access$000(EventQueue.java:85)
         at java.awt.EventQueue$1.run(EventQueue.java:604)
         at java.awt.EventQueue$1.run(EventQueue.java:601)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
         at java.awt.EventQueue$2.run(EventQueue.java:618)
         at java.awt.EventQueue$2.run(EventQueue.java:615)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:175)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:162)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: java.sql.SQLException: Cannot load connection class because of underlying exception: 'java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: ODI-40201: Cannot create the initial JNDI context)'.'.
         at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:133)
         at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:62)
         at oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:74)
         at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter$ConnectionProcessor.run(LoginTimeoutDatasourceAdapter.java:217)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:139)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909)
         at java.lang.Thread.run(Thread.java:662)
    Caused by: java.sql.SQLException: Cannot load connection class because of underlying exception: 'java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: ODI-40201: Cannot create the initial JNDI context)'.'.
         at com.sunopsis.jdbc.driver.JMSXMLDriver.connect(JMSXMLDriver.java:113)
         at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:409)
         at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:385)
         at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:352)
         at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:331)
         ... 7 more
    Caused by: java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: ODI-40201: Cannot create the initial JNDI context)'.
         at com.sunopsis.jdbc.driver.JMSXMLConnection.<init>(JMSXMLConnection.java:295)
         at com.sunopsis.jdbc.driver.JMSXMLDriver.connect(JMSXMLDriver.java:99)
         ... 11 more
    So,
    please advise
    Thanks
    Anindya

    Hi,
    Hope till now you might have solved this problem.
    If not lets do  this below workout , we had same kind of problem.
    in JNDI tab , you have JNDI authentication, this authentication is for JNDI resources, I am sure you might be using weblogic credentials.
    Steps :
    1. Clear JNDI User : Blank (No value)
    2. Clear Password : Blank (No Value)
    3. set JNDI Authentication as None, regenerate the scenario and check
    For accessing JNDI responses , JMS XML Queue uses Connection parameters from Definition tab.
    Hope this helps

Maybe you are looking for