Announcement Announcement Module
Collapse
No announcement yet.
"send-timeout" attribute in <int:resequencer> Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • "send-timeout" attribute in <int:resequencer>

    Hi,

    As described in Docs 2.1.1.RELEASE/2.2.0.M1, there are a "send-timeout" attribute in <int:resequencer> which used to config the timeout for sending out messages.

    but I encountered the org.xml.sax.SAXParseException:
    cvc-complex-type.3.2.2: Attribute 'send-timeout' is not allowed to appear in element 'int:resequencer'.
    at com.sun.org.apache.xerces.internal.util.ErrorHandl erWrapper.createSAXParseException(ErrorHandlerWrap per.java:195)

    I also check the xsd files in http://www.springframework.org/schem...ration-2.1.xsd, it seems there are no attribute named "send-timeout".

    It's a release issue?
    Last edited by guoxu1231; May 22nd, 2012, 07:53 AM.

  • #2
    Hello

    Let me guess: you place <resequencer> inside a <chain>.
    Maybe it is a simple bug, when root element has one set of attributes, but within <chain> it has another. This is addressed to XSD.
    So, open, please, an issue in ther JIRA: https://jira.springsource.org/browse/INT and we will think about that.

    Thanks,
    Artem Bilan

    Comment


    • #3
      Sure , it is inside <chain>.

      Any workaround?

      JIRA Link:
      https://jira.springsource.org/browse/INT-2578

      Comment


      • #4
        Any workaround?
        Just place <resequencer> outside from <chain>. In other words: normalize your message-flow. All components are top-level elements and have 'input-' & 'output-channel' attributes.

        Good luck!

        For JIRA - thanks

        Comment


        • #5
          Originally posted by Cleric View Post
          Just place <resequencer> outside from <chain>. In other words: normalize your message-flow. All components are top-level elements and have 'input-' & 'output-channel' attributes.
          Handler Chain is the recommended way to simplifies linear configuration to avoid define channels for each individual component., isn't that so?

          Comment


          • #6
            isn't that so?
            Yes, it is.
            But it binds your hands and when you deside to place some additional logic within your 'chained' message-flow you may catch some issues.
            Right now, I think, we should make you message-flow working.

            Nevertheless, can you explain what is the reason to have 'send-timeout' here at all?

            Comment


            • #7
              isn't that so?
              Yes, it is.
              But it binds your hands and when you deside to place some additional logic within your 'chained' message-flow you may catch some issues.
              Right now, I think, we should make you message-flow working.

              Nevertheless, can you explain what is the reason to have 'send-timeout' here at all?

              Comment


              • #8
                Originally posted by Cleric View Post
                Nevertheless, can you explain what is the reason to have 'send-timeout' here at all?
                The input channel is int-ftp:inbound-channel-adapter, it will download all matched files in one polling.(max-messages-per-poll="-1" ).

                Downstream handler chain will archive, header enrich(for file re-sequence by timestamp), and resequence file by timestamp(the timestamp included in file name, the pattern like XXXX_20120510102010.txt), and chain other component together to meet other requirement.

                The "send-timeout" feature(TimeoutCountSequenceSizeReleaseStrategy) happen to meet my requirement since I'm not sure when left files arrived, so I'd like to use "send-timeout" to resequence all downloaded files and wait for a moment then go into left chained component.

                Default SequenceSizeReleaseStrategy may not suitable for my case. Any good idea?
                Last edited by guoxu1231; May 22nd, 2012, 05:13 AM.

                Comment


                • #9
                  Well, now I see it won't help you.
                  Resequence just sort MessageGroup and produces replies for each message in the group.
                  You're right: you can use here TimeoutCountSequenceSizeReleaseStrategy but it is appropriate for <aggregator>.
                  So, you can just place before <resequencer> <aggregator> with mentioned ReleaseStrategy.

                  Hope that will help

                  Comment

                  Working...
                  X