JMS QueueSender receiving response possible?

hi,
i am trying to write a JMS application. i can send a message from a QueueSender to a QueueReceiver with no problem. but is there a way the sender can get a response from the receiver after it sent something out? this would be similar to sending data via socket, where you can get a response back after you sent something out.
the only way i can think of is to instantiate a QueueReceiver object in the QueueSender class, but this makes things complicated as i would also need to create a separate message queue for each sender. Can someone give me some hints? thanks.

Hi,
Your query is not clear, if you are expecting the acknowledgement from the receiver you can do it by passing one of the values metioned below as second argument to createQueueSession or createTopicSession
Session.AUTO_ACKNOWLEDGE
or
Session.CLIENT_ACKNOWLEDGE
Regards
Mandagiri

Similar Messages

  • How to send te XML data using HTTPS post call & receiving response in ML

    ur present design does the HTTP post for XML data using PL/SQL stored procedure call to a Java program embedded in Oracle database as Oracle Java Stored procedure. The limitation with this is that we are able to do HTTP post; but with HTTPS post; we are not able to achieve because of certificates are not installed on Oracle database.
    we fiond that the certificates need to be installed on Oracle apps server; not on database server. As we have to go ultimately with HTTPS post in Production environment; we are planning to shift this part of program(sending XML through HTTPS post call & receiving response in middle layer-Apps server in this case).
    how i can do this plz give some solution

    If you can make the source app to an HTTP Post to the Oracle XML DB repository, and POST contains a schema based XML document you can use a trigger on the default table to validate the XML that is posted. The return message would need to be managed using a database trigger. You could raise an HTTP error which the source App would trap....

  • Received response from host (router IP address) with invalid source port 32784

    I replaced my old wireless router with a Cisco Linksys E4200, running firmware version 1.0.02 build 13  May 24, 2011.  About once a minute the router sends an unsolicited DNS message to the IPV4 multicast address 01:00:5e:00:00:fb with a destination IP address of 224.0.0.251.  The unsolicited message is a DNS response with source port 32784, transaction ID 0, flags 0x8400 (standard query response, no error), questions 0, answer RRs 2, authority RRs 0 and additional RRs 1.  The two answers both relate to the router itself: one has Name Cisco18738.local, type A (host address), class 1 (IN), cache flush true, time to live 1 minute, data length 4, and the address of the router.  The other is the reverse of the same address.  The additional record is for Cisco18738.local, type NSEC, class IN, cache flush true, time to live 1 minute, data length 5, next domain name Cisco18738.local, RR type A (host address).
    When my desktop computer receives these messages it logs an error, for example: "Jun 23 07:39:22 sauterws02 avahi-daemon[1067]: Received response from host 10.146.9.1 with invalid source port 32784 on interface 'eth0.0'"  The 10.146.9.1 is the router's IP address.  I also see these messages on the wireless link from my laptop.
    I suppose the E4200 is generating these DNS messages in a misguided attempt to make sure there is no old information about its name.  Is there a way to turn them off?  If not, is there a way to report this to Cisco as a bug?
    Solved!
    Go to Solution.

    gv wrote:
    1. To contact Linksys, call support.
    2. From the internet draft: "Multicast DNS implementations MUST
    silently ignore any Multicast DNS Responses they receive where the
    source UDP port is not 5353." Your avahi-daemon does not comply with this draft.
    Thank you for the reference.  For the sake of others who may read this thread, the current draft of multicast DNS is at http://www.ietf.org/id/draft-cheshire-dnsext-multicastdns-14.txt. 
    Here is the whole paragraph from which you quoted, from section 6 (Responding): "The source UDP port in all Multicast DNS Responses MUST be 5353 (the well-known port assigned to mDNS). Multicast DNS implementations MUST silently ignore any Multicast DNS Responses they receive where the source UDP port is not 5353."
    Thus, it appears that there are two errors here: the Cisco E4200 is not using 5353 as the source port, and the logger is not silently ignoring it.
    The message appears to be an announcement rather than an actual response to a query.  In section 8.3 (Announcing) I found this paragraph: "A Multicast DNS Responder MUST NOT send announcements in the absence of information that its network connectivity may have changed in some relevant way. In particular, a Multicast DNS Responder MUST NOT send regular periodic announcements as a matter of course."  Thus, it appears that there are three errors here.

  • Can I still receive responses after June 22?

    I have existing surveys that will still be collecting data after AdobeForms reduces functionality in late June. Can I still receive responses until the final retirement date?

    It is now common knowledge that iWeb, and iDVD, has been discontinued by Apple. This is evidenced by the fact that new Macs are shipping with iLife 11 installed but without iWeb and iDVD.
    On June 30, 2012 MobileMe will be shutdown. However, iWeb will still continue to work but without the following:
    Features No Longer Available Once MobileMe is Discontinued:
    ◼ Password protection
    ◼ Blog and photo comments
    ◼ Blog search
    ◼ Hit counter
    ◼ MobileMe Gallery
    All of these features can be replaced with 3rd party options.
    I found that if I published my site to a folder on my hard drive and then uploaded with a 3rd party FTP client subscriptions to slideshows and the RSS feed were broken.  If I published directly from iWeb to the FPT server those two features continued to work correctly.
    There's another problem and that's with iWeb's popup slideshows.  Once the MMe servers are no longer online the popup slideshow buttons will not display their images.
    Click to view full size
    However, Roddy McKay and I have figured out a way to modify existing sites with those slideshows and iWeb itself so that those images will display as expected once MobileMe servers are gone.  How to is described in this tutorial: #26 - How to Modify iWeb So Popup Slideshows Will Work After MobileMe is Discontinued.
    It now appears that the iLife suite of applications offered on disc is now a discontinued product and the remaining supported iApps will only be available thru the App Store from now on. However, the iLife 11 boxed version that is still available at the online Apple Store (Store button at the top of the page) and those still on the shelves of retailers will include iWeb and iDVD. Those two apps were listed in small, gray text on the iLife 11 box that I bought.
    Personally, if I didn't already have a copy I would purchase one to have it for reinstallation purposes if ever needed.
    This may be of interest to you: Life After MobileMe.
    OT

  • Sending Bids from SRM to suppliers and receiving responses

    Hi Experts,
    Help me with a suggestion for sending Bids from SRM to suppliers and receiving responses - preferably through email adapter.
    Regards,
    Hemanthika
    Edited by: hemanthika patnaik on Apr 28, 2008 2:24 PM

    Sorry for the delay,
    I have worked in a similar integration with SRM - XI, but the only difference is that we used Proxy -- HTTPS for Purchase Order Request.
    In your case it would be:
    1. Create custom IDOC and Message type.
    2. Find the triggering process from the SRM side, trigger the IDOC from SRM.
    3. Generate the partner profile and ALE config.
    4. Import the custom IDOC in XI.
    5. Use a map in XI to convert the IDOC data to customer format.
    6. Use  HTTP adapter to connect.
    7. In the HTTP adapter you can use url method or the RFC destination to do the connectivity. ( I would recommend using the RFC destination to do it.)
    8. You should be receiving an acknowledgment from the customer when the document is posted at their end.
    9. The response is either 200 for successful transmission. It would be 400 or 500  for errors.
    10. Use the response message to do a message map with the mail adapter.
    11. Generate the content of the mail adapter using the message map.
    12. In the message map ideally you should use Value mapping to generate the   TO and FROM data. (This enables you to change the receipients while in development and production without changing the message mappinng program.)
    13. Use mail package in the Mail adapter to send the mail content to the business users.
    Hope this helps.
    Indranil.
    Award points if this helps

  • Failed while receiving responses: not exact

    I have AD DNS to NW 6.5.8 named Version 6.07.05 zone transfer setup
    Which works fine, but after adding new record to AD DNS I get on named
    screen the above error, but then the record syncs OK
    Seb

    Ofcourse they are
    They are auto created in first place
    The sync happens OK, so I do not think that the error message is actually an
    error
    error: transfer of '_msdcs.brookgreen.spgs.local/IN' from 10.0.0.14#53:
    failed while receiving responses: not exact
    Seb
    "peterhine" <[email protected]> wrote in message
    news:[email protected]..
    >
    >> I have AD DNS to NW 6.5.8 named Version 6.07.05 zone transfer setup
    > Does this mean the Novell one is a secondary or is it a master and
    > you've setup some other transfer mechanism ?
    >
    > are the names of the zones ** "EXACTLY" ** the same in both servers ?
    >
    > p
    >
    >
    > --
    > peterhine
    > ------------------------------------------------------------------------
    > peterhine's Profile: http://forums.novell.com/member.php?userid=36800
    > View this thread: http://forums.novell.com/showthread.php?t=457068
    >

  • Why am I no longer receiving responses?

    I have not changed any settings, yet responses have suddenly stopped being sent to the email address I have listed as the recepient.
    Not sure why they have stopped, when I had no issues receiving responses before.
    I am the author of the form, but have listed another one of my email addresses to receive responses.  The address is a verified adobe formscentral account.
    Notifications are turned on.
    The correct email is listed in the To field.
    Please help.

    Can you please share you form with me ([email protected]) as a co-author and I'll check what could be wrong.
    Gen

  • Agent "User" is not enabled for enterprise voice. Only Enterprise Voice users can receive Response Group calls.

    I have standard edition Lync 2013 deployed. I have also enabled enterprise Voice for all my users.
    When I try to create a response group under group tab, I add the enterprise voice enabled users to the group and click on commit I get this warning:
    Agent "User" is not enabled for enterprise voice. Only Enterprise Voice users can receive Response Group calls.
    This is clearly a glitch since the users are already enabled for enterprise voice. Has anyone come across this issue before?
    Thanks

    Have you tried restarting the Response Group service? Are you able to add any EV enabled users to this RGS?
    Please remember, if you see a post that helped you please click "Vote As Helpful" and if it answered your question, please click "Mark As Answer"
    Lync Sorted blog

  • Soap proxy to jms business service response not available.

    Hi
    Please can anyone help me with this really urgent, help is greatly appreciated.
    We have one Proxy Service which takes in SOAP Request, and I have a route node in it which calls the biz service.
    Business service is a Messaging service built using jms queue and response URI is configured with jms out queue.
    If I run business service standalone it gets the message and response comes to out queue.
    if I run it through proxy service which routes to biz service, the message goes to biz service, and response goes to out queue, but I do not get response in http proxy.
    Please can someone help.
    thanks
    K.

    Basically the logic to consume msg requires full SOAP message as text, now when I use BS as Messaging Service it works fine because in test I put the full soap message as text. If I run it through Proxy it strips the header and sends only Body or if I base both my BS and PS using WSDL, then it attaches full soap message in multiple soap header and that causes the problem, so I have to remove extra header from message to have it processed correctly.
    this is my actual request:
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    the trace shows that request to BS is:
    <soapenv:Body      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    /SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    </soapenv:Body>
    so my message consumer has problem with extra soapenv:Body wrapper... any ideas will help.
    thanks
    K.

  • How to notify the exceptions in JMS sychronous request-response processing?

              Hi All,
              Pl. help me with ur expertise in the foll. scenario we are facing.
              Scenario:
              I have a requirement where I need to notify the exceptions to my client while
              the client request's are processed asynchronously and my client is waiting in
              synchronous for the response.
              The client is sending a message to one queue (QueueA) and waiting for response
              in another queue (QueueB). The message from "QueueA" is picked up by a MDB listening
              to "QueueA" and it throws an exception while processing some "business logic".
              In this case how do I notify to my client who is waiting in another queue. i.e.
              "QueueB" that there is an exception occurred while processing the business logic.
              I am using JMSCorrelationID to uniquely identify a response for a request sent
              by the client.
              What are the possible options to handle exceptions in JMS for an implementation
              like the one mentioned above.
              Any comments/feedback/pointers will be REALLY REALLY appreciated.
              Tks and regds
              C R Baradwaj
              

              Raghuram Bharadwaj C wrote:
              > Tom,
              >
              > Once again thanks a lot for your prompt response!
              >
              > Yes, A Knows how many downstream queues are involved.
              >
              > For unanticipated multiple responses
              >
              > If I do a select for update in all the MDB's listening to "QueueB/QueueC/QueueD",
              > only one response message will be sent to the "ResponseQ".
              Does this run the risk of serializing the database access? If
              B/C/D have no messages so that a new operation causes all
              three to fire at once, will they end up serializing on their
              respective selectForUpdate calls, losing parallelism?
              >
              > The response from all the datasource(s) are updated in the database by the MDB.
              > The MDB which updates the database last will consolidate all the response(s) and
              > send one final response to the "ResponseQ".
              >
              > This will be picked up the client who is waiting in the "ResponseQ". There wont
              > be multiple message(s) placed in the "ResponseQ".
              >
              > In this situation, How do I handle exceptions that occur in downstream MDB's?
              Use multiple responses. MDB's send error message on response.
              Or have failing MDB put an error message in the database table, so
              that the final responder can read the error message?
              >
              > Many Thanks in Advance,
              > C R Baradwaj
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              > Tom Barnes <[email protected]> wrote:
              >
              >>
              >>Raghuram Bharadwaj C wrote:
              >>
              >>>Thanks tom for your support!
              >>>
              >>>Let me explain more about the problem.
              >>>
              >>>Scenario
              >>>========
              >>>Lets take a simplest case where the client is sending a message to
              >>
              >>"QueueA" and
              >>
              >>>he is now waiting for a response in the "ResponseQ"
              >>>
              >>>The MDB listening to "QueueA" wakes up and split the message(s) into
              >>
              >>three and
              >>
              >>>passing it to the next layer of datasource specific queue(s). The queue(s)
              >>
              >>are
              >>
              >>>"QueueB", "QueueC" and "QueueD".
              >>>
              >>>The MDB listening to the datasource specific queue(s) picks up the
              >>
              >>datasource
              >>
              >>>request sends it to the datasource and gets the response back from
              >>
              >>the datasource.
              >>
              >>>The MDB also updates a table in the database with the response. The
              >>
              >>MDB also check(s)
              >>
              >>>after updating the database to see all response(s) from all the datasource(s)
              >>>are reached. If yes, one of the MDB also sends a acknowledgement to
              >>
              >>the "ResponseQ".
              >>
              >>>
              >>>The client listening to the "ResponseQ" gets the acknowledgement and
              >>
              >>hit the database
              >>
              >>>to collect all the response(s) from all the datasource(s). These response(s)
              >>
              >>are
              >>
              >>>formatted and sent a response to the client. We have also created uniqueid
              >>
              >>for
              >>
              >>>identifying each request. This uniqueid is set in the JMSCorrelationID.
              >>
              >>The client
              >>
              >>>uses the uniqueid to collect all the response(s) for the request he
              >>
              >>had sent.
              >>
              >>>Problem
              >>>=======
              >>>If an error/exception occurred in a one of the MDB which is listening
              >>
              >>to QueueB/QueueC/QueueD.
              >>
              >>>How do we handle this?
              >>>
              >>>Please let me know all the possibilities that you would have done in
              >>
              >>this case.
              >>
              >>>
              >>Does A know how many downstream queues are involved? As part of its
              >>transaction it can send a message to the responseQ stating which
              >>queues to expect responses from. The client gets this message
              >>and knows that it must get responses from all of B, C, D, etc.
              >>before assuming success. On a failure, B, C, D, etc. can send
              >>an error message back to the response Q, or the client can
              >>simply timeout.
              >>
              >>This way there are no race conditions
              >>involving unanticipated multiple responses or missing
              >>responses, which I think the
              >>algorithm you mention above can create.
              >>Assuming just B and C (no D):
              >> B detects C is done by checking the DB
              >> C detects B is done by checking the DB **at the same time**
              >> Two response messages get sent
              >> - or -
              >> B finishes detects C not done, and sends no message.
              >> C finishes, B is finished but not reflected in DB yet, sends
              >> no message.
              >>
              >>NOTE: Be aware that when a transaction commits, different
              >>resources can response "faster" than others. The transaction
              >>monitor has no control over this. So, if as part of the
              >>same commit, a database insert and a queue insert is
              >>performed, it is possible for a consumer to receive the
              >>new message BEFORE the new database insert actually completes.
              >>
              >>
              >>>
              >>>Many Thanks in Advance,
              >>>
              >>>C R Baradwaj
              >>>
              >>>
              >>>
              >>>
              >>>
              >>>
              >>>
              >>>
              >>>Assuming that
              >>>
              >>>Tom Barnes <[email protected]> wrote:
              >>>
              >>>
              >>>>One approach is to send an "error" message to QB that uses
              >>>>the JMSCorrelationID the consumer is expecting. This will
              >>>>wake up the consumer, and the consumer can react to
              >>>>the error as needed.
              >>>>
              >>>>Another is to use two asynchronous listeners, one on the
              >>>>response queue, and one on a temporary (client created)
              >>>>queue. On error detection the MDB can send error messages
              >>>>to the temporary queue.
              >>>>
              >>>>You may want to skim the book "Professional JMS" - as I
              >>>>recall, it contains a section on queueing design patterns.
              >>>>
              >>>>Tom
              >>>>
              >>>>Raghuram Bharadwaj C wrote:
              >>>>
              >>>>
              >>>>
              >>>>>Hi All,
              >>>>>
              >>>>>Pl. help me with ur expertise in the foll. scenario we are facing.
              >>>>>
              >>>>>Scenario:
              >>>>>I have a requirement where I need to notify the exceptions to my client
              >>>>
              >>>>while
              >>>>
              >>>>
              >>>>>the client request's are processed asynchronously and my client is
              >>>>
              >>>>waiting in
              >>>>
              >>>>
              >>>>>synchronous for the response.
              >>>>>
              >>>>>The client is sending a message to one queue (QueueA) and waiting
              >>
              >>for
              >>
              >>>>response
              >>>>
              >>>>
              >>>>>in another queue (QueueB). The message from "QueueA" is picked up
              >>
              >>by
              >>
              >>>>a MDB listening
              >>>>
              >>>>
              >>>>>to "QueueA" and it throws an exception while processing some "business
              >>>>
              >>>>logic".
              >>>>
              >>>>
              >>>>>In this case how do I notify to my client who is waiting in another
              >>>>
              >>>>queue. i.e.
              >>>>
              >>>>
              >>>>>"QueueB" that there is an exception occurred while processing the
              >>
              >>business
              >>
              >>>>logic.
              >>>>
              >>>>
              >>>>>I am using JMSCorrelationID to uniquely identify a response for a
              >>
              >>request
              >>
              >>>>sent
              >>>>
              >>>>
              >>>>>by the client.
              >>>>>
              >>>>>What are the possible options to handle exceptions in JMS for an implementation
              >>>>>like the one mentioned above.
              >>>>>
              >>>>>Any comments/feedback/pointers will be REALLY REALLY appreciated.
              >>>>>
              >>>>>Tks and regds
              >>>>>C R Baradwaj
              >>>>
              >
              

  • JMS - PI - IDoc scenario: possible to disable check for duplicate JMS message ID?

    Dear all,
    we have a scenario JMS - PI - IDoc. We are on 7.4 SP 7 AEX.
    Once and again we get this error in PI Logs
    com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(MessageFilterContext filterCtx)
    Duplicated and already processed JMS message with JMSMessageID ID:414d512053415050523120202020202053f0f4852000fb39 and XI message id b0beffdbcee64c2605779eaacf27b335 detected.
    We are currently investigating the error and it seems that the duplicate message IDs already exist on the JMS (MQ) side. The messages with the same ID reside in the same queue but have different payloads, so really are different messages
    While it's certainly true that we need to get rid of those duplicate IDs in the long run, I'd like to ask if it is possible to tackle the problem from both sides.
    My sender JMS Adapter looks like this:
    Transactional JMS Session = Checked
    Set PI Message ID (MessageID) to = GUID
    Set PI conversation ID (ConversationID) to = No Value
    Enable Duplicate Handling = Unchecked
    Prefix Channel ID = Unchecked
    --> Is there any way to tell PI to just ignore the duplicate JMS ID and continue processing?
    Many thanks
    Kind regards
    Jens

    Hi Jens - Please have a look at the below note if it helps.
    If you want the duplicate messages received from different channels (that is JMS Messages with the same Message ID) to be processed as a distinct JMS messages and not as duplicate messages, select Prefix Channel ID to JMS Message ID
    Reference :
    Configuring the Sender JMS Adapter - Advanced Adapter Engine - SAP Library

  • Send XML Message via HTTP and Receive Response

    Hello,
    We have a scenario where we need to update Currency Exchange Rates in R/3 via a 3rd party called Oanda.  I'd like to use XI for this Interface, if possible. 
    Basically, we need to send XML over HTTP.  Here's the URL and the XML we need to use for our POST (I'll need to perform the look-up for about 15 currency codes - I plan on using a BPM process to loop through each currency code specified in a flat file):
    http://www.oanda.com/cgi-bin/fxml/fxml?fxmlrequest=<CONVERT><CLIENT_ID>TestAccount1</CLIENT_ID><EXCH>USD</EXCH><EXPR>CAD</EXPR><DATE>03/25/2008</DATE></CONVERT>
    And the reponse looks like this:
    <RESPONSE>
      <EXPR>CAD</EXPR>
      <EXCH>USD</EXCH>
      <AMOUNT>1</AMOUNT>
      <NPRICES>1</NPRICES>
      <CONVERSION>
        <DATE>Mon, 24 Mar 2008 20:00:00 GMT</DATE>
        <ASK>1.0257</ASK>
        <BID>1.0251</BID>
      </CONVERSION>
    </RESPONSE>
    I plan on mapping each reponse to BAPI_EXCHRATE_CREATEMULTIPLE, using BPM.
    So my question is this:  Should I use the HTTP adapter for the out going POST to Oanda?  If so, would the HTTP adapter be consider the sender or the receiver?  Also, how would the XML message be automatically appended to the end of the URL (i.e., after the fxmlrequest parameter)?  I guess I'm a little confused on how to use the HTTP adapter...  Are there any blogs that discuss this type of scenario?
    Thanks,
    Matt

    Hi guys,
    I have few concerns for setting up this scenario.
    1). I have created a data type for request mapping, and teste the mapping.
    The output looks like below:
      <?xml version="1.0" encoding="UTF-8" ?>
      <ns1:MT_CONVERT xmlns:ns1="http://test.com/ExchngRate">
       <CONVERT>
         <CLIENT_ID>test</CLIENT_ID>
         <EXPR>CAD</EXPR>
         <EXCH>USD</EXCH>
         <DATE>10/21/2009</DATE>
         <AMOUNT>1</AMOUNT>
       </CONVERT>
      </ns1:MT_CONVERT>
    How to pass only
      <CONVERT>
         <CLIENT_ID>test</CLIENT_ID>
         <EXPR>CAD</EXPR>
         <EXCH>USD</EXCH>
         <DATE>10/21/2009</DATE>
         <AMOUNT>1</AMOUNT>
       </CONVERT>
    to the receiver HTTP adapter.
    2) I am using URL address in the receiver HTTP adapter.
    Target Host: www.oanda.com
    Path Prefix: cgi-bin/fxml/fxml?fxmlrequest=
    What is will be Service Number?
    Looking forward for you help. Your help is greatly appreciated.
    Thanks,
    Namadev
    Edited by: Namadev Chillal on Oct 21, 2009 5:35 PM

  • Scaleability of JMS Clients Receiving Messages

    How do you scale the receipt of messages in a JMS client for messages from the same topic?
    Given a topic, I would like to enable concurrent receipt and processing of messages by many concurrent listeners where a single message is only consumed once by any of the listeners. Even more, I would like to scale by having many clients with possibly many listeners servicing the same topic where a single message is only consumed/processed once.
    However, based on the documentation (see below) it appears sessions only enable a single thread of execution to be simultaneously running servicing incoming messages one at a time! And adding subscribers implies the delivery of a single message to each subscriber creating duplicate processing of the same message.
    Quote from JMS Tutorial: "The session used to create the message consumer serializes the execution of all message listeners registered with the session. At any time, only one of the session's message listeners is running."

    Hi vincegeorge,
    To be able to have several consumers actively using message listeners concurrently you could create each consumer on a different session. This would get around your problem of concurrent receipt and processing of messages when using message listeners.
    The second problem, ensuring that each message is received by only one TopicSubscriber is much more difficult. As each subscriber will receive every message that is sent to the particular topic then each subscriber will be sent a copy of that message. The only exception to this rule is if you have set a "message selector" for the consumer. If you knew exactly which subscribers were active at the publisher end then you could set a property on the message, e.g. SubscriberID=1, on the message and then each subscriber could set a message selector to say that they only wished to receive messages with the property SubscriberID set to their particular number. To notify the publisher which subscribers are active you could have a special destination that contains heartbeat messages informing everyone of their subscriberID.
    However, is it possible instead though that you could use a queue. This would be much easier to code (no message selector and no need to keep everyone informed of which subscriberID's are available) as the queue would ensure that only one receiver ever consumed the message.
    Hope this helps a little,
    Tom Jenkinson
    Arjuna Technologies Limited

  • JMS MDB manual rollback possible ?

    Hi,
    I want to know if it's possible to manually roll back a message if something goes wrong ?
    I have a Message Driven Bean that receives a message and sends it over http to another component. Now I want to make sure that my message isn't lost. So in case of an http timeout I want the message to be put back on the queue in front of following messages.
    As I read before, a message is removed from its JMS Queue in case the onMessage method of the bean completes, so in my code
    public void onMessage(Message message){
    try{
    //send message over http
    }catch(Exception e){
    //this is where I want the message to be roll-backed
    As it is now, if there is an http timeout, an axception will be catched, but the onmessage method will still be executed successfully, and the message will be removed from the queue, result, a loss of the message.
    is this possible with standard jms ?
    kind regards
    Bert

    It is certainly possible, but it depends on how your application is working.
    if you are working with beans: No problem, just set the MessageDrivenContext.SetRollBackOnly() -> rolls back the transaction! (in case of Container managed transaction), if you are using your own transactions, simply roll them back your self.
    If you are not using beans, you simply do not acknowledge your message, for JMS a message needs to be acknowledged before it assumes that it is delivered. So set your ACK_MODE to CLIENT_ACKNOWLEDGE and in case of an exception do not acknowledge it, otherwise, do acknowledge it.
    Since you are using a MDB the first solution should be used in your case.

  • Upgraded 10g - 11g: Standalone JMS not receiving messages async (listener)

    I had a small application that received messages from the oracle database through JMS (asyncronously). It worked when the database was 10g, but the messages are no longer being received through the JMS listener (staying in queue table) after the database was upgraded to 11g.
    I used another 10g instance on the same server - and it is still working on 10g.
    Is there some sort of configuration - specific to 11g - that needs to be done to accomplish the same thing in 11g?

    As I've no idea what version of 10g or 11g and you've posted no code my only possible recommendation is that you hit the docs: http://tahiti.oracle.com and look at what changed.

Maybe you are looking for