Copying JMS Queues

I am writing Weblogic Integration(WLI) applications. When I deploy these apps I have to create some JMS queues in the server or I get warning messages in the Weblogic console. I have several Weblogic 10.3 servers that I need to deploy these WLI apps too.
I'm wondering if there is a way that I can copy the contents of the xml files that define the JMS queues from one server to another server? What files would need to be copied? I'm trying to find an easier way to create the JMS queues. Creating the queues in the console can get time consuming if you have alot of queues to create.
Any help is greatly appreciated!.....
John

Hi John,
There are multiple methods for automating WebLogic configuration, and WebLogic JMS (just like all other WebLogic subsystems), can be configured using almost any of them. Here are some:
-- On-line or off-line WLST script
-- Java program that makes JMX config mbean calls
-- If the JMS dest config is absolutely identical, then you can simply copy the JMS module XML file to the different domains, and then use the console, WLST, or JMX to modify the config.xml in order to reference it. The module's contain destination config, while the config.xml contains subdeployment, store, and JMS server config.
When working with multiple WebLogic domains, be careful to ensure that all domain names are different and all WebLogic server names are different (even if the WebLogic servers are in different domains). In addition, in certain cases all JMS server names must be different (even if they are in different domains -- applies to SAF feature apps that use cross-domain reply-to if I recall correctly).
Tom
PS. See also [ JMS Configuration Best Practices | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACJCGHG ]

Similar Messages

  • Copy JMS (queue) message

              I have a MDB receiving messages from a queue on a MQ. In the onMessage method or
              some where down the thread, I want to send the same message to a different queue,
              also on a MQ. I tried to send it in the same thread or a new thread. It never
              seemed complain but the receiver never gets it. It's as if the message was never
              sent.
              What's preventing the messages being sent?
              I'm using WLS 8.1 and MQ 5.2.
              TIA,
              Bill
              

              It turns out only one attribute (messageID) seems to matter in this app so that's
              taken care of but it's obviously not a clean solution. "You do what you got to
              do."
              Thanks for the help.
              Tom Barnes <[email protected]> wrote:
              >Hi Bill,
              >
              >This is vendor dependent and should work fine
              >with WebLogic, in your case you are receiving
              >from MQ and forwarding to MQ, and apparently
              >MQ has problems here.
              >
              >One thing that won't work with any vendor is
              >multi-threaded access to the same message -
              >which I don't think you are doing.
              >
              >There is no standard way to clone a message - you
              >will need to create a new message and copy
              >over the old message's fields into it. WebLogic
              >does this for you internally if you pass
              >an MQ message to a WebLogic send.
              >
              >Tom
              >
              >Bill wrote:
              >> Found the reason for the difference - forwarding the original message
              >to another
              >> queue changes the message (destination, etc). With a separate thread,
              >the main
              >> process just had time to get the info out before they are changed.
              >>
              >> Is there anyway to "clone" a message or something to that effect?
              >>
              >> "Bill" <[email protected]> wrote:
              >>
              >>>I have to apologize, Tom. The messages were actually sent but I had
              >a
              >>>selector
              >>>on the receiver. When tested outside of the app, I had the sender satisfy
              >>>the
              >>>selector. The testers were written quite a while back I just forgot
              >about
              >>>the
              >>>minor details...
              >>>
              >>>However, now that messages are copied and received, I have another
              >problem.
              >>>
              >>>The messages are sent OK with or without a new thread (the receiver
              >gets
              >>>them).
              >>>However, the rest of the processing in onMessage, which parses out
              >the
              >>>message
              >>>and processes it, doesn't work properly if the copy message was done
              >>>in the same
              >>>thread. Basically the sender of the original message doesn't like the
              >>>reply and
              >>>I couldn't see any difference by looking at the messages. Any ideas?
              >>>
              >>>Thanks,
              >>>Bill
              >>>
              >>>Tom Barnes <[email protected]> wrote:
              >>>
              >>>>If the MDB is transactional, it may be rolling back the tx.
              >>>>
              >>>>Or it may be that your app code is throwing a run-time
              >>>>exception (which would force a recover or rollback).
              >>>>
              >>>>It may be that the send is never getting called,
              >>>>(instrument your code).
              >>>>
              >>>>It may be that you are calling send, but accidentally
              >>>>you are using "transacted" session. Make sure that
              >>>>the first parameter to "createQueueSession()" is false.
              >>>>
              >>>>Tom
              >>>>
              >>>>Bill wrote:
              >>>>
              >>>>>I have a MDB receiving messages from a queue on a MQ. In the onMessage
              >>>>
              >>>>method or
              >>>>
              >>>>>some where down the thread, I want to send the same message to a
              >different
              >>>>
              >>>>queue,
              >>>>
              >>>>>also on a MQ. I tried to send it in the same thread or a new thread.
              >>>>
              >>>>It never
              >>>>
              >>>>>seemed complain but the receiver never gets it. It's as if the message
              >>>>
              >>>>was never
              >>>>
              >>>>>sent.
              >>>>>
              >>>>>What's preventing the messages being sent?
              >>>>>
              >>>>>I'm using WLS 8.1 and MQ 5.2.
              >>>>>
              >>>>>TIA,
              >>>>>Bill
              >>>>
              >>
              >
              

  • How to keep a back up of messages from the JMS queues?

    Hi,
    I need to keep a back up of messages which are coming in the JMS queue before they get consumed. This is for recovery purpose.
    I checked file store option but it doesnt have any time stamp on messages so dont know how to trace back messges if needed from file store.
    Please let me know if you guys have any idea to handle this.
    Thanks in advance
    Bips

    No. Not with Time Machine at least.
    If you tell Time Machine to backup the external then you will have it.
    Or you can manually copy it to another disk for storage outside of Time Capsule/TimeMachine.
    Allan

  • Problem parsing TextMessage from a JMS queue

    I'm attempting to read and parse a TextMessage from a JMS queue. The message is in an XML format and I'm trying to parse it using "oraext:parseXML". If I hardcode a value such as:
    <copy>
    <from expression="'&lt;ns:person xmlns:ns=&quot;urn:mynamespace&quot;>&lt;ns:personname>&lt;ns:first>bob&lt;/ns:first>&lt;/ns:personname>&lt;/ns:person>'"/>
    <to variable="tempString"/>
    </copy>
    I can then parse "tempString" just fine. If I read the TextMessage in as a string and attempt the same thing, I constantly get
    "XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is oraext:parseXML(bpws:getVariableData('tempString')). The XPath expression failed to execute; the reason was: internal xpath error. Check the detailed root cause described in the exception message text and verify that the XPath query is correct. "
    If I look at "tempString" in both scenarios (hardcoding the value and reading it in) the contents are basically the same, when reading it in via the JMS queue it does seem to put in line breaks after the elements to format it more like an XML document. For example, coming in from JMS the string looks like:
    <ns:person>
    <ns:personname>
    <ns:first>bob</ns:first>
    </ns:personname>
    </ns:person>
    But hardcoding the value it looks like:
    <ns:person><ns:personname><ns:first>bob</ns:first></ns:personname></ns:person>
    Should this affect anything?
    Thanks.

    Thanks for the reply. I'm not sure I understand the difference between XML and an XML string. XML is just a well-formed text string, right?
    Anyway, your suggestion didn't work for me. The "ora:getContentAsString" call you suggested apparently strips away the XML and gives just the contents. For example, given the XML:
    <ns:person>
    <ns:personname>
    <ns:first>bob</ns:first>
    <ns:last>smith</ns:last>
    </ns:personname>
    </ns:person>
    "ora:getContentAsString" yields: "bobsmith", not the data structure.
    Again, thanks for the reply.

  • Use ODI with JMS Queue

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

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

  • Synchronization of JMS queue with backup instance

    Hello,
              I have the following problem: there are two machines in active - passive
              configuration. Both those machines serve as JMS servers in two environments.
              What I want to do is to keep a backup of JMS queue from the productive
              environment in the backup one, so in case of a disaster in the productive
              environment the backup one will stand up and will start processing the waiting
              messages. In order to do this I need to keep an up-to-date (or almous up to
              date, I will propably have to accept that some of the messages will be lost)
              copy of JMS queue.
              Have you ever worked on such a problem? Maybe you can suggest some solution?
              Best regards,
              Dawid Duda

    Hi,
              Thanks for informations, but it is not exactly what I need.
              In my case I need to keep a backup of the queue in a separate location, to be
              able to start processing the data in case if the first one was i.e. burned.
              Therefore I was thinking about something like duplicating the database store
              under the queue (using database tools) in on-line mode to be able to start
              another instance in case of problems with the first one. Do you think such
              aproach would work?
              Best regards,
              dave
              Tom Barnes wrote:
              > Hi,
              >
              > Search the newsgroup and docs for keyword "migration". Automated "whole server" migration is available in 9.0, and automated "service" level migration is slated to be available in 9.5. (8.1 provides manual/scriptable service-level migration.) Also, depending on your use case, it might be that distributed destinations, bridges, server-side-store-and-forward (9.0+), or client side store-and-forward (9.2+) would fit your needs.
              >
              > http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
              >
              > http://edocs.bea.com/wls/docs92/jms_admin/intro.html#jms_features
              >
              > http://dev2dev.bea.com/pub/a/2004/05/ClusteredJMS.html (service-level migration paper)
              >
              > Tom

  • Using a  foreign WLS JMS queue (no bridge)

              Hi,
              We have a configuration from which we communicate from WLS 7 to a foreign MQ via
              JMS. This works well and we have loaded the foreign MQ jms objects into WLS JNDI
              using a statup class (as the whitepaper available describes) and we look them
              up successfully.
              However, we now have a siutation where we briefly need to switch our application
              to point to a WLS JMS queue on another remote WLS server. Is there an easy way
              to load foreign (maybe remote would be a better word in this case) WLS JMS QCF's
              and destinations into my local WLS JNDI so that I can treat them the same way
              as my MQ objects?
              I can't seem to find any information on how to do this as all information seems
              to point towards the messaging bridge (we can't use this as the bridge changes
              the message JMSMessageID and screws our correlation mechanism up).
              I know we could just look the foreign objects up by using the JNDI environment
              of the remote WLS machine but this would mean changing code and this I can't to
              do (as all our code uses the local default WLS JNDI).
              Any ideas would be gratefully received.
              Cheers,
              Jay.
              

    WLS JMS and MQ JMS handle their JNDI objects a little differently, so I can
              see how this can be confusing. An MQ JMS "ConnectionFactory" or
              "Destination" object is like a little configuration file that tells you
              where the queue manager or queue is, so you can serialize it and look it up
              later and use it to find the queue manager.
              A WLS JMS ConnectionFactory or Destination object is a reference to an
              object on a running server. So, you connect to the server and look them up,
              and then you can use it for messaging. You don't have to store these objects
              in a separate place, like MQ makes you do. But it means that the WLS JNDI
              objects have to be looked up from a running server, and if the server
              restarts, you have to look them up again.
              Doing what you're asking is definitely trickier in 7.0. One thing you could
              do is, again using a servlet or an EJB, connect to the remote JMS cluster
              and look up the objects at the time you want to make the switch. (If the
              remote cluster is down, you'll have to retry from time to time.) If the
              remote cluster is down, you won't be able to look up those objects, but then
              again, if it were down you wouldn't be able to send messages there anyway.
              Using 8.1 would be less complicated, but this method should also work.
              greg
              "Jay Green" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Thanks Greg. When I was searching the BEA website I read about the
              facility in
              > 8.1. Unfortunatley, as you point out, it doesn't help me much with WLS
              7.0.
              >
              > My first thought was to copy my exisiting MQ startup class but I couldn't
              work
              > out how to do this for the remote WLS jms objects as the standard jms
              classes
              > (for QCF etc) don't have methods that allow me to define the foreign WLS
              jms
              > host IP address etc. I checked the WLS 7 API and the jms package didn't
              seem
              > to offer anything to help me do this (as IBM do for MQ). Any ideas?
              >
              > Apologies if I'm being a bit slow here!
              >
              > "Greg Brail" <[email protected]> wrote:
              > >WLS 8.1 includes a feature called "Foreign JMS Providers" that lets you
              > >configure (using the console or config.xml) a link between a JMS JNDI
              > >object
              > >in your WLS servers' tree, and a JNDI object in another provider -- which
              > >could be WLS JMS, or a foreign vendor.
              > >
              > >Using this feature, your application could just look up the local JNDI
              > >objects in the local WLS tree, and then the server in turn performs the
              > >lookup from the actual JNDI provider using the parameters you put in
              > >the
              > >console (or config.xml). So, when you make a change in the console, new
              > >JNDI
              > >lookups will go to the new place.
              > >
              > >Unfortunately, this doesn't help you with 7.0. You could always
              > >programmitically update the local JNDI tree the way you're doing in your
              > >startup class, but instead do it from a servlet or an EJB.
              > >
              > > greg
              > >
              > >"Jay Green" <[email protected]> wrote in message
              > >news:[email protected]...
              > >>
              > >> Hi,
              > >>
              > >> We have a configuration from which we communicate from WLS 7 to a
              foreign
              > >MQ via
              > >> JMS. This works well and we have loaded the foreign MQ jms objects
              > >into
              > >WLS JNDI
              > >> using a statup class (as the whitepaper available describes) and we
              > >look
              > >them
              > >> up successfully.
              > >>
              > >> However, we now have a siutation where we briefly need to switch our
              > >application
              > >> to point to a WLS JMS queue on another remote WLS server. Is there
              > >an easy
              > >way
              > >> to load foreign (maybe remote would be a better word in this case)
              > >WLS JMS
              > >QCF's
              > >> and destinations into my local WLS JNDI so that I can treat them the
              > >same
              > >way
              > >> as my MQ objects?
              > >> I can't seem to find any information on how to do this as all
              information
              > >seems
              > >> to point towards the messaging bridge (we can't use this as the bridge
              > >changes
              > >> the message JMSMessageID and screws our correlation mechanism up).
              > >>
              > >> I know we could just look the foreign objects up by using the JNDI
              > >environment
              > >> of the remote WLS machine but this would mean changing code and this
              > >I
              > >can't to
              > >> do (as all our code uses the local default WLS JNDI).
              > >>
              > >> Any ideas would be gratefully received.
              > >>
              > >> Cheers,
              > >>
              > >> Jay.
              > >
              > >
              >
              

  • Testing ODI connectivity with Sonic MQ JMS Queue server

    Hi
    We are trying to integrate our ODI to sonic MQ.
    Since I am a newbie , could you please guide me in creating a data server and connecting it through physical agent?
    Below are the steps I did.
    1. I have copied the below jar files in ../driver directory and bounce the agent.
    mfcontext.jar sonic_Client.jar sonic_ASPI.jar sonic_XA.jar sonic_Selector.jar sonic_Crypto.jar jndi.jar
    3. tesed the connectivity to the JNDI URL and port using 'telnet myserver 7530'
    3. created a new JMS Queue Server with below setting.
    JNDI Authentification: Simple
    JNDI User :Administrator
    Password :
    JNDI Protocol : <undefined>
    JNDI Driver: com.sonicsw.jndi.mfcontext.MFContextFactory
    JNDI URL: tcp://myserver:7530
    JNDI Resource: ODI_QUEUE.Entry
    4. apply the changes
    When I tried to test it I got the below messages.
    java.lang.Exception:
         at com.sunopsis.graphical.l.pm.a(pm.java)
         at com.sunopsis.graphical.l.pm.s(pm.java)
         at com.sunopsis.graphical.l.pm.g(pm.java
         at com.sunopsis.graphical.l.pm.a(pm.jav)
         at com.sunopsis.graphical.l.pm.a(pm.java)
         at com.sunopsis.graphical.l.iz.actionPerformed(iz.java)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

    I think that you should update the Odiparams.bat in order to add the JMS driver files which are not in the path of the agent.
    Stop your agent.
    in the odiparams update one of the line
    "set ODI_CLASSPATH" with the new files
    and then restart your agent.

  • JMS queue| failover test question

    HI gurus,
    We are planning a failover test to migrate from prod to contingency environment.
    What happens to transactions that may be sitting in the JMS queue when the prod jvms are stopped? Is there a way to migrate them to the cont jvms?We are using jdbc stores and the supporting tables for both prod and cont will exist in the oracle DB, but with different names. Since the CONT jvms will be using different tables for the JMS queues, is there a way to migrate those queued transactions from prod to the CONT side?
    Details of environment
    1) OS for App Server
    Linux x86-64.
    Linux va2xpre03.gdsososos.com 2.6.18-128.1.6.el5 #1 SMP Tue Mar 24 12:05:57 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
    2) App Server type and version
    WLS 10.3.0
    JDK version
    jrockit_160_11
    3)
    Clustered and it is a Prod environment.
    Details:
    UI cluster has 5 servers. There are 4 jvms in each server. Altogether there are 20 jvms in UI cluster
    Recon cluster has 3 servers. There are 4 jvms in each server. Altogether there are 12 jvms in Recon cluster
    regards,
    Thiago Leoncio Guimaraes

    A common practice for handling this type of fail-over is to ensure that the main environment's domain name, server names, store, transaction logs (default store), and JMS configuration all all the same in the contigency environment (basically, differences, if any, are confined to things like URLs and Data Source configuration of DB location). Recovery is accomplished in the fail-over environment by copying over each server's default file store, as well as its JDBC store backing tables, prior to booting the fail-over servers.
    Transaction logs don't need to be copied over if you don't use XA (JTA) in your applications...

  • BAM plans stacking up when JMS queue input source is blocked

    I have a BAM installation that receives data from a JMS queue through Enterprise Message Source connections, using Enterprise Link plans to manipulate the data and insert/update it into data objects. I also use BAM alerts to trigger the plans to run every 20 minutes to check for data to pull from the queues.
    The data is coming in from several batch processes that insert records to an external Oracle table, that uses triggers to push the data into the JMS queues. Some of these batch processes are currently written poorly so that they run for long periods of time and tie up the Oracle table.
    The BAM plans are running every 20 minutes, as expected. However, if one of these batch processes is running and it ties up the source table, it also ties up the queue table. The BAM alerts continue to kick off the plans every 20 minutes. But, if the resources are being blocked, the Enterprise Message Source doesn't appear to be able to connect with the JMS queue table, and the plan hangs up - continuing to "run" while waiting for the connection. If the batch jobs run for some length of time, the next iteration of the plans is kicked off, queuing up behind the still-running previous iteration. Then 20 minutes later, the next execution of the plan kicks off and also hangs. And so on until all the database connections are being tied up.
    Other than process improvements to the batch jobs to prevent/minimize locking of the source table (which is being done), are there any settings that would allow the BAM alert-based execution of the plans to "time out" if a connection cannot be established in a matter of minutes, or a way to prevent the same plan from initiating if a copy of that plan is already executing? I would like to prevent having the executions of the plans "queue up" and cause even more database contention.

    the script for the triger where missing some parameters this resolve the insert problems.
    create or replace trigger employee AFTER INSERT OR Update ON employee
    FOR each row
    declare
    xml_complete varchar2(1000);
    v_enqueue_options dbms_aq.enqueue_options_t;
    v_message_properties dbms_aq.message_properties_t;
    v_msgid raw(16);
    temp sys.aq$_jms_text_message;
    v_recipients dbms_aq.aq$_recipient_list_t;
    Begin
    temp:=sys.aq$_jms_text_message.construct;
    v_recipients(1) := sys.aq$_agent('bamclient',null,0);
    *# v_recipient is case sensitive, this is the name of the external user who should pick up this AQ*
    message from the bus. (should match on BAM side)
    v_message_properties.recipient_list := v_recipients;
    xml_complete :=
    '<?xml version="1.0"?><row>' ||
    '<EMPNO>' || :new.EMPNO || '</EMPNO>' ||
    '<ENAME>' || :new.ENAME || '</ENAME>' ||
    '<JOB>' || :new.JOB || '</JOB>' ||
    '<MGR>' || :new.MGR || '</MGR>' ||
    '<HIREDATE>' || :new.HIREDATE || '</HIREDATE>' ||
    '<SAL>' || :new.SAL || '</SAL>' ||
    '<COMM>' || :new.COMM || '</COMM>' ||
    Tech Note: Oracle BAM: Integration with Oracle AQ / Database
    TechNote_BAM_AQ_Configuration.doc
    Page 4 of 9
    Nov 6, 06 (version 10.1.3)
    Document version (5)
    Oracle confidential, All rights reserved
    '<DEPTNO>' || :new.DEPTNO || '</DEPTNO>' ||
    '</row>' ;
    temp.set_text(xml_complete);
    dbms_aq.enqueue(queue_name => 'bam_ttq',
    enqueue_options => v_enqueue_options,
    message_properties => v_message_properties,
    payload => temp,
    msgid => v_msgid );
    commit;
    end ;

  • 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

  • I want to access JMS Queue in websphere from a client application

    Hello all
    I tried to access a jms queue in the websphere from a client application
    my connection factory jndi name is : MyConn
    my queue name jndi name is : MyQueue
    and here is my code :
    Hashtable environment = new Hashtable();
    environment.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.ibm.websphere.naming.WsnInitialContextFactory");
    environment.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");
    environment.put(Context.PROVIDER_URL, "corbaloc:iiop:localhost:2809");
    return new InitialContext(environment);
    then:
    q = (Queue) ctx.lookup(QJNDIName);
    QueueConnectionFactory connFactory = (QueueConnectionFactory)
    ctx.lookup(ConnFactName);
    I had the following exception :
    javax.naming.NameNotFoundException: Context: networking/nodes/networking/servers/server1, name: MyQueue: First component in name MyQueue not found. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
    Can i have any help please ....

    Hi
    You are missing some critical jar files in your class path. It should be namingclient.jar, also please or something similar that is missing in classpath.
    HTH
    VJ

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

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

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

  • How to delete the messages from JMS Queue

    Hi,Can anybody help how to delete the messages from the JMS Queue.Thanks in advance.

    You can dequeue the message using a JMS client or delete it using Weblogic Admin Console -
    http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e13952/taskhelp/jms_modules/queues/ManageQueues.html
    Regards,
    Anuj

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

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

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

Maybe you are looking for

  • Sender filename in receiver payload without using mapping.

    hi Experts, I have a File to RFC scenario. wherein i need to pass source filename and filepath as parameter to RFC whenever file arrives at source directory. I am not using IR contents. What could be the simplest way to achieve this. One way ofcourse

  • Crosstab Conditional Formatting

    I am not sure if this is the correct location for this question, so I apologize in advance. I am using a trial of crystal reports to see if it will work for our ad hoc reporting needs - I am creating cross-tab report with activities across the top an

  • Copy all music via network so it's playable/backed up to Windows iTunes

    Hello all - I am a newcomer to the Mac world... I have a shiney new macbook pro for my main computer, and an older Windows XP desktop machine that I use for backups (I used to have a Windows Laptop until I got this one about a month ago.) On my windo

  • BI content -- Transfer rules are not mapping automatically

    Have  any one come across with this issue. We have connected R/3 system  to multiple BI systems. Eg:  we have 1 ECC6 & 2 BI systems. Business Scenario is . I have two different Companyu2019s  A & B in two different Network Domains ( Domain 1 & Domain

  • Drag & Drop Images Between Tabs?

    Hi, Forgive me if I am missing the obvious but I need some help. Just got myself an iMac and I am in the process of getting it set up how I like it, Made the move from a Windows PC where I used the FireFox browser. My plan had been to just use Safari