Understand how to clean store if we have exception between Splitter and Aggregator or recipient-list-router and Aggregator in Spring IntegrationSpring splitter/aggregator handling exceptionsSpring Integration 2 - Splitter only returns the first elementSpring Integration - Gateway - Splitter - Aggregator with JMSSpring splitter/aggregator handling exceptionsSpring integration: how to handle exceptions in services after an aggregator?Splitter returning empty array list spring integrationHow to ignore ChannelResolutionException in a Spring Integration router?spring integration - splitter and aggregatorSpring integration - how to split list of object to individual spring integration message using splitterSpring Integration Aggregator or Router the right pattern?Spring Integration splitter and aggregator configuration

Re-submission of rejected manuscript without informing co-authors

Can a planet have a different gravitational pull depending on its location in orbit around its sun?

Why doesn't a const reference extend the life of a temporary object passed via a function?

Is Social Media Science Fiction?

What causes the sudden spool-up sound from an F-16 when enabling afterburner?

Are white and non-white police officers equally likely to kill black suspects?

Finding files for which a command fails

Doomsday-clock for my fantasy planet

Can I legally use front facing blue light in the UK?

Add an angle to a sphere

How to answer pointed "are you quitting" questioning when I don't want them to suspect

I see my dog run

Extreme, but not acceptable situation and I can't start the work tomorrow morning

A poker game description that does not feel gimmicky

Need help identifying/translating a plaque in Tangier, Morocco

Unbreakable Formation vs. Cry of the Carnarium

Are objects structures and/or vice versa?

Eliminate empty elements from a list with a specific pattern

Why airport relocation isn't done gradually?

Symmetry in quantum mechanics

How can I fix this gap between bookcases I made?

Why do we use polarized capacitors?

Piano - What is the notation for a double stop where both notes in the double stop are different lengths?

What happens when a metallic dragon and a chromatic dragon mate?



Understand how to clean store if we have exception between Splitter and Aggregator or recipient-list-router and Aggregator in Spring Integration


Spring splitter/aggregator handling exceptionsSpring Integration 2 - Splitter only returns the first elementSpring Integration - Gateway - Splitter - Aggregator with JMSSpring splitter/aggregator handling exceptionsSpring integration: how to handle exceptions in services after an aggregator?Splitter returning empty array list spring integrationHow to ignore ChannelResolutionException in a Spring Integration router?spring integration - splitter and aggregatorSpring integration - how to split list of object to individual spring integration message using splitterSpring Integration Aggregator or Router the right pattern?Spring Integration splitter and aggregator configuration






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I am new to spring integration and we have created an SI flow where we have Splitter and Aggregator also recipient-list-router and Aggregator.
Today, while checking a code I got confused about how Aggregator will clean its store if we have an exception in between flow.
I am worried about the scenario where we got an exception between the flow and that creates stale state object in the system.
I have checked the spring integration doc but no luck (https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/aggregator.html).
I can see only one topic "Managing State in an Aggregator: MessageGroupStore" but that is for "application shots down".



Also, I did google for the same and I found one thread https://dzone.com/articles/spring-integration-robust but not able to folow much. Sure, I will come back if I am able to find some solution.



I am using OOB Splitter, recipient-list-router and Aggregator. Considering pattern should have mechanism handle this common scenario.



Can you please guide me



i.e:



<int:recipient-list-router input-channel="inputChannel" 
default-output-channel="nullChannel">
<int:recipient channel="aInputChannel" />
<int:recipient channel="bInputChannel" />
</int:recipient-list-router>

<int:service-activator ref="aHandler"
input-channel="aInputChannel" output-channel="aggregatorOutputChannel" />

<!-- we have exception in the bHandler -->
<int:service-activator ref="bHandler"
input-channel="bInputChannel" output-channel="aggregatorOutputChannel" />


<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />


OR



<int-file:splitter id="splitile"
charset="UTF-8" apply-sequence="true" iterator="false"
input-channel="inputChannel"
output-channel="bTransformerChannel" />
<!-- consider we have exception at 4th chunk -->
<int:service-activator ref="transform"
input-channel="bTransformerChannel" output-channel="aggregatorOutputChannel" />
<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />









share|improve this question






















  • I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

    – Nishit Charania
    Mar 8 at 8:30

















0















I am new to spring integration and we have created an SI flow where we have Splitter and Aggregator also recipient-list-router and Aggregator.
Today, while checking a code I got confused about how Aggregator will clean its store if we have an exception in between flow.
I am worried about the scenario where we got an exception between the flow and that creates stale state object in the system.
I have checked the spring integration doc but no luck (https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/aggregator.html).
I can see only one topic "Managing State in an Aggregator: MessageGroupStore" but that is for "application shots down".



Also, I did google for the same and I found one thread https://dzone.com/articles/spring-integration-robust but not able to folow much. Sure, I will come back if I am able to find some solution.



I am using OOB Splitter, recipient-list-router and Aggregator. Considering pattern should have mechanism handle this common scenario.



Can you please guide me



i.e:



<int:recipient-list-router input-channel="inputChannel" 
default-output-channel="nullChannel">
<int:recipient channel="aInputChannel" />
<int:recipient channel="bInputChannel" />
</int:recipient-list-router>

<int:service-activator ref="aHandler"
input-channel="aInputChannel" output-channel="aggregatorOutputChannel" />

<!-- we have exception in the bHandler -->
<int:service-activator ref="bHandler"
input-channel="bInputChannel" output-channel="aggregatorOutputChannel" />


<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />


OR



<int-file:splitter id="splitile"
charset="UTF-8" apply-sequence="true" iterator="false"
input-channel="inputChannel"
output-channel="bTransformerChannel" />
<!-- consider we have exception at 4th chunk -->
<int:service-activator ref="transform"
input-channel="bTransformerChannel" output-channel="aggregatorOutputChannel" />
<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />









share|improve this question






















  • I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

    – Nishit Charania
    Mar 8 at 8:30













0












0








0








I am new to spring integration and we have created an SI flow where we have Splitter and Aggregator also recipient-list-router and Aggregator.
Today, while checking a code I got confused about how Aggregator will clean its store if we have an exception in between flow.
I am worried about the scenario where we got an exception between the flow and that creates stale state object in the system.
I have checked the spring integration doc but no luck (https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/aggregator.html).
I can see only one topic "Managing State in an Aggregator: MessageGroupStore" but that is for "application shots down".



Also, I did google for the same and I found one thread https://dzone.com/articles/spring-integration-robust but not able to folow much. Sure, I will come back if I am able to find some solution.



I am using OOB Splitter, recipient-list-router and Aggregator. Considering pattern should have mechanism handle this common scenario.



Can you please guide me



i.e:



<int:recipient-list-router input-channel="inputChannel" 
default-output-channel="nullChannel">
<int:recipient channel="aInputChannel" />
<int:recipient channel="bInputChannel" />
</int:recipient-list-router>

<int:service-activator ref="aHandler"
input-channel="aInputChannel" output-channel="aggregatorOutputChannel" />

<!-- we have exception in the bHandler -->
<int:service-activator ref="bHandler"
input-channel="bInputChannel" output-channel="aggregatorOutputChannel" />


<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />


OR



<int-file:splitter id="splitile"
charset="UTF-8" apply-sequence="true" iterator="false"
input-channel="inputChannel"
output-channel="bTransformerChannel" />
<!-- consider we have exception at 4th chunk -->
<int:service-activator ref="transform"
input-channel="bTransformerChannel" output-channel="aggregatorOutputChannel" />
<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />









share|improve this question














I am new to spring integration and we have created an SI flow where we have Splitter and Aggregator also recipient-list-router and Aggregator.
Today, while checking a code I got confused about how Aggregator will clean its store if we have an exception in between flow.
I am worried about the scenario where we got an exception between the flow and that creates stale state object in the system.
I have checked the spring integration doc but no luck (https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/aggregator.html).
I can see only one topic "Managing State in an Aggregator: MessageGroupStore" but that is for "application shots down".



Also, I did google for the same and I found one thread https://dzone.com/articles/spring-integration-robust but not able to folow much. Sure, I will come back if I am able to find some solution.



I am using OOB Splitter, recipient-list-router and Aggregator. Considering pattern should have mechanism handle this common scenario.



Can you please guide me



i.e:



<int:recipient-list-router input-channel="inputChannel" 
default-output-channel="nullChannel">
<int:recipient channel="aInputChannel" />
<int:recipient channel="bInputChannel" />
</int:recipient-list-router>

<int:service-activator ref="aHandler"
input-channel="aInputChannel" output-channel="aggregatorOutputChannel" />

<!-- we have exception in the bHandler -->
<int:service-activator ref="bHandler"
input-channel="bInputChannel" output-channel="aggregatorOutputChannel" />


<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />


OR



<int-file:splitter id="splitile"
charset="UTF-8" apply-sequence="true" iterator="false"
input-channel="inputChannel"
output-channel="bTransformerChannel" />
<!-- consider we have exception at 4th chunk -->
<int:service-activator ref="transform"
input-channel="bTransformerChannel" output-channel="aggregatorOutputChannel" />
<int:aggregator input-channel="aggregatorOutputChannel"
output-channel="outputChannel" />






spring-integration






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 8 at 6:54









Nishit CharaniaNishit Charania

83




83












  • I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

    – Nishit Charania
    Mar 8 at 8:30

















  • I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

    – Nishit Charania
    Mar 8 at 8:30
















I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

– Nishit Charania
Mar 8 at 8:30





I found one post link. As per this, we need to use MessageGroupStoreReaper. "configure a MessageGroupStoreReaper as shown in the reference manual (or set a group-timeout in Spring Integration 4.0.x) to discard the partial group." Is this only solution to provide some time out and clear memory. I am thinking the framework should intelligent to handle the exception and empty group. Or all this parameter should be king of mandatory to avoid such scenarios. Please provide your valuable input.

– Nishit Charania
Mar 8 at 8:30












1 Answer
1






active

oldest

votes


















0














Yes; the aggregator is a "passive" component by default - all actions are taken when a message arrives.



To time out stale groups you can use a reaper or, with more recent versions, a group-timeout.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55058168%2funderstand-how-to-clean-store-if-we-have-exception-between-splitter-and-aggregat%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Yes; the aggregator is a "passive" component by default - all actions are taken when a message arrives.



    To time out stale groups you can use a reaper or, with more recent versions, a group-timeout.






    share|improve this answer



























      0














      Yes; the aggregator is a "passive" component by default - all actions are taken when a message arrives.



      To time out stale groups you can use a reaper or, with more recent versions, a group-timeout.






      share|improve this answer

























        0












        0








        0







        Yes; the aggregator is a "passive" component by default - all actions are taken when a message arrives.



        To time out stale groups you can use a reaper or, with more recent versions, a group-timeout.






        share|improve this answer













        Yes; the aggregator is a "passive" component by default - all actions are taken when a message arrives.



        To time out stale groups you can use a reaper or, with more recent versions, a group-timeout.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 8 at 14:14









        Gary RussellGary Russell

        85.3k85178




        85.3k85178





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55058168%2funderstand-how-to-clean-store-if-we-have-exception-between-splitter-and-aggregat%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

            Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

            Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved