Polling a JMS Queue

Hi,
I am new to ODI,my scenario is that I want to poll a JMS Queue, from ODI for messages, and once I receive the message I want to persist it in DB, I need help to make this work.
Thanks,
Rahul

I think you ran into a known Bug that has been fixed in recent versions/service-packs (sorry, I don't know the version number). Setting the delivery mode override to Persistent is fine as a work-around as long as you're sure that your applications don't send non-persistent messages to the affected destinations. If this is a concern and you need to force the delivery mode override back to its default whilst still keeping your time-to-live override, I think you can probably do this by shutting down your domain, then editing your XML to remove the delivery mode override stanza, and finally restarting...
Tom

Similar Messages

  • B2B 11g - Managing File name from a JMS queue.

    Hi,
    I have configured a Listening Channel to use Generic File 1.0 (to poll a file from local dir) and send it to a Trading Partner. In B2B User Guide it has been said to have the file name as %TO_PARTY%_%DOCTYPE_NAME%_%DOCTYPE_REVISION%_%MESSAGE_ID%_TIMESTAMP.txt. Extension can be anything (txt, dat, etc).
    It is necessary to have this format? What if I want to send a file with name say ABC.txt*.
    How will I manage this file name pattern if I have to read the file content from a JMS queue (and then send the file to the Trading Partner).
    Thanks,
    Sanjay
    Edited by: Sanjay Bharatiya on 24-Nov-2010 12:07 PM

    Hi Anuj,
    I set up AS2 in my local environment and tested it. I do not get the desired name of the file. The wire message seems to be ok. Following is the Tranport Header present in the wire message from the sender B2B server:
    Message-ID=<ID:<172014.1291742389684.0>@kg_certificate> Content-Transfer-Encoding=binary MIME-version=1.0 From=kg_certificate Disposition-Notification-To=[email protected] AS2-To=exel_certificate User-Agent=AS2 Server Date=Tue, 07 Dec 2010 17:19:50 GMT AS2-Version=1.1 AS2-From=kg_certificate Content-Disposition=attachment; filename=J7Q9A7.txt Content-Type=*application/octet-stream*
    Following is the Transport Header present in the wire message from the receiver B2B server:
    AS2-To=exel_certificate TE=trailers, deflate, gzip, compress Date=Tue, 07 Dec 2010 17:19:50 GMT AS2-Version=1.1 Accept-Encoding=gzip, x-gzip, compress, x-compress AS2-From=kg_certificate Content-Transfer-Encoding=binary Disposition-Notification-To=[email protected] Message-ID=<ID:<172014.1291742389684.0>@kg_certificate> Content-type=application/octet-stream MSG_RECEIVED_TIME=Tue Dec 07 12:20:39 EST 2010 ECID-Context=1.0000In1qASoEoI05nzp2iZ1Cxam9001KGU;kXCmv0 MIME-version=1.0 User-Agent=AS2 Server Oracle HTTPClient Version 10h Content-Disposition=attachment; filename=J7Q9A7.txt Content-Length=211 Host=10.32.200.207:8001 Connection=Keep-Alive, TE From=kg_certificate
    Things look good here but when the file is written to a directory the file name is of the form <sendername>_<doctypename>_<docrevision>_<msgtype>_*****.dat. I do not get the desired file name (J7Q9A7.txt). What am I missing?
    Thanks,
    Sanjay
    Edited by: Sanjay Bharatiya on 7-Dec-2010 11:59 AM

  • Make jms queue forward messages to a proxy service

    Greetings!
    Here's my task. I have a pretty complex proxy service that routes the message to different web services. This proxy has a conditional branch. Now, what I needed to do was implement a JMS queue and fuse it with my proxy. I have successfully created a proxy and a business service that send messages to the JMS queue. However, the queue doesn't forward the messages to my routing proxy. My guess is that when the queue tries to send the message to my proxy, it encounters a conditional branch and doesn't know which branch to use. I have tried to put a log action in the default branch to determine if the message ends up there, but it doesn't.
    If anyone knows a way to forward messages from a JMS queue to a proxy with a conditional branch, please advise a solution.
    Thanks in advance,
    Andrew

    Hello Andrew,
    To communicate with JMS (either to poll JMS for dequing messages or to connect to JMS to enqueue a message), you have to use JMS transport in Oracle Service Bus.
    I am still not sure if this would have worked had I left the conditional branch in my Message Flow.It will work. You may try configuring it.
    Could you please be more specific as to where I can enable message tracking for my proxy service?You may enable message tracing in "Operational Settings" of a particular proxy/business service. Please refer sections "Configuring Operational Settings for Proxy Services" and "Configuring Operational Settings for Business Services" on below link to know more -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/monitoring.html#wp1028056
    Should it be enabled for a specific proxy service or for all of them?You may enable it for all or for a particular service. It depends on requirement.
    Regards,
    Anuj

  • Polling message from Queue

    Hi B2B Gurus,
    Is there any way that I could control polling messages from Queue(AQ/JMS).
    (e.g) There are 1000 messages in the queue, I want to process 10 at a time.
    Are there any settings that can I do so that i can poll 10 messages at a time.
    Thanks for your help in Advance.
    Regards,
    Priyanka

    Polling is only based on the interval and not based on size. Please raise an ER.

  • Redirecting Fault Response to JMS queue

    Hi Everyone,
    We have a proxy which will pole the request from RequestQueue and call a proxy service(backend) and wait for the response from the proxy service(backend).
    Once we get the response, it has to put the response to the ResponseQueue.
    RequestQueue-->PoleService
    PolseService-->ProxyService(Backend)
    ProxyService1(Backend response)-->PoleService-->ResponseQueue
    We are able to send the success response to the ResponseQueue. But when there is an Soap fault returned from ProxyService(Backend), the fault response is not getting redirected to ErrorQueue.
    We have enabled ISResponseRequired, and also given ResponseURI and error Destination in poleProxyService. Also enabled "Same transaction for response"..  when there is an Soap fault returned from ProxyService1(Backend) ErrorQueue has the initial request in it instead of soap fault.
    In RequestQueue->deliveryFailure, we have given ExpirationPolicy-Redirect, ErrorDestination-ErrorQueue
    Could you please help us in redirecting the entire soap fault from the backend to the ErrorQueue

    There is no need to add any publish/route action separately to put a response, whether success or fault, on the response queue. If a Proxy has a response jms queue specified, then it will put the content of $body at the end of proxy processing in the response queue automatically.
    Here is how error handling can be done for JMS request-response proxies.
    1. Add an error handler to the route node in the Poller proxy service (where you are routing to the next proxy/business service)
    2. In the error handler, put an if-else block. Check the response form the 2nd proxy/business service, if $body contains a SOAP Fault then just do a Reply with Success, this will ensure that the SOAP Fault returned by the backend is sent to the response queue. In the else section(meaning that it was a system fault while calling the backend service) you can so a Replace of $body with $fault or with a custom SOAP fault expression before doing Reply with Success. This way you can ensure that you always return a SOAP Fault on the response queue in all scenarios.

  • Read message synchronously from JMS queue using OSB

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

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

  • JMS Queue up or down

              HI,
              As part of the application I am developing, I need to write a message on a JMS
              Queue of
              another application (called Acq).
              Is their anyway of knowing programmatically whether the other application's (Acq)
              JMS Server is up or down.
              Thanks for the help
              ---Radhe
              

    Hi Radhe,
              Search for "server health monitoring" in the docs.
              Or simply register a standard JMS connection onException
              and also a weblogic extension JMS session onException listener
              to listen for failures once the client succeeds
              in connecting. (poll/connection/onException repeat)
              Or use a store-and-forward design, where a local
              queue that is always there has an application MDB
              or a Messaging Brdige that forwards to the remote destination.
              This allows the produce to continue even if the remote side is down.
              Tom
              Radhe wrote:
              > HI,
              >
              > As part of the application I am developing, I need to write a message on a JMS
              > Queue of
              > another application (called Acq).
              >
              > Is their anyway of knowing programmatically whether the other application's (Acq)
              > JMS Server is up or down.
              >
              > Thanks for the help
              > ---Radhe
              

  • 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)

  • How to configure my JMS QUEUE serve only one message at a time?

    Hi All,
    I have requirement where I need to develope a JMS QUEUE in weblogic. This MDB has to serve only one message at a time. Is there any way to configure via annotations or in weblogic server settings ?
    Any help would be really appreciated...
    Thank you,
    K.

    I'm not aware of any way to configure the max pool size via annotations, you might try posting to the EJB newsgroup (please post back the answer). Of course you can set the size via an EJB descriptor, as per the MDB chapter of the Performance and Tuning guide in the edocs.
    By the way, if you have ordered message processing requirements, I highly recommend taking a look at the WebLogic JMS "Unit-of-Order" (UOO) feature as per the UOO chapter of the JMS programmer's guide. For a variety of reasons, the UOO features is often, by far, the best option for handling such requirements. If this feature applies to your use case, then there would be no need to force single threaded message processing in some sort of manual fashion (the feature enforces this for you).
    Tom

  • Dequeue from JMS Queue 10 at a time and process it.

    Hi,
    I have created a JMS queue in weblogic.
    Say i enqueue 1000 records in the queue at one go.
    Now, i want a bpel process to dequue from it and process it.
    However as per my requirement i want at a time 10 instances being active at a time i.e. 10 records from the queue are being processed at a time.
    Once any one of them finishes, the other will pick up the message.
    1 BPEL instance will process only 1 record from Q at a time
    Please let me know how to achieve this.

    You need to understand here that it is adapter which deques the message from queue and it will deliver it to BPEL for processing which is an async process. So adapter will keep dequeing messages and keep publishing it to BPEL irrespective of whether BPEL process has completed processing.
    You may need to tweak the adapter configuration here. First of all create the synchronous BPEL composite so that both adapter and BPEL work in same transaction -
    https://blogs.oracle.com/adapters/entry/creating_a_synchronous_bpel_composite_using_file_adapter
    You may control the number of threads for inbound JMS adapter using binding property "adapter.jms.receive.threads" in composite.xml
    Regards,
    Anuj

  • Multiple Messages in Same JMS queue

    Hello,
    I have interfaces in which different xml messages from the same sender system will be placed in the same MQ queue, is there a way that XI JMS sender channel can differentiate the xml messages based on the payload?
    I can create a single communication channel, but the outbound message interface I cannot create a common structure because the xml messages are huge and there will be future interfaces following the same architecture.
    1. How can I route in interface determination based on the context in the inbound msg interface?
    2. What can I provide as Message interface for the outbound?
    3. MessageSelector attribute in Adapter specific properties - any ideas on this? - I can select this in the condition context in interface determination - can I give any values here to differentiate msges?
    4. Value mapping - is it possible to define the sender message interface through this?
    Any idea is appreciated..THank you..

    Hi Thanujja,
    We have recently completed a project that had this requirement too. We made use of the MessageSelector to solve this problem. You'll need to make use of some advanced (advanced tab)settings in the comm channel. Basically you want to add Additional JMS Message Properties. You can add up to 10 additonal JMS Properties.
    Let's say you've added a property called MESTYP. You then need to get the sender to populate the MESTYP property with a text value for each IDoc involved e.g. DELVRY. You would then set your JMS Message Selector field as follows: MESTYP='DELVRY'.
    You'll have a comm channel for each IDoc. These comm channels will then connect to the JMS Queue & only pick up messages that meet the criteria at set in the Message Selector.
    There was one other problem that encountered with Message Selector, we were on XI version 7.0, the Message Selector was working intermittently & then we applied SAP Note 1256636 & upgraded to 7.01. Everything is working fine after that.
    Trevor

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

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

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

Maybe you are looking for