Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: failed to receive JMS response within timeout of: 5000ms

  1. #1

    Default failed to receive JMS response within timeout of: 5000ms

    I am getting "failed to receive JMS response within timeout of: 5000ms" while testing the springJMS integration.please find the attachements for code details.the follwoing details for flow of my sample appalication.
    1)GateWay,talk to router.
    2)Router, configure the output channel
    3)configure the ActiveMQ Queue and the "output channel" as a request-channel for jms:outbound-gateway.
    4)configure the <jms:inbound-gateway> for Queue and also configure the si:service-activator.
    5)configure the one more router and router channels.
    6)configure the one more ActiveMQ Queue and also done the same thing as mentioned in step-3 and 4

    I am using 1.0.4Release version
    Attached Files Attached Files

  2. #2

    Default Please help me on this issue

    Please help me on this issue

  3. #3
    Join Date
    May 2010
    Posts
    24

    Default

    When you send the message to the output queue, are you expecting a response? If not, then I don't think an outbound gateway is what you want. If you just want to send the message without waiting for any response, then use a <jms:outbound-channel-adapter> instead.

  4. #4
    Join Date
    Sep 2010
    Posts
    23

    Default

    Yes MattCarle, I faced the similar issue.. And it is resolved by configuring reply channel to outbound gateway.

    Means if we want ackowledgement or response from destination store we can use outbound gateway. If we dont need any response from destination store then we can use outbound channel adapter.

    Mohan Maligireddy

  5. #5

    Default

    Hi,

    I'm trying to send messages to a JMS queue, using the outbound-channel-adapter:

    Code:
    <si-jms:outbound-channel-adapter id="quinticStatusUpdateQueueChannelAdapter" destination="quinticStatusUpdateQueue"
    channel="quinticQueueChannel" />
    See complete code attached.

    This should be unidirectional, so no need to receive a reply back.
    However, when I send a soap message using a client tool (in this case soapUI), I receive the same error "failed to receive JMS response within timeout of: 5000ms".
    When I look on the queue, I can see that the message have been send, but the Reply-To Queue Manager is not empty.

    Why is the client still waiting for a reply when I'm using an outbound-channel-adapter? Is this default behaviour. Can I somehow disable or ignore the reply?

    Any help would be appreciated.

    Manfred
    Attached Files Attached Files

  6. #6
    Join Date
    Jan 2008
    Location
    Mohnton, PA USA (that's near Philadelphia)
    Posts
    2,148

    Default

    Sorry, i was just digging through it and realized you are not using adapter. You are in fact using jms-outbound-gateway. I can't find a single jms-outbound-adapter in your configuration but i see two jms:outbound-gateways

  7. #7

    Default

    Hi Oleg,

    Thanks for looking at the configuration.

    The outbound-gateway was outcommented.
    I've removed all outcommented configurations and attached the new file.

    There's one si-jms:outbound-channel-adapter defined (lines 94-96):

    Code:
    <si-jms:outbound-channel-adapter 
    id="quinticStatusUpdateQueueChannelAdapter" destination="quinticStatusUpdateQueue"
    channel="quinticQueueChannel" />
    and an si-ws:inbound-gateway (lines 68-69):

    Code:
    <si-ws:inbound-gateway id="inboundGateway"
    request-channel="bulkStatusUpdateRequestSoapChannel" />
    The client is still waiting for a reply.
    How can I prevent the timeout from occurring?

    Regards,
    Manfred
    Attached Files Attached Files

  8. #8
    Join Date
    Jan 2008
    Location
    Mohnton, PA USA (that's near Philadelphia)
    Posts
    2,148

    Default

    Ok, I see.
    I'll look at it in more details later, but my initial thought; it has something to do with the fact that your flow is bi-directional (so the $replyChannel is set in headers), but it ends with uni-directional component (jms outbound adapter).

  9. #9

    Default

    Hi,

    I've been doing some debugging and noticed that at some point the doSendAndReceive method is called (instead of doSend) in the
    MessageChannelTemplate class is called. The doSendAndReceive channel sets a reply and error channel. I can see that the $replyChannel is indeed set in the headers along the way.

    In another post (http://forum.springsource.org/showthread.php?t=95266) I read that gateways are always bi-directional. Could it be that the doSendAndReceive method is called because I have a ws:inbound-gateway which implicitly sets a reply channel?
    If so, how can I prevent this.


    Regards,
    Manfred
    Last edited by manfred.schurhoff@tnt.com; Oct 1st, 2010 at 05:03 PM. Reason: Update

  10. #10
    Join Date
    Jan 2008
    Location
    Mohnton, PA USA (that's near Philadelphia)
    Posts
    2,148

    Default

    As hard as I am trying i can't reproduce it. I can't even think of how is it possible.
    The timeout Message that you see is coming from JmsOutboundGateway which is only created for element 'outbound-gateway' and is a subclass of AbstractReplyProduciingMessageHandler. For 'outbound-adapter' we create JmsSendingMessageHandler which is an instance of the AbstractMessageHandler. So these two are not even in the same hierarchy.

    There must be something that I am missing.
    Couple of things we can do:
    1. What version of SI you are using? I might be trying to reproduce it in the wrong version.
    2. Could you somehow isolate this problem into a bare minimum configuration that is enough to reproduce the problem and send it over.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •