camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Donald Whytock <dwhyt...@gmail.com>
Subject Re: ROUTE_STOP and mail
Date Fri, 22 Apr 2011 19:27:43 GMT
At the moment my route is very short:

  from("pop3://bot@localhost?password=test")
    .process(message1)
    .process(peeker)
    .choice()
      .when(property("chatterbot.email").isNotNull())
      .to("seda:mailtester");

  from("seda:mailtester")
    .routeId("listener.test")
    .process(message3);

Peeker verifies the "from" header against a table; if found, it
changes the message body to String and sets chatterbot.email to
"true".  Message1 and message3 kick out static messages to System.out.
 The seda:mailtester consumer is in a different Felix bundle from the
mail consumer.  Very little processing, very little time.

I can send it an email, which it will pick up.  Message 1 fires,
peeker shows the from address and body, message3 fires, and then I see
the debug log say the DELETED flag was set on the message ("Exchange
processed, so flagging message as DELETED").  A bit later I see the
same message being picked up again, and again the DELETED flag is set.
 Occasionally I'll see the message picked up a third time.  After that
the message doesn't get picked up again.

Oddly, if I remove the routeId(), it stops happening.  If I put the
routeId() back in, the problem happens again.

On Fri, Apr 22, 2011 at 5:00 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
> On Thu, Apr 21, 2011 at 8:50 PM, Donald Whytock <dwhytock@gmail.com> wrote:
>> Okay, it's not ROUTE_STOP, or not necessarily.  I've been getting
>> mixed results with email deletion.  In all cases I see the message
>> "Exchange processed, so flagging message as DELETED" coming from
>> MailConsumer.processCommit() as the exchange's onCompletion is run,
>> but in some cases the email doesn't actually get deleted, and shows up
>> again in the queues with the next polling.
>>
>
> How long time do it take to process the exchange, when you notice the
> email isn't deleted?
> Maybe the mail session times out, and it wont re-connect to set the
> DELETED flag.
> There should be something in the logs as camel-mail log at DEBUG level
> when it attempts to delete the mail.
>
>
>
>> I've removed and restored things I'm doing in my routes, and nothing
>> consistently causes the email to not be deleted.  I'm at the point now
>> where, without changing the route, I see a message appear once, twice
>> or three times (varying) before it gets deleted.
>>
>> Is there a timeout on message deletion, such that if my route takes
>> too long the message won't get deleted?  Do I need to copy the
>> exchange as soon as I get it, finish with the original and run with
>> the copy?
>>
>> On Wed, Apr 20, 2011 at 11:35 AM, Donald Whytock <dwhytock@gmail.com> wrote:
>>> But if I do filter on the pipeline it'll determine whether the entire
>>> pipeline is or isn't performed, right?  So to break out of the
>>> pipeline I'd have to put the filter on each pipelined item, such as
>>>
>>> from X
>>>  filter when Y
>>>   to A
>>>  filter when Y
>>>   to B
>>>  end // filter
>>>  to C // do something after filter for all messages
>>>
>>> so as to pick up when Y became false.
>>>
>>> Since I use an instance of Pipeline with an ArrayList of Processors,
>>> this would become an ArrayList of FilterProcessor(predicate,
>>> processor)?
>>>
>>> On Wed, Apr 20, 2011 at 4:59 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>>>> On Wed, Apr 20, 2011 at 12:42 AM, Donald Whytock <dwhytock@gmail.com>
wrote:
>>>>> I ask because it appears to, in my application where I'm using
>>>>> ROUTE_STOP to break out of a pipeline.
>>>>>
>>>>> Perhaps there should be some mechanism for breaking out of a pipeline
>>>>> without killing the whole route?  A PIPELINE_STOP property, or maybe
>>>>> ROUTE_STOP could contain the ID of the route to be broken out of,
>>>>> allowing containing routes to continue?
>>>>>
>>>>
>>>> You can use the filter EIP to only process messages based on a predicate.
>>>>
>>>> from X
>>>>  filter when Y
>>>>    to A
>>>>    to B
>>>>  end // filter
>>>>  to C // do something after filter for all messages
>>>>
>>>>>
>>>>> On Tue, Apr 19, 2011 at 3:40 PM, Donald Whytock <dwhytock@gmail.com>
wrote:
>>>>>> Hi all...
>>>>>>
>>>>>> Does using ROUTE_STOP on an email exchange prevent the message from
>>>>>> being deleted from the POP3 server?
>>>>>>
>>>>>> Don
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> -----------------
>>>> FuseSource
>>>> Email: cibsen@fusesource.com
>>>> Web: http://fusesource.com
>>>> CamelOne 2011: http://fusesource.com/camelone2011/
>>>> Twitter: davsclaus
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>
>>>
>>
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> CamelOne 2011: http://fusesource.com/camelone2011/
> Twitter: davsclaus
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Mime
View raw message