Yes, you are on the right track. JMS queues work too, as long as you have a way to correlate your messages (and there are many, many ways to achieve that). Conventions on the queue names works.

Aggregation does have to happen, you are correct. The demo I mentioned looks at business processes in a more general sense, but uses an AggregationStrategy as well, that's not easily avoidable.

Cheers,
Hadrian


On 06/21/2013 04:12 PM, Sean Beck wrote:
from("jms:queue.name").aggregate(new AggregationStrategy() {
     public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
     // code here
     }
}).completionSize(2).to("exec://FILEPATH?args=");

As I look/ask around more I think this is closer to what I want. Someone
said to use a GroupedExchange or something as well where I correlate on
clientID and fileName. I'm not really sure how that works though....Am I on
the right track?


On Fri, Jun 21, 2013 at 1:16 PM, Sean Beck <seanmckayb...@gmail.com> wrote:

Everything installed fine for camelone but I ran mvn camel:run and it
seems to have gotten stuck after first [INFO]


On Fri, Jun 21, 2013 at 12:27 PM, Sean Beck <seanmckayb...@gmail.com>wrote:

Thanks for the response! I'll look now and let you know


On Fri, Jun 21, 2013 at 12:24 PM, Hadrian Zbarcea <hzbar...@gmail.com>wrote:

Sean,

I presented at CamelOne last week on how to handle exactly this kind of
scenarios with Camel and claimcheck. The code and slides are available on
github [1]. Please take a look and let me know if you have any questions.

Cheers,
Hadrian

[1] https://github.com/hzbarcea/**camelone<https://github.com/hzbarcea/camelone>



On 06/21/2013 01:21 PM, Sean Beck wrote:

Could I create my own AggregationStrategy class that stores all the
messages and handles them appropriately? Or is there an easier way?


On Fri, Jun 21, 2013 at 9:19 AM, Sean Beck <seanmckayb...@gmail.com>
wrote:

  Thanks for the response.

The separate process is a program that puts two files together.
Multiple
clients with their own SSIDs send over files, and there are 2 files
that go
together for each set of data operated on by the client. As soon as the
files are received on my server the server sends a message containing
the
file path, file name, SSID, and the "type" of the file. I want to use
Camel
to detect when I get two messages for the same file name but each of a
different type (there are only two types) from the same SSID, then
once I
get both messages start up the program that combines the two files.

So I know I want an aggregator that starts the process based off a
completion size of 2, but I don't know how everything works to really
break
the problem down. 1) I need to figure out how I would execute the
program
(which it looks like would be exec) 2) Have one aggregator that can put
messages together from different SSIDs.


On Fri, Jun 21, 2013 at 12:27 AM, Claus Ibsen <claus.ib...@gmail.com
wrote:

  Hi

Can you be more specific with what  you mean with separate process?

There is an exec to run an executable
http://camel.apache.org/exec


On Fri, Jun 21, 2013 at 1:19 AM, Sean Beck <seanmckayb...@gmail.com>
wrote:

So I have figured out how to gather messages based on my criteria. A
process needs to be started as soon as two messages have been
received.
Currently I have:

from("jms:newFileQueue").**aggregate(new
HeaderExpression("**CamelFileName")).**completionSize(2).to("**
triggerservice

to

process and merge files")

The portion I am unsure on is the very last call to to(). How would I

start

up a separate process once I get the necessary completionSize?

Thanks




--
Claus Ibsen
-----------------
www.camelone.org: The open source integration conference.

Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen








Reply via email to